LinuxでBashのプロンプト設定を変更する

プロンプトについて

Linuxの標準シェルであるBashでは、コマンドを入力するコンソールをプロンプトと呼ぶ。

Fedora/RedHatでは、初期状態は以下のような形式となる。

ユーザー名がfoo、ホスト名がbarの場合、以下の通り。

~は、当該ユーザのホームディレクトリの意味。

カレントディレクトリが/var/tmpの場合、以下の通り。

 

プロンプトの確認

プロンプトの設定は、’PS1’というBashのシェル変数(環境変数)によって定義される。

シェル変数の指定内容を確認するには、echoコマンドを利用。

\u … ユーザ名
\h … ホスト名
\W … カレントディレクトリ
\$ … 一般ユーザであれば”$”、rootユーザ(UIDが0)であれば”#”を表示

 

プロンプトの設定変更

プロンプトの表示を変更するには、シェル変数’PS1’を変更する。

プロンプトに表示可能な情報は以下の通り。

指定文字内容
\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現在のユーザー名
\vbash のバージョン
\Vbash のバージョン・リリース番号など詳細
\w現在のディレクトリ(フルパス)
\W現在のディレクトリ名
\!コマンドのヒストリー番号
\#コマンドのコマンド番号(ログイン後何回実行したか)
\$UIDが0であれば"#"、それ以外は"$"
\\バックスラッシュ
\[表示されない文字列(エスケープシーケンス/端末制御シーケンス)の開始
\]表示されない文字列(エスケープシーケンス/端末制御シーケンス)の終端

プロンプトにコマンドを指定する場合は、「\$(コマンド)」。

 

プロンプトの設定を固定する

~/.bashrc ファイル(~はホームディレクトリの意味)の末尾にPS1=’~’の記述を追加する。

 

おすすめ

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください