Linuxのシェル関連のまとめ

シェル(bash)の設定ファイル

  • 全ユーザーに適用される設定ファイル
/etc/profile  ログイン時に読み込まれ、全ユーザーに適用される
/etc/bashrc   ~/.bashrcから呼び出される
  • ユーザーごとの設定ファイル
~/.bash_profile ログイン時に読み込まれる ⇒ 環境変数の設定に利用
~/.bash_login   ~/.bash_profileファイルがない場合は読み込まれる
~/.profile      ~/.bash_profileも~/.bash_loginもない場合は読み込まれる
~/.bashrc       bashが起動するごとに読み込まれる
~/.bash_logout  ログインシェルが終了するときに読み込まれる

プロンプトの変更

PS1="/! \w\$ "

\H ホスト名(ドメイン付)
\h ホスト名
\T 時刻(12時間制)
\t 時刻
\u ユーザ名
\W 現在のディレクトリ
\w 現在のディレクトリ(homeディレクトリを~で表示)
\! これから実行するコマンドのヒストリ番号
\# これから実行するコマンドのコマンド番号
\$ rootユーザの場合# 一般ユーザの場合$

コマンド実行

コマンドを続けて実行させる
# command1 ; command2 ; command3

command1の実行が成功したときだけcommand2を実行
# command1 && command2

command1の実行が失敗したときだけcommand2を実行
# command1 || command2

リダイレクト

commandの実行結果をfileに保存(fileを上書き)
# command > file

commandの実行結果をfileに追記
# command >> file

fileの内容をcommandへ入力する
# command < file

任意の終了文字ENDが表れるまで入力を継続(ヒアドキュメント)
# command << END

commandのエラー出力をfileに保存(fileを上書き)
# command 2> file

commandのエラー出力をfileに追記
# command 2>> file

commandの実行結果とエラー出力をfileに保存(fileを上書き)
# command > file 2>&12>&1 は、2>file と同意

commandの実行結果とエラー出力をfileに追記
# command >> file 2>&1

パイプ

command_Aの結果をcommand_Bに渡す
# command_A | command_B

command_Aの結果を表示すると同時にfileにも保存
# command_A | tee file

command_Aの結果をcommand_Bに渡し、fileにも保存
# command_A | tee file | command_B

nohupコマンド・・・ログアウト後も実行させる場合

# nohup updatedb &