(しばらく工事中)
リモート・ホストを色々いじっている場合に、 シェルのプロンプトにホスト名を入れるというのをする人がいた。 どこで作業しているか、分かるように。
複数のホストで作業をしているとき、 このシェルはどこの作業か分かりにくいことがある。 研究室のMacの大きな画面を使っているとき、 画面上のウィンドウの場所で何となく区別をつけていたのだけど、 自宅で MacBook で作業しているときは画面が狭いので、 ウィンドウの場所では区別しにくい。 少しでもぼうっとしていると、これはどこだっけ?になりやすい。間違いのもと。
それでシェルのプロンプトにホスト名を入れようか、とも考えたけれど、 プロンプトを見るのにスクロールが必要なことが多くて、 あまり実用的ではなさそう。
そういえば、iTerm2 のウィンドウには、 いつも走っているプロセスの名前ついているな。使ったことはなかったけれど、 そこに表示すればいいのかな。やってみよう。
真似をしよう。この人はディレクトリィをタイトルにつけた訳だけど、 私は hostname をつけよう。
~/.zshrc に書き加える |
function precmd() { local hname=`hostname -s` # カレントディレクトリを $HOME を ~ として表示 local wname=`pwd | sed -e "s|$HOME|~|"` # カレントディレクトリ名 local tname=`pwd | sed -e 's|^.*/||'` echo -ne "\033]2;$hname:$wname\007" # window title echo -ne "\033]1;$hname:$tname\007" # tab title } |
なかなか便利かもしれない。
あれ?純正ターミナルでは表示が変だな。
iTerm2 の Documentation の 「Session Title」 に詳しい説明がある。色々なやり方でいじれるらしいが、その中の
Receiving a control sequence that updates the "icon title". These are OSC 0 and OSC 1. |
さて、hostname の出力だけど、 固定 IP アドレスを振ってあるホストの hostname はドメイン名になるのかな? 固定 IP アドレスを振っていない、 モバイルの MacBook はドメイン名を持っていないけれど、 “ローカルホスト名” とかつくのか。 その辺は man hostname 読んでも良く分からない (真面目にマニュアルの整備をしていないのだな)。 別のところに、 ローカルホスト名は、 [システム設定]→ [情報]→ [共有]の “ローカルホスト名” で設定できる、とか書いてある。