シェルの紹介


  • シェルは、主にコマンドを読み取り、他のプログラムを実行することを目的としたプログラムです。
  • このレッスンでは、Unixの多くの実装でデフォルトシェルであるBashを使用します。
  • Bashでは、コマンドラインプロンプトでコマンドを入力することでプログラムを実行できます。
  • シェルの主な利点は、キー操作に対する高いアクション効率、反復作業の自動化のサポート、ネットワーク化されたマシンへのアクセス機能です。
  • シェルを使用する際の大きな課題は、実行する必要があるコマンドとその実行方法を知ることです。

ファイルとディレクトリのナビゲーション


  • ファイルシステムはディスク上の情報を管理する役割を果たします。
  • 情報はファイルに保存され、ファイルはディレクトリ(フォルダ)に保存されます。
  • ディレクトリは他のディレクトリを保存することもでき、それによってディレクトリツリーを形成します。
  • pwdはユーザーの現在の作業ディレクトリを表示します。
  • ls [path]は特定のファイルやディレクトリのリストを表示します;lsだけを実行すると現在の作業ディレクトリをリストします。
  • cd [path]は現在の作業ディレクトリを変更します。
  • 多くのコマンドは単一の-で始まるオプションを取ります。
  • パス内のディレクトリ名はUnixでは/で区切られますが、Windowsでは\で区切られます。
  • /単独では、ファイルシステム全体のルートディレクトリを意味します。
  • 絶対パスは、ファイルシステムのルートからの位置を指定します。
  • 相対パスは、現在の場所から始まる位置を指定します。
  • .は現在のディレクトリを、..は現在のディレクトリの1つ上のディレクトリを意味します。

ファイルとディレクトリの操作


  • cp [old] [new]はファイルをコピーします。
  • mkdir [path]は新しいディレクトリを作成します。
  • mv [old] [new]はファイルまたはディレクトリを移動(リネーム)します。
  • rm [path]はファイルを削除します。
  • *はファイル名内で0文字以上の任意の文字に一致します。例えば、*.txt.txtで終わるすべてのファイルに一致します。
  • ?はファイル名内で任意の1文字に一致します。例えば、?.txta.txtに一致しますが、any.txtには一致しません。
  • Controlキーの使用法はCtrl-XControl-X^Xなどさまざまな方法で表現されることがあります。
  • シェルにはゴミ箱がありません。一度削除すると、完全に消えます。
  • ほとんどのファイル名はsomething.extensionの形式です。拡張子は必須ではありませんが、通常ファイル内のデータの種類を示します。
  • 作業内容によっては、Nanoよりも強力なテキストエディタが必要になる場合があります。

パイプとフィルタ


  • wcは入力内の行、単語、および文字数をカウントします。
  • catは入力の内容を表示します。
  • sortは入力をソートします。
  • headはデフォルトで入力の最初の10行を表示します。
  • tailはデフォルトで入力の最後の10行を表示します。
  • command > [file]はコマンドの出力をファイルにリダイレクトします(既存の内容を上書きします)。
  • command >> [file]はコマンドの出力をファイルに追記します。
  • [first] | [second]はパイプラインです:最初のコマンドの出力が2番目のコマンドの入力として使用されます。
  • シェルを使用する最良の方法は、単純で一つの目的を持つプログラム(フィルタ)をパイプで組み合わせることです。

ループ


  • forループは、リスト内の各要素に対してコマンドを繰り返します。
  • forループには、現在処理中の項目を参照する変数が必要です。
  • 変数を展開(値を取得)するには$nameまたは${name}を使用します。
  • ファイル名にはスペース、引用符、ワイルドカード(*?など)を使用しないでください。変数展開が複雑になります。
  • ファイルに一貫した名前を付け、ワイルドカードパターンで簡単に選択できるようにすることで、ループ処理が容易になります。
  • キーを使用して以前のコマンドをスクロール表示し、編集して再実行できます。
  • Ctrl+Rで、以前に入力したコマンドを検索できます。
  • historyを使用して最近のコマンドを表示し、![番号]を使用して特定のコマンドを再実行できます。

シェルスクリプト


  • コマンドを再利用するためにファイル(通常はシェルスクリプト)に保存する。
  • bash [ファイル名] を使用してファイル内のコマンドを実行する。
  • $@ はシェルスクリプトのすべてのコマンドライン引数を参照する。
  • $1, $2 などは、それぞれ最初のコマンドライン引数、2番目のコマンドライン引数を参照する。
  • 値にスペースが含まれる場合に備えて、変数を引用符で囲む。
  • 処理するファイルをユーザーが選択できるようにすることは、柔軟性が高く、Unixの組み込みコマンドとの一貫性が高い。

ファイルを見つける


  • find は、特定のプロパティを持つファイルを検索するためのコマンドです。
  • grep は、ファイル内の特定のパターンに一致する行を選択します。
  • --help は、多くの Bash コマンドや Bash 内から実行可能なプログラムがサポートするオプションで、これらのコマンドやプログラムの使用方法に関する詳細情報を表示します。
  • man [コマンド] は、指定したコマンドのマニュアルページを表示します。
  • $([コマンド]) は、そのコマンドの出力を挿入します。