LinuxでBashのプロンプト設定を変更する
プロンプトについて
Linuxの標準シェルであるBashでは、コマンドを入力するコンソールをプロンプトと呼ぶ。
Fedora/RedHatでは、初期状態は以下のような形式となる。
1 | [ユーザ名@ホスト名 カレントディレクトリ]$ |
ユーザー名がfoo、ホスト名がbarの場合、以下の通り。
1 | [foo@bar ~]$ |
~は、当該ユーザのホームディレクトリの意味。
カレントディレクトリが/var/tmpの場合、以下の通り。
1 | [foo@bar tmp]$ |
プロンプトの確認
プロンプトの設定は、’PS1’というBashのシェル変数(環境変数)によって定義される。
シェル変数の指定内容を確認するには、echoコマンドを利用。
1 2 | [foo@bar ~]$ echo $PS1 [\u@\h \W]\$ |
\u … ユーザ名
\h … ホスト名
\W … カレントディレクトリ
\$ … 一般ユーザであれば”$”、rootユーザ(UIDが0)であれば”#”を表示
プロンプトの設定変更
プロンプトの表示を変更するには、シェル変数’PS1’を変更する。
1 2 | [foo@bar ~]$ PS1="[\u@\h \t \W]\$ " [foo@bar 13:00:23 ~]$ |
プロンプトに表示可能な情報は以下の通り。
指定文字 | 内容 |
---|---|
\a | ベル(ビープ音)をならします(ASCIIのベル文字07) |
\d | 曜日 月 日"の形式の日付 |
\h | ホスト名(最初の.までの名前) |
\H | ホスト名 |
\n | 改行 |
\r | 復帰 |
\s | シェル名(標準だと"-bash"が表示) |
\t | 時刻 HH:MM:SS 形式(24時間) H = Hour = 時、M = Minutes = 分、S = Seconds = 秒 |
\T | 時刻 HH:MM:SS 形式(12時間) |
\@ | 時刻 am/pm をつけたもの。Lang=Jaの場合 HH:MM (午前|午後)となる。 |
\u | 現在のユーザー名 |
\v | bash のバージョン |
\V | bash のバージョン・リリース番号など詳細 |
\w | 現在のディレクトリ(フルパス) |
\W | 現在のディレクトリ名 |
\! | コマンドのヒストリー番号 |
\# | コマンドのコマンド番号(ログイン後何回実行したか) |
\$ | UIDが0であれば"#"、それ以外は"$" |
\\ | バックスラッシュ |
\[ | 表示されない文字列(エスケープシーケンス/端末制御シーケンス)の開始 |
\] | 表示されない文字列(エスケープシーケンス/端末制御シーケンス)の終端 |
プロンプトにコマンドを指定する場合は、「\$(コマンド)」。
プロンプトの設定を固定する
~/.bashrc ファイル(~はホームディレクトリの意味)の末尾にPS1=’~’の記述を追加する。