最近、本番環境や検証環境にSSH接続してごにょごにょする機会が増えました。ともすると今接続しているサーバがどこなのかよく確認せずにコマンド叩いたりしちゃってたまにヒヤっとするときがあります。
今のところ大事に至ったケースはないので大丈夫なんですが、あらかじめ手をうっておくにこしたことはないですね。
標準のターミナル(Terminal.app)でチャレンジしたことがあったのですが、ターミナルのプロファイルを作成して切り分ける方法だったため、毎回ターミナルが別ウィンドウで表示されてしまったり、SSH接続を切断しても元に戻らなかったりでイマイチな感じでした。
そこでiTermを使えばAppleScriptで拡張出来るっぽい情報を得たのでちょっとやってみます。
解説
iTermをダウンロードしてインストールします。
http://www.iterm2.com/#/section/home
SSH接続時にこんな感じに変わるようにします(文字見づらい!)。
下記はSSH接続時に動的に背景色を切り替えるためのスクリプトですが、これを参考に背景画像を切り替えられるようにしました。
https://gist.github.com/thomd/956095
この辺も参考になった。
http://kpumuk.info/mac-os-x/how-to-show-ssh-host-name-on-the-iterms-background/
ssh_chbg.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#!/bin/bash set_bg_image() { /usr/bin/osascript <<EOF tell application "iTerm" tell the current terminal tell the current session set background image path to "$1" end tell end tell end tell EOF } case "$@" in # {hostname}* ) set_bg_image {background_images_path};; sakura* ) set_bg_image ~/bin/ssh_bg_image/sakura.jpg;; my_server* ) set_bg_image ~/bin/ssh_bg_image/my_server.png;; esac ssh $@ # disconnect local iterm bgimage set_bg_image ~/bin/ssh_bg_image/black.png |
case文の中で各ホスト別の背景画像を指定します。このソースコードでは、ssh sakuraというコマンドで接続した場合に~/bin/ssh_bg_image/sakura.jpgが背景画像に適用されるようになっています。
最後の行で、SSHを切断した際に戻る背景画像を指定しています。本当は画像なし状態に戻したかったんですがやり方がわかりませんでした。なので1pxの#000000の画像を指定して黒画面に戻しています。
使い方
下記からコピペするかgit cloneして、~/bin配下にでも入れましょう。
https://gist.github.com/harada4atsushi/10001208
あと必要な画像も任意のディレクトリに置いておいてください。この例では~/bin/ssh_bg_image配下に置いています。
実行権限の付与
1 2 |
$ cd ~ $ chmod u+x bin/ssh_chbg.sh |
~/.bashrcにaliasを定義
1 |
alias ssh=~/bin/ssh_chbg.sh |
これでssh hostnameというコマンドを叩くと背景画像が切り替わります!これなら間違えないぞ!

原田 敦

最新記事 by 原田 敦 (全て見る)
- Rails Engineでブログ機能追加するgemを作る - 2015年3月15日
- WEBエンジニア一人だけでサービスを作りきる方法-夫婦のための自動ごはん予定お知らせサービス「GoHaaan」制作でやったこと - 2015年3月7日
- CentOS6でMariaDBのDynamic Columnsを試してみた - 2015年2月28日