【bash】コマンドプロンプトの表示を変更する方法
[test1@localhost ~]$
のように表示されます。
この表示は環境変数PS1を書き換えることで変更することができます。
例えば、プロンプトを">>"とするには次を実行します。
[test1@localhost ~]$ PS1=">>" (Enter) >> ← プロンプトが">>"になっている
PS1には設定可能は以下の特種文字が設定可能です。(出展:Man page of BASH)
表記 | 意味 |
---|---|
\a | ASCII のベル文字 (07) |
\d | "曜日 月 日" という形式の日付 (例: "Tue May 26") |
\e | ASCII のエスケープ文字 (033) |
\h | ホスト名のうち最初の `.' までの部分 |
\H | ホスト名 |
\j | シェルによって現在管理されているジョブの数 |
\l | シェルの端末デバイスのベース名 (basename) |
\n | 改行 |
\r | 復帰 |
\s | シェルの名前。つまり $0 のベース名 (最後のスラッシュ以降の部分) |
\t | 24 時間の HH:MM:SS 形式の現在の時刻 |
\T | 12 時間の HH:MM:SS 形式の現在の時刻 |
\@ | 12 時間の HH:MM am/pm 形式の現在の時刻 |
\u | 現在のユーザのユーザ名 |
\v | bash のバージョン (例: 2.00) |
\V | bash のリリース。バージョンにパッチレベルを加えたもの (例 : 2.00.0) |
\w | 現在の作業ディレクトリ |
\W | 現在の作業ディレクトリのベース名 |
\! | このコマンドの履歴番号 |
\# | このコマンドのコマンド番号 |
\$ | 実効 UID が 0 の場合に #、 それ以外の場合は $ |
\nnn | 8進数 nnn に対応する文字 |
\\ | バックスラッシュ |
\[ | 非表示文字のシーケンスの開始。 これを使うと、プロンプト中に端末の制御シーケンスを埋め込むことができます。 |
\] | 非表示文字のシーケンスを終了します。 |
特種文字を利用して様々なコマンドプロンプトが実現できます。
例1 現在時刻を表示する
[test1@localhost ~]$ PS1="(\t)[\u@\h \W]$ " (Enter) (16:24:49)[test1@localhost ~]$ ← 先頭に現在時刻が表示される
例2 コマンド番号を表示する
[test1@localhost ~]$ PS1="(\#)[\u@\h \W]$ " (Enter) (45)[test1@localhost ~]$ ← 先頭にこのシェル上でのコマンド番号が表示される