bash リファレンス

2008年03月03日

コマンド行操作

キー 説明
[文字] カーソル位置に文字を挿入
[←], [CTRL]+[B] カーソル位置を左に移動
[→], [CTRL]+[F] カーソル位置を右に移動
[CTRL]+[A] カーソル位置を行頭に移動
[CTRL]+[E] カーソル位置を行末に移動
[CTRL]+[T] カーソル位置の文字とその左の文字を入れ替え
[BS] カーソル位置の左の文字を削除
[CTRL]+[D] カーソル位置の文字を削除
[CTRL]+[W] カーソルから一番近い左側の空白までを削除
[CTRL]+[K] カーソルから行頭までを削除
[CTRL]+[U] カーソルから行末までを削除
[CTRL]+[Y] 削除した文字列の貼り付け
[↑], [CTRL]+[P] 入力履歴から一つ前に入力したコマンドを呼び出し
[↓], [CTRL]+[N] 入力履歴から一つ後に入力したコマンドを呼び出し
[META]+[<] コマンド履歴の最初の入力を呼び出し
[META]+[>] コマンド履歴の最後の入力を呼び出し
!! 直前に実行したコマンドを再実行
!n n 回前に実行したコマンドを再実行
!-n n-1 回前に実行したコマンドを再実行
^s1^s2^ 直前に実行したコマンドの s1s2 に置換して再実行
[CTRL]+[L] 画面をクリア
[TAB] ディレクトリ/ファイル名を補完
[CTRL]+[X] [CTRL]+[U] 直前の操作を無効化
[CTRL]+[C] 実行中の処理を中止
[CTRL]+[Z] 実行中の処理を一時停止
[CTRL]+[S] 実行中の処理のコンソール出力を停止
[CTRL]+[Q] 実行中の処理のコンソール出力を再開

ワイルドカード

? 任意の 1 文字と一致。
* 0 文字以上の文字列と一致。
[ ] [] 内のいずれかの 1 文字と一致。ハイフンで範囲を指定することも可能 (例: [a-z])
[! ] [] 内のいずれでもない 1 文字と一致。
\ 続く文字をエスケープ。

リダイレクトとパイプ

デフォルトのファイルディスクリプタは 0:標準入力、1:標準出力、2:標準エラーを示しています。またこの他に 3~9 (実装依存) まで使用できます。

処理1 | 処理1 処理 1 の標準出力を右の処理 2 の標準入力にパイプ ls | more
処理 > ファイル
処理 1> ファイル
処理の標準出力をファイルにリダイレクト (上書き) ls > ls.txt
rm > /dev/null
処理 >> ファイル
処理 1>> ファイル
処理の標準出力をファイルにリダイレクト (追加書き込み) ls >> ls.txt
処理 2> ファイル 処理の標準エラーをファイルにリダイレクト (上書き) ls 2> error.txt
処理 2>> ファイル 処理の標準エラーをファイルにリダイレクト (追加書き込み) ls 2>> error.txt
処理 2>&
処理 2>&1
処理の標準エラーを 1 と同じ (標準出力) に変更 ls 2>&1 | more
処理 < ファイル ファイルの内容を処理の標準入力にリダイレクト mailx foo < msg.txt
処理 << 終了文字列 続く終了文字列までを処理の標準入力としてリダイレクト(ヒアドキュメント) mailx foo<< EOF
hoge
hello
EOF

2>&1 は「ファイルディスクリプタ 2 の出力先を 1 と同じに設定」を意味します。リダイレクトは左から評価されるため、以下の記述は:


command > file 2>&1
  1. command の FD1 (標準出力) を file に変更。
  2. command の FD2 (標準エラー) を FD1 と同じ (つまり file) に変更。
を意味し、結果的に標準出力と標準エラーが file に出力されます。2>&1 > file という記述は「FD2 を標準出力へ、FD1 を file へ」を意味し、挙動が異なりますので注意してください。

ログインスクリプト

/etc/profile ユーザのログイン時に実行される、全ユーザ共通のスクリプト。
~/.bash_profile ユーザのログイン時に実行される、ユーザ固有のスクリプト。.bash_profile, .bash_login, .profile の順に最初に存在したもののみを実行します。
~/.bashrc bash 起動時に実行されるスクリプト。これはコマンド行で bash を起動した時や X でターミナルを開いた場合などに実行されます。
~/.bash_logout ユーザのログアウト時に実行されるスクリプト。

一般的に .bash_profile の最後に source ~/.bashrc と記述する。who などログイン時に一回実行されれば良い処理は .bash_profile に記述し、それ以外 (環境変数の設定など) を .bashrc に記述する。

Linux では /etc/profile から /etc/profile.d/*.sh などを読み込むよう記述されているものが多い。

CVS 2008/03/09