2008年12月17日水曜日

bash プロンプトの変更方法

bashのプロンプトを変更するには

Linuxの標準シェルであるbashでは、PS1という環境変数によってプロンプトを定義している。
従って、exportコマンドでPS1を変更すればいい。

 デフォルトでは「[ユーザー名@ホスト名 カレントディレクトリ]」というプロンプトになっている。これを単純に「$」というプロンプトに変更するには、以下のコマンドを実行する。
export PS1="$ "

 デフォルトのプロンプトに戻すには、以下のコマンドを実行する。
export PS1="[\u@\h \W]\\$ "

 bashのプロンプトには、以下のような特殊な文字を使用できる。これらを組み合わせれば、オリジナルプロンプトも作成可能だ。
\a ASCIIのベル文字(07)を表示する(ビープ音を鳴らす)
\d 「曜 日 月 日」の形式(例:Fri Jan 5)で日付を表示する
\e ASCIIのエスケープ文字(033)を表示する
\h ホスト名のうち最初の「.」までの部分を表示する
\H ホスト名を表示する
\n 改行する
\r 復帰する
\s シェルの名前を表示する
\t 現在の時刻を24時間の「HH:MM:SS」形式で表示する
\T 現在の時刻を12時間の「HH:MM:SS」形式で表示する
\@ 現在の時刻を12時間の「am/pm」形式で表示する
\u 現在のユーザー名を表示する
\v bashのバージョンを表示する
\V bashのリリースを表示する
\w 現在の作業ディレクトリを、ユーザーのホームディレクトリからの絶対パスで表示する
\W 現在の作業ディレクトリを表示する
\! このコマンドの履歴番号を表示する
\# このコマンドのコマンド番号(現在のシェルのセッション中に実行されたコマンドのシーケンスにおける位置)を表示する
\$ 実効UIDが0の場合に#となり、それ以外の場合に$となる
\nnn 8進数nnnに対応する文字を表示する
\\ バックスラッシュを表示する
\[ 非表示文字のシーケンスを開始する。これを使って、プロンプト中に端末の制御シーケンスを埋め込むことができる
\] 非表示文字のシーケンスを終了する