プロンプトにドット入りホスト名を表示させる
システムソリューション部の中川です。
先日サーバを構築した際に、プロンプトの表示形式について調べ直したので
そちらをご紹介していきます。
プロンプトとは、サーバにログインした時に表示される次の部分です。
[root@test ~]#
デフォルトでは左から、ユーザー名@ホスト名・カレントディレクトリが表示されます。
ここで表示されるホスト名を変更する方法をご紹介していきます。
あくまでCentOS6までの方法ですので、CentOS7だと勝手が違うところがあるためご注意ください。
1.一時的にホスト名を変更
まず、一時的に変更する方法は次のとおりです。
hostname {ホスト名}
コマンド実行後、オプションなしでhostnameコマンドを実行すると、入力したホスト名が表示されます。
この場合は再起動すると設定が無効になり、設定前のホスト名に戻ります。
2.再起動後も設定したホスト名を有効にする
1の手順ではホスト名を変更できていても、プロンプトに表示されるホスト名は変わっていません。
再起動が実行されても変更維持した上で、プロンプトの表示を変更するには
2つの設定ファイルを変更する必要があります。
・/etc/hosts
127.0.0.1 localhost localhost.localdomain {ホスト名}・/etc/sysconfig/network
HOSTNAME={ホスト名}
設定後、/etc/init.d/networkを再起動すると設定が反映されます。
もし反映されない場合はサーバ自体を再起動する必要があります。
3.特殊なホスト名を設定する
設定したいホスト名に○○.jpや○○.co.jpといった.が含まれていると
先に説明した方法ではうまく反映されないことがあります。
その場合、環境変数を指定してホスト名を変更します。
編集する設定ファイルは次のとおりです。
・環境変数「PS1」を編集もしくは追記
プロンプトの表示形式はPS1という環境変数でしているため
これを編集するか、設定されていない場合は新たに追加します。
現在設定されている環境変数一覧は次のコマンドで確認できます。
# env
# printenv
今回プロンプトに表示させたいのはユーザー名・ホスト名・カレントディレクトリなので
次のような環境変数として設定します。
export PS1="[\u@\H \W]\$ "
exportコマンドを実行して、エラーが表示されないかどうか確かめます。
もう一度envコマンドを実行すると、環境変数「PS1」の設定が表示されます。
・~./bashrc
対象ユーザのホームディレクトリ以下に存在するファイルです。
先に設定した環境変数「PS1」は再起動すると無効になるため
ログインした時に自動的に環境変数「PS1」を読み込むよう、.bashrcファイル内の末尾に追記します。
export PS1="[\u@\H \W]\$ "
以上を設定した上でセッションを一度閉じるか、別ユーザーに切り替えて元のユーザーに戻るなど
再度ログインすると設定したホスト名がプロンプトに表示されます。
4.その他設定変更
その他の設定変更例を一部ご紹介していきます。
日付を表示されたい場合は環境変数に「\d」を付け加えます。
export PS1="[\u@\H \d \W]\\$ "
コマンドの履歴番号を表示させる場合は「\!」を付け加えます。
export PS1="[\u@\H \! \W]\\$ "
終わりに
自分にとって使いやすいプロンプトをカスタマイズするヒントになればと思い、ご紹介しました。
最後まで読んで下さり、ありがとうございます。