bashプロンプトの表示を変更する方法

この記事は約4分で読めます。

bashプロンプトの表示を変更する方法

プロンプトとは?

bashプロンプト

bashプロンプト

bash(Linuxにログインしたときのシェル画面)には
root@hostname /etc #」みたいなプロンプトが表示されます

プロンプトというのは、「ここにコマンドを入力してください」という記号のことです

rootの部分がユーザー名
hostnameの部分がホスト名
/etcの部分がカレントディレクトリ
#プロンプト

ユーザー名が長かったりホスト名が長かったりするとプロンプトの表示だけで1行の半分くらい消費して画面が見づらかったりします

bashプロンプトの現在の設定を確認する

echo $PS1

上記のコマンドで、現在の設定を確認できます

デフォルトでは以下のような記号が出力されると思います

[\u@\h \W]\$

\uユーザー名
\hホスト名
\Wカレントディレクトリ
\$#
に相当します

@はそのまま、ただの@という文字です
ユーザー名@ホスト名」という表示になるように
\u@\h」という指定になっています

角括弧([])や半角スペースもそのままの形で出力されます

export PS1でプロンプトを変更できる

export PS1

export PS1

export PS1='\$'

のようにコマンドを入力するとプロンプトを短くすることができます

行の先頭に常に「root@hostname /etc #」と表示されていたものが
#」だけになります

プロンプトをデフォルトに戻す

プロンプトを「#」だけにしたけど、やっぱりユーザー名とかホスト名も表示させたいときは

export PS1='[\u@\h \W] \$ '

というコマンドでデフォルトのプロンプト表示に戻せます

export PS1で使用できる特殊文字一覧

記号 意味
\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に対応する文字を表示する
\\ バックスラッシュを表示する
\[ 非表示文字のシーケンスを開始する。これを使って、プロンプト中に端末の制御シーケンスを埋め込むことができる
\] 非表示文字のシーケンスを終了する

export PS1の変更は一時的なもの

export PS1='\$'

のようなコマンドでプロンプトの表示を変更しても、サーバーを再起動したりコンソールを閉じたりするとプロンプトの表示はデフォルトの状態に戻ります

プロンプトの表示を永続的に変更する方法

vi .bashrc

.bashrcというファイルを開いて、同ファイル内に

export PS1='\$'

のような設定を書き込めば永続的にプロンプトの表示を変更できます

.bashrcを変更した後は

source .bashrc

上記のコマンドを実行すると設定が反映されます

コメント

タイトルとURLをコピーしました