印刷用表示へ切り替え 通常表示へ切り替え 更新履歴を表示 更新履歴を隠す
Mac Mac OS X のターミナルのプロンプトを変更する

Mac OS X のターミナルのプロンプトを変更する。

■ ■ ■

Mac OS X は BSD Unix がベースで POSIX 準拠の OS だという点では少しは分かるのだけれども,細かいところは分からないことばかり。

動作環境は Mac OS X Marvericks (10.9.2)。シェルは bash。

今回はターミナルのプロンプトをデフォルトのものから変更する。ユーザ名とか入っていて恥ずかしいから。

デフォルトのプロンプトは次のようになっている。

MacBook-Pro:~ myname$

並びとしては,「ホスト名」「:」「ワーキングディレクトリ」「(スペース)」「ユーザ名」「$」である。シェルは bash なので (bash だということはターミナルのバーに表示されている),プロンプトは PS1 という環境変数に設定されている。

PS1='\h:\W \u\$ '

\h, :, \W, (スペース), \u, \$ のそれぞれが,上の「ホスト名」…に対応している。詳しくは Man page of BASH の「プロンプト」の項を参照。

環境変数は set コマンドで表示できる。

$ set
...
PROMPT_COMMAND='update_terminal_cwd; '
PS1='\h:\W \u\$ '
PS2='> '
PS4='+ '
...

プロンプトに関係があるのは,PROMPT_COMMAND (毎回のコマンド実行後に実行される処理),PS1 (プロンプト),PS2 (複数行に渡る入力の際に表示されるセカンドプロンプト),PS4 (シェルスクリプトで -x オプションを指定したときに行頭に表示される文字) である (PS1とPROMPT_COMMAND, GNU screenでの活用も - rcmdnk's blog)。PS3 (select 文を使った時に表示される文字) は設定されていない。

コマンドプロンプトの最初に出てくる「ホスト名」は,「システム環境設定」内の「共有」で設定できる。実にわかりにくいところにある。

プロンプトにホスト名を出すというのは懐かしい感じがする。昔,いくつかの Unix マシンを共有して使っている時,つまり Unix は端末からリモートで使っているので,どの Unix マシンを使っているのかが分からなくなることがよくあった。そのため,プロンプトには必ずホスト名を入れていた。

しかし,Mac をローカルで使うのであれば,ホスト名は要らない。ワーキングディレクトリだけでいいかな。設定は

$ export PS1='\w\$ '

でいい。「\W」よりも「\w」がいいかな。次回からこれにしたい場合は ~/.bash_profile に書いておけばよい。

Posted by n at 2014-05-03 23:00 | Edit | Comments (0) | Trackback(0)
Trackbacks

  • 「手違いで複数トラックバックを送ってしまった!」という場合でも気にしないでください (重複分はこちらで勝手に削除させていただきます)
  • タイムアウトエラーは,こちらのサーバの処理能力不足が原因です (詳細は トラックバック送信時のエラー をご覧ください)
  • トラックバックする記事には,この記事へのリンクを含めてください(詳細は 迷惑トラックバック対策 をご覧ください)
Comments
Post a comment
  • 電子メールアドレスは必須ですが,表示されません (気になる場合は「メールアドレスのような」文字列でもOKです)
  • URL を入力した場合はリンクが張られます
  • コメント欄内ではタグは使えません
  • コメント欄内に URL を記入した場合は自動的にリンクに変換されます
  • コメント欄内の改行はそのまま改行となります
  • 「Confirmation Code」に表示されている数字を入力してください (迷惑コメント対策です)


(必須, 表示されます)


(必須, 表示されません)


(任意, リンクされます)


Confirmation Code (必須)


Remember info (R)?