ワイルドカード | * や e* などの表記が使える |
|
コンプリーション (補完) |
コマンド名やファイル名の入力途中で たとえば
TABを叩く (この補完のためのキー操作は場面によって違う(右図) |
|
ヒストリー | 矢印(上下)で呼び出す | |
ジョブ制御 | Ctrl-Z jobs % | |
リダイレクト | コマンド名 > ファイル名
という表記で コマンドにより画面に出力されるものを 代わりにファイルに書き込む |
|
リダイレクトと パイプ | 標準入力、標準出力、エラー出力 |
cd /usr/bin
ls a*
ls *x
ls a??
ls *x?
GUIでは一般に削除したファイルは一時的に「ゴミ箱」に補完される
CUIでは削除操作はその場で即時で実行されることが多い(ので復元が困難になる)
という違いがある。
stdin stdout
一般的なコマンドは 標準入力 →□→標準出力 として動作する(右図)
↑ ↓
特に指定ないときは キー入力 画面に表示 という動作をする
(他に、エラー出力(stderr)、という出力先もあるがここでは無視しておいていい)
コマンド > ファイル |
標準出力がファイルに書き込まれる | |
コマンド < ファイル |
標準入力としてファイルの中身が送りこまれる |
コマンド1 | コマンド2 コマンド1の標準出力の内容が(ファイルを経由せず)、
コマンド2の標準入力として送りこまれる
パイプは
コマンド1 | コマンド2 | コマンド3 | コマンド4 のように
連鎖的に使える(これを パイプラインとも呼ぶ)
以下は、概論のみ記す
変数
コマンド置換
` ` (バッククォート)でコマンドを囲むと、
そのコマンドから出力されたものが、その場所に展開される
昨今のシェルでは $( ) で囲むこともできる
終了ステータス
標準入出力のうち、出力のほうは、シェルから呼び出す様々なコマンドが出力を行う
コメント
#
からはじまり行末までは(実行上は)無視される
制御構造
while, if など
&&
も制御構造として使える
関数定義(ができることだけここで書いておく)
ヒアドキュメント
演算子
=