Linuxのシェル のバックアップ(No.2)
Linuxのシェル †
シェルの種類 †
- Bourneシェル
- UNIXの標準的なシェル
- bash
- Linuxディストリビューションの標準的なシェル
- Bourneシェルを改良したもの
- Kornシェル
- Bourneシェルを拡張したもの
- Cシェル
- Zシェル
シェル について †
ログインシェル †
- ログイン直後に起動されるシェルのこと
- ユーザのログインシェルの確認
cat /etc/passwd | grep <user-name>
その他 †
- chsh ※デフォルトのシェルを変更
- 利用可能なシェルの確認
cat /etc/shells
シェルの操作 †
コマンドの入力途中の操作 †
- 補完機能
Tab ※入力補完を表示
- カーソル移動
Ctl + A ※行頭に移動 Ctl + E ※行末に移動
- コマンドラインの編集
Ctl + D ※カーソルの1文字を削除 Ctl + H ※カーソルの左の1文字を削除 Ctl + L ※画面をクリアしてカレント行を再表示
コマンドを実行中の操作 †
- 実行制御
Ctl + C ※処理を中断 Ctl + Z ※処理を一時停止 Ctl + S ※画面への出力を停止し、キー入力を無効にする Ctl + Q ※画面への出力を再開し、キー入力を有効にする
ディレクトリの指定 †
- ~ ※ホームディレクトリ
cd ~
- ~[ユーザ名] ※指定したユーザ名のホームディレクトリ
cd ~root
- . ※カレントディレクトリ
df .
- .. ※1つ上のディレクトリ
cd ..
コマンドの実行(単独) †
- 環境変数PATHに指定されたディレクトリに存在するコマンド(プログラム)
<command>
- カレントディレクトリに存在するコマンド
./<command>
- フルパスを指定して実行
/<dir-path>/<command>
コマンドの実行(複数) ※区切り文字で繋げる †
- ; ※1番目のコマンドの実行結果に関係なく2番目のコマンドを実行する
pwd;ls
- && ※1番目のコマンドが正常終了した場合のみ、2番目のコマンドを実行する
ls test.txt && cat test.txt
- || ※1番目のコマンドが正常終了しなかった場合のみ、2番目のコマンドを実行する
ls test.txt || touch test.txt
コマンドの実行(複数) ※括弧で複数のコマンドをひとまとまりとして扱う †
- () ※新たにシェルを起動して実行する
(hostname;whoami) >> temp.log TEMP=origin (TEMP=edited;echo $TEMP) ※"edited"が出力 echo $TEMP ※"origin"が出力
- {} ※現在のシェル内でコマンドを実行する
{ hostname;whoami; } >> temp.log ※カッコとコマンドの間にスペースが必要、コマンドの末尾に;(セミコロン)が必要
引用符と文字列の扱い †
- ' (単一引用符、シングルクォーテーション)
- 全て文字列として解釈する
- 変数の記載も文字列として解釈される(変数の値が出力されない)
DATE=`date +%Y%m%d` echo '$DATE' ※"$DATE"が出力される
- " (二重引用符、ダブルクォーテーション)
- 文字列として解釈する
- 変数の記載は変数として解釈される(変数の値が出力される)
- バッククォーテーション(`)でコマンドが記載されていれば、コマンドの実行結果が展開される
DATE=`date +%Y%m%d` echo "today is $DATE" ※$DATEの部分は日付が出力される echo "today is \$DATE" ※\(エスケープ文字)で$DATEは変数ではなく文字列として扱われる echo "today is `date + %Y%m%d`" ※コマンドの実行結果(日付)が出力される echo "today is $(date + %Y%m%d)" ※コマンドの実行結果(日付)が出力される(可読性を考慮するとこちらの記述を推奨)
エイリアス †
alias †
- エイリアスを登録
alias <command>
- 登録されているエイリアスを確認
alias <command>='<register-command>'
unalias †
- エイリアスを解除
unalias <command>
その他 †
- エイリアスを無効にしてコマンドを実行
\<command>
コマンド履歴の操作 †
- 直近の履歴を遡って表示
- カーソルキー操作
↑ ※遡って表示 ↓ ※逆順で表示
- ショートカットキー操作
Ctl + p ※遡って表示 Ctl + n ※逆順で表示
- カーソルキー操作
- 直近の履歴を文字列検索して表示
- ショートカットキー操作
Ctl + R ※押下後に入力した文字列から直近のコマンドを検索し、再度押下すると遡って検索する。Enter押下でコマンドを実行
- ショートカットキー操作
- 履歴を使ってコマンドを実行
- !<履歴番号> ※指定した履歴番号のコマンドを実行
- !<string> ※指定した文字列で始まる直近のコマンドを実行
- !?<string> ※指定した文字列を含む直近のコマンドを実行
- !! ※直前のコマンドを実行
コマンド履歴の操作(Linuxコマンド) †
history †
- history <件数>
history ※直近の環境変数HISTSIZE に設定された件数を出力 history 10 ※直近の10件を出力
シェルのオプション機能 †
- 有効/無効
- set -o <option-name> ※有効
- set +o <option-name> ※無効
- 設定の状態を表示
- set -o ※On/Offで表示
- set +o ※現在の設定状態をコマンドで表示
関数 †
function †
- 独自の関数を定義する
- function 関数名() { <command>; }
- 関数名() { <command>; }
関数名() { <command> }
- 定義されている関数の確認
set ※一覧の後ろの方に表示される declare -f <関数名> ※指定した関数の定義を表示 declare -f ※定義されている関数の定義を一覧表示 declare -F ※定義されている関数の関数名を一覧表示
- 定義されている関数の削除
unset <>
シェルスクリプト †
- 「シェルスクリプト」参照
- 「シェルスクリプト(bash)」参照