web-dev-qa-db-ja.com

1つのサーバーにsshすると、bashが表示され、もう1つのサーバーにユーザー名が表示されるのはなぜですか?

そのため、私には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

私はそれが/etcからデフォルトのbash設定を引っ張っているだけだと思います

あなたのすべての協力に感謝します。

4
Arian Faurtosh

BashプロンプトはPS1環境変数。追加することで、必要なプロンプトを取得できます

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

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

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

6
drs

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

echo $PS1を使用して最初のマシンでPS1が何に設定されているかを確認し、次にexport PS1=...を使用して2番目のマシンで同じ値に設定できます。この変更を永続的にするには、exportコマンドを.bashrcファイル(または、ログインシェルによってソースされる.profileファイル-おそらく構成によって異なります)に追加する必要があります。

編集:コメントによると、2台目のマシンで最初のマシンとまったく同じプロンプトを表示するには、次のコマンドを実行します。

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

すでに説明したように、永続化することができます。

4
Malte Skoruppa

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

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

3
Raza