【bash】プロンプトの表示を変える
問題
bashのプロンプトが非常に長くなって、見づらいのですが、何とかなりませんか。
[admin@host123456:/etc/apache2/sites-available]$
答え
bashでは、PS1という環境変数によってプロンプトを定義している。
デフォルトでは、下のような表示。
ユーザー名@ホスト名:パス(長くなったりする) $
exportコマンドでPS1を変更すれば、プロンプトが変わる。
1、一般的なの(ユーザー@ホスト名 パス $)
export PS1='[\u@\h \W]\$ ' ↓ [admin@xxxhost log]$
2、すっきり $ だけにしたいとき
export PS1='$ ' ↓ $
3、長いけどdebianでsuしたときのデフォルト?
export PS1="\${debian_chroot:+(\$debian_chroot)}\\u@\\h:\\w\\\$ " ↓ apache@localhost:/usr/local/bin$
4、ユーザー名とホスト名は知りたい
export PS1='\u@\h \$ ' ↓ root@server123 #
5、現在のディレクトリがわかればよい
export PS1='\W $ ' ↓ tmp $
6、時間が見えるとありがたい
export PS1='\t \u@\h $ ' ↓ 12:44:27 apache@www12345 $
使用できる特殊な文字一覧
\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に対応する文字を表示する |
\\ | バックスラッシュを表示する |
\[ | 非表示文字のシーケンスを開始する。これを使って、プロンプト中に端末の制御シーケンスを埋め込むことができる |
\] | 非表示文字のシーケンスを終了する |
コメント