あるサーバーにSSHを介して接続しましたが、別のサーバーに自分のユーザー名が表示された場合、bashが表示されるのはなぜですか?

あるサーバーにSSHを介して接続しましたが、別のサーバーに自分のユーザー名が表示された場合、bashが表示されるのはなぜですか?

したがって、職場にはsshアクセス可能な2つのWebサーバーがあります。

どちらもRHEL 6.5です。

そのいずれかにログインすると、次のように表示されます。

[username@ldvweb01 /]$ 

別のアカウントにログインすると、次のように表示されます。

-bash-4.1$ 

最初のものを表示するときは、よりエレガントだと思います。 2つの間をどのように切り替えますか?誰でも私にこれを説明できますか?


実行後のecho $PS1結果

-bash-4.1$ echo $PS1
\s-\v\$

そして

[appadmin@ldvcatweb01 /]$ echo $PS1
[\u@\h \W]\$

両方のホームディレクトリの違いを確認した後。.bashrcホームディレクトリにまたはがないことがわかりました。.bash_profile

だから私は以前のサーバーからコピーしました。

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

そして

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# User specific aliases and functions

私は基本的なbash設定を次から取得したようです。/etc

助けてくれてありがとう。

答え1

Bashプロンプトは環境変数で構成されていますPS1。追加すると、必要なヒントが得られます。

export PS1="[\u@\h \W]\$ "

.bashrcファイル(ユーザーのホームディレクトリにあります)にコピーします。

プロンプトで使用できる特殊文字の完全なリストは、以下で確認できます。公式Bashドキュメント

答え2

両方のシステムのログインシェルがbashであると仮定すると、PS1環境変数は異なります。この変数はプロンプトの形式を決定します。

を使用して最初のコンピュータで設定をecho $PS1確認し、を使用して2番目のコンピュータで同じ値に設定できます。この変更を永久に適用するには、このコマンドをファイル(またはログインシェルによって提供されるファイル - 構成によって異なります)に追加する必要があります。PS1export PS1=...export.bashrc.profile

編集する:あなたの意見に従って、2番目のコンピュータから最初のコンピュータと同じプロンプトを取得するには、次のコマンドを実行する必要があります。

export PS1="[\u@\h \W]\$"

前述のように永久に設定できます。

答え3

ホームフォルダは各システムで同じでない場合があります。各サーバーのスクリプトが処理さ.bashrcれたことを確認できます。プロンプトを表示するには、bashログインスクリプト(.bash_profile)に.bash_profileそれを含める必要があります。export PS1="\u@\h \w> "

各システムで同様の環境を表示できるように、ホームディレクトリをNFSマウントに配置できます。

関連情報