ラベル カスタマイズ の投稿を表示しています。 すべての投稿を表示
ラベル カスタマイズ の投稿を表示しています。 すべての投稿を表示

2012/12/22

Linux(bash)プロンプトの色付けとホスト名の管理


SSH などで Linux を使っていると開発サーバや本番機など、いろいろなサーバを渡り歩きますが、たくさんウィンドウを開いていたりSSH を渡り歩きすぎると時々自分がどこにいるのか見失ってしまいます。

私の場合、自分が管理する運用環境では自分がどこにいるのかをすぐに識別できるようにするため、特に本番環境にいる時の注意喚起のためにサーバに応じてプロンプトの色を変えるように設定しています。

プロンプトに色をつけるには ~/.profile などで設定するというのはよく見かけますが、私の場合には "ホストの設定として全ユーザに適用する" 必要があるため、少し違うやり方をします。

/etc/profile.d というディレクトリに prompt.sh (これは任意の名前)という次のスクリプトを作成します。

# prompt setting
if [ "$PS1" ]; then
  export PS1="\[\033[0;33m\][\u@\h(dev01) \W]\[\033[0;37m\]\\$ "
fi

/etc/profile.d に任意の名前でシェルスクリプトを記述しておくとシェルの起動時に自動的に実行されるため、全てのユーザに適用されます。
私の場合は基本 bash だけなので prompt.sh だけですが、 csh にも対応するには prompt.csh というファイルも作成しておきます。

ログインするとプロンプトは次のようになります。

[user@sv001(dev01) ~]$ 

このまま、スーパーユーザにスイッチしても

[root@sv001(dev01) ~]# 

となり、色設定が必ず適用されます。
私の場合は開発系を黄色、本番系を赤色にすることで、リモートのホストに接続している状態であることと特に本番機に接続している状態を注意喚起する事を目的としています。

よく忘れるカラーコードは次の通り。
昔の8bit機のカラーコードと同じなら覚えやすいのだけどなぁ・・・(笑)

\033[0;30m : Black
\033[0;31m : Red
\033[0;32m : Green
\033[0;33m : Yellow
\033[0;34m : Blue
\033[0;35m : Magenta
\033[0;36m : Cyan
\033[0;37m : Light Gray
\033[0;30m : Black
\033[1;31m : Dark Gray
\033[1;32m : Light Green
\033[1;33m : Light Yellow
\033[1;34m : Light Blue
\033[1;35m : Light Magenta
\033[1;36m : Light Cyan
\033[1;37m : White

カラーコードに40番台を指定すれば背景の指定となります。


プロンプトに (dev01) というリテラル文字を設定しているのはサーバの論理名です。
サーバの名前の付け方も人それぞれですが、僕の場合はサーバ名には sv001 などの連番を付与し、別名として論理名を付けて管理する方式を好んでいます。

以前はホスト名には db01 などの役割に応じた名前を付けていたのですが、運用してみるといくつか不便を感じることがありました。

・ハードウェアトラブルのために急遽、別のサーバで代替機を立てた際や、インフラの見直しで複数の役割を持つサーバができてしまった際に名前と役割が乖離してしまった。
・役割に応じて命名していると別のシステムと名前がよく重複する。
・ハードウェアの移動などで再構築するたびに名前が変わるので、資産管理の棚卸しなどの際にいちいちシリアル番号を追いかけなければならない。
・ホスト名を考えるのにわりと悩む

これらの教訓から、

・ホストの正式名は sv001 などの連番で付与して未来永劫変更しない。
・ホストの役割はその時々で変わるものなので別名で対応する。
 別名の解決には /etc/hosts や内部DNSと上記のプロンプトの表記で対応する。

この方式にすることで、ホスト名に関する悩みはだいぶなくなりました。

2011/11/02

Mac のキーボード操作に慣れない・・・

Mac を使い始めて3ヶ月くらい絶つけれど、いまだにキーボード操作に馴染めない・・・
Mac のキーボード操作での主な不満点。
  • コマンドキーが遠い。Ctrl キー系の操作になれているので、やはりこちらの方がよい。
  • 上記に関連するが、Ctrl + カーソル移動キーで単語移動してくれない。というか、デスクトップが切り替わるので鬱陶しい。
    Option + カーソル移動キーで単語移動するけど、Option キーもこれまた遠いし小さい。
  • ターミナルでコマンドキーがメタキーになってくれない。
    emacs 使いとしては致命的。編集中にコピーリージョンを指定しようとして command + w をタイプすると、ウィンドウが閉じてしまい、全ての編集が水泡に帰す。 orz。
  • 外部キーボード(ELECOMのTK-FBP014。Apple用のASCII配列 Bluetooth キーボード)のキー配列がこれまた違う。
    ASCII配列であるのはOKだけど、補助キーの配置が全く異なってる上に小さい。というか、スペースバー長すぎない?
などなど。

キーボードをカスタマイズしてしまうと他の標準的なマシンを触れなくなってしまうので控えていたのだけれど、注意力が散漫になってしまって生産性が悪いので、あきらめてカスタマイズすることにしよう。

少し調べたら KeyRemap4 MacBook というソフトが便利そうなのでこれを試そう。
補助キーがボトルネックなので、少なくとも普段の操作でこれらのキーを使わなくても良いようにしないと効率が悪いが、そうなるともはや Mac ではなくなるな・・・笑