ubuntu linuxの端末のプロンプトを短く変更する

(2009年9月16日)
ubuntu Linuxで端末(CUI)を利用している方も多いと思いますが、端末の初期設定だとプロンプトが長くてうんざりしている方も多いのではないでしょうか?
知っている方も多いと思いますが、プロンプトとは端末上でコマンドの入力を促す左側に表示される文字列です(下のような感じの文字です)。
hogeUser@ubuntu-machine:~/hoge1/hoge2/hogehogehoge3/ $
特にディレクトリの深い階層で作業する事になると、そのディレクトリの階層がプロンプトに表示されるのでかなり長くなります。
これははっきり言ってかなりうざいです。という事で今回このプロンプトに表示される文字を変更してみました。
ubuntu Linuxのbashシェルでは「PS1」という環境変数がプロンプトを定義しています。
(*bashシェルや環境変数とは何だ?って思う方もまぁ流して先を読んでみてください。これらの意味が解らなくてもプロンプトの変更はできますので・・・気になる方は検索エンジンか何かで調べて下さい。)
つまり「PS1」という変数に表示するプロンプトが定義されているので、PS1を変更すれば端末に表示されるプロンプトも変更できます。
そして、PS1を変更するコマンドはexportコマンドです。
下の例では短くシンプルに$だけを表示するようにしています。
$ export PS1="$ "
次にカレントディレクトリと$を表示するようにしてみます(カレントディレクトリは見やすく[]で囲んでいます)
\Wは現在のディレクトリ(カレントディレクトリ)を意味しています。
$ export PS1="[\W]$ "
次にユーザ名@カレントディレクトリにしてみます。
\uは現在のユーザ名を意味しています。
$ export PS1="\u@[\W]$ "
また、現在のPS1がどうなっているか知りたいときはechoコマンドです(引数にPS1を指定します。PS1の前に$を付けるのをお忘れなく)
$ echo $PS1
ちなみにechoコマンドでPS1の初期設定を調べたときは下のような感じでした。
$ echo $PS1
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$
結構長いし意味解んないですね。まぁとにかく、こうなっているというのだからPS1を変更したけどやっぱり初期設定に戻したいという方はexportコマンドでPS1を上の文字列に指定すればいいのでしょう。
$ export PS1="\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ "
表示されるプロンプトだけを見ると下のようでもいいような気がするんだけどなぁ…
\hはホスト名のうち最初の「.」までの部分、\wはユーザーのホームディレクトリからカレントディレクトリまでの絶対パスを意味しています。
$ export PS1="\u@\h:\w$ "
さて、このexportコマンドによるプロンプトの変更はコマンド実行後すぐに反映されると思いますが、PCを再起動するとこの反映は失われます。
PC再起動後もずっとプロンプトの変更を有効にしたい場合は設定ファイル「~/.bashrc」にexportコマンドを書き込む必要があります。「~」は各ユーザのホームディレクトリです。
私の場合は「~/.bashrc」ファイルの最後に以下を追記しました。
#プロンプトの変更
#デフォルトのプロンプト:\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ 
export PS1="[\W]$ "
「#」はコメント文です。上のように初期状態のプロンプトぐらいはコメント文で残しておくといいかもしれません。
Webサービス by Yahoo! JAPAN