シェル上のプロンプトの確認や設定 †プロンプト? † シェル上(bash, csh など) ではコマンドを入力するコンソール(キーボード入力のための場所が点滅している地点)の事をプロンプトと呼びます。 [ユーザ名@ホスト名 ~]$ たとえば、ユーザ名が sakura、ホスト名が sion の場合 [sakura@sion ~]$ と表示されます。~ は「該当ユーザのホームディレクトリ」という意味です。 [sakura@sion tmp]$ このようにディレクトリ名が表示されます。 どうやって確認するの? † プロンプトの設定はシェル変数(環境変数)によって定義されます。 $ echo $PS1 [\u@\h \W]\$ \u … ユーザ名 設定方法は? †簡単な設定方法 †プロンプトを設定するには、bash の場合、シェル変数 PS1 を変更して指定できます。 例) $ PS1='promtp$ ' prompt$ この例では、コマンド実行後にプロンプトが『 prompt$ 』に変更となります。 PS1= の後が ' (シングルクォート)で囲まれているのは特殊文字を解釈しないようにする、という意味があります。たとえば『 $ 』は変数を表しますが、シングルクォート内では単に『 $ 』という文字を表示させることが出来ます。" (ダブルクォート)で『 $ 』を表示させたい場合は 『 \$ 』のように記述しなくてはいけません。 時刻を表示させてみよう † 時刻を表示させる場合 \t を使います。 $ PS1="[\u@\h \t \W]\$ " [sakura@sion 16:55:50 ~]$ このようにして、時刻を表示させる事が出来ます。表示順番は自由に出来ます。たとえば、一番左に時刻を持ってきたい場合は次のように \t を左に持ってきます。 $ PS1="[\t \u@\h \W]\$ " [16:55:50 sakura@sion ~]$ シェル変数をプロンプトに組み込んでみる †それぞれシェル変数をプロンプトで用いることもできます。
設定例) $ PS1='[$USER($TERM)$HOSTNAME $PWD]$ ' [sakura(vt100)sion /usr/local]$ その他の変数を使って、色々なものを表示させる †先の変数のほかに、バックスラッシュ『 \ 』でエスケープした文字を使うことが出来ます。
外部コマンドを使ってみる例(load average の表示) †サーバの負荷(load average)を調べるのは uptime コマンドです。 $ uptime 18:07:24 up 7:04, 3 users, load average: 0.00, 0.00, 0.00 load average: の次にあるのが過去 1 分の平均負荷、5 分の平均負荷、15 分の平均負荷です。 プロンプトにコマンドを埋め込むには【 \$(コマンド) 】を用います。 $ PS1="[\$(uptime) ]\$ " [ 18:10:54 up 7:08, 3 users, load average: 0.00, 0.00, 0.00 ]$ こうしておけば、サーバの負荷が頻繁に変動する場合(システムのチューニングを行っている時など)に役立つことができます。他のコマンドも任意に実行することが出来ます。 色を付ける †プロンプトで色をつけるためには【 \[\033[ 】と【 m\] 】で色指定をすることができます。 たとえば、プロンプトを【 赤色 】にしたい場合は【 \[\033[0;31m\][\u@\h:\W]$ " 】です。 $ PS1="\[\033[0;31m\][\u@\h:\W]$ " 色の対応表
背景色も文字色同様に指定出来ます。 $ PS1="\[\033[44;1;31m\][\u@\h:\W]$ " となります。見づらいですが…。41 が赤です。青は 44 という風になっています。 すべての属性を無効にするのは [0m です。 $ PS1="\[\033[0m\][\u@\h:\W]$ " 設定をログインする度にするのは面倒なんだけど…… † ~/.bashrc ファイル( ~ はホームディレクトリの意味:/home/ユーザ名/)の末尾の方に PS1='〜' の記述を追加しておけば OK です。ログインする度にわざわざ指定する必要はありません。 |