Bashのプロンプトをカスタマイズする

こんにちは。今回のテーマは『Bashのプロンプトをカスタマイズする』です。どんなプロンプトでも機能に支障はありませんが、よく使うものだからこそ自分なりのカスタマイズをしておきたいと思います。楽しいLinuxライフをどうぞ
【関連記事】
Fcitxのスキンを自分の好みにカスタマイズする


【目次】
プロンプトとは
プロンプトを自分の好みにカスタマイズ
プロンプトをカラフルにする

プロンプトとは

まず、用語についてですがWikipediaから引用すると

コマンドプロンプト (Command Prompt) とは、コマンドインタプリタが画面上に表示する「コマンド入力待ち状態であることを表す記号」の事を言い、利用者にコマンド入力を促すものである。単にプロンプトとも呼ぶ。Microsoft Windows NT 系列の Windows で動作する端末ウィンドウ兼シェル (cmd.exe) の名称でもある。

(引用元:Wikipedia)

ということであり、要はコマンドが入力可能であると示す記号のことです。現在では単純なマークだけではなく、ユーザー名やホスト名などの情報も入ることが一般的です。

プロンプトを自分の好みにカスタマイズ

日常的に使うからこそ自分好みに

深いディレクトリに移動していくとプロンプトのカレントディレクトリが長くなっていってしまって文字が入力しづらい・・・こんな経験はないでしょうか?Ubuntuのプロンプトは初期状態ではカレントディレクトリのパスを絶対パスで表示するため、現在いるディレクトリが把握しやすい一方で、画面がゴチャゴチャしがちです。

カスタマイズ方法は簡単で、環境変数PS1を変更するだけです。~/.bash_profileや、~/.profile,~/.bashrc,~/.xprofileなどの起動時に環境設定できるファイルに以下のように書き込むだけです。設定に使う変数は次項で説明します。

カスタマイズ例

export PS1="[\u@\h:\W]\$ "

出力例

[kuro@s-machine:~]$

Bashプロンプトで使える特殊文字

以下の特殊文字を組み合わせて好みのプロンプトにカスタマイズしましょう。シンプルにするのも、凝ったプロンプトにすることもできます。

特殊文字 意味
\a ビープ音を鳴らす(ASCII のベル文字 07)
\d “曜日 月 日”の形式の日付
\h ホスト名(最初の . までの名前)
\H ホスト名
\n 改行
\r 復帰
\s シェル名
\t 時刻 HH:MM:SS 形式(24時間)
\T 時刻 HH:MM:SS 形式(12時間)
\@ 時刻 am/pm を表示
\u 現在のユーザー名
\v bash のバージョン
\V bash のバージョン・リリース番号など詳細
\w 現在のディレクトリ(フルパス)
\W 現在のディレクトリ名
\! コマンドのヒストリー番号
# コマンドの履歴番号を表示
\$ UIDを表示。rootなら”#”,一般ユーザーは”$”
\\ バックスラッシュ
\] 表示されない文字列の終わり

プロンプトをカラフルにする

プロンプトをカラー化することも可能です。色を着けるためにはANSIカラーコードを使います。コード表は以下の通りです。

Black       0;30     Dark Gray     1;30
Blue        0;34     Light Blue    1;34
Green       0;32     Light Green   1;32
Cyan        0;36     Light Cyan    1;36
Red         0;31     Light Red     1;31
Purple      0;35     Light Purple  1;35
Brown       0;33     Yellow        1;33
Light Gray  0;37     White         1;37

カスタマイズ例

export PS1="[\[\e[1;34m\]\u\[\e[00m\]@\h:\W]\$ "

出力例
01

最後に

最近のLinuxはGUI操作が簡単にできるようになりターミナルエミュレータを使う頻度も落ちていて、プロンプトのカスタマイズなど特に興味が無いという方も多いと思います。ただ、Linuxユーザーとターミナルエミュレーターは切っても切れない関係だと思いますし、カスタマイズをすることでより自分のマシンに愛着が湧くかも知れません。少しでもこの記事がお役に立てば幸いです。

Sponsored Link


コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です