サーバを複数台管理していると、どこにログインしているかわからなくなります。
プロンプトには通常ホスト名が表示されるようになっていますが、クラウド環境などだと、自動的にアサインされた覚えにくい名前になっていたりするので、分かりやすい名前に変更したい場合があります。
###環境
私はMacとLinux(CentOS)を使うことがほとんどなのでbashにします。
bash以外だと方法が違うので、適宜調べて下さい。
###今の状態の確認
プロンプトの表示フォーマットはbashでは、PS1という環境変数に入っていますので、その形式を表示してみます。
echo "$PS1"
[\u@\h \W]\$
環境によっても違いますが、多くの場合、上記の様になっています。
意味は、
- \u : ユーザー名
- \h : ホスト名
- \W : 今いるディレクトリ名
- \$ : 一般ユーザーの時$,rootの時#を表示
というものです。@等は、普通に表示されます。
上記の場合、
[hoge@hostname ~]$
という感じで表示されます。
ローカル環境で、OSのhostname等を自由に変更できる場合などはいいのですが、クラウド環境や変更できない場合は静的に変更してやります。と入っても、ハードコーディングするだけなので、難しくありません。
###変更する
まず、変更したいのは、基本ホスト名だけです。あと、今いるディレクトリをフルパスで表示するようにしてみます。ここで、ホスト名をTEST_SERVERとしたいとします。
やりたい形式
[hoge@TEST_SERVER /var/www/html]$
表示のためのフォーマット
[\u@TEST_SERVER \w]$
最終的には.bashrcに設定を記述すればいいのですが、まずは一時的に試してみます。
export PS1="[\u@TEST_SERVER \w]$"
とすると瞬時にかわります。パターンが気に入らない場合は、いろいろといじってみるといいでしょう。
ただ、この場合、コンソールを閉じて、新しいコンソールを開くと、デフォルトの状態に戻ります。永続化したい場合は、上記の記述を.bashrcに記述します。
vi .bashrc
記述が終わったら、
source .bashrc
を実行し、値を反映させます。
なお、色も変えることができます。
色の指定は[\e[色指定m]というフォーマットで行います。
host名を別の色にして強調したい場合などは、
export PS1="[\u@\[\e[1;33m\]TEST_SERVER \[\e[m\]\w]$"
などとします。この場合、host名が黄色になります。
色は、指定した箇所から以下の以降の文字列全てに適用されるので、[e[m](色指定無し)でリセットします。
色コードは、
m 指定なし
0;30m Black
0;31m Red
0;32m Green
0;33m Yellow
0;34m Blue
0;35m Purple
0;36m Cyan
0;37m White
という感じです。
どの色にしても、ケバケバしいので、強調は白を使えばいいでしょう。
export PS1="[\u@\[\e[1;37m\]TEST_SERVER \[\e[m\]\w]$"
###参考
##おまけ
###プロンプトに絵文字を入れる
まず、絵文字が表示されるかどうかチェック。
echo -e '\U1F439'
表示できるようなら、下記のようにする。
``で囲むことで変数内でコマンドの実行が可能なります。あとは、\hなどと組み合わせます。
export PS1=`echo -e '\U1F439 '`" \h:\W $ "
Macでは、絵文字はcontrol + command + spaceで表示できるので、好きな絵文字を右クリックして、ユニコードを取得し変更します。
形式はU+xxxxの形式になっているので、\Uxxxxxと直してあげます。以上。