回答:
少しする exit コマンド。きみの su root あなたがrootであるサブシェルを始めた su user もう一つ始めた。タイピング exit それらのサブシェルを終わらせて、あなたが始めたところにあなたを連れ戻すでしょう - 1レベル深い。
プロンプトを変更するだけです。次のコマンドを使用できます。
export PS1="\u@\h \w: "
私は個人的に次のことを私のプロンプトとして好みますが、それは私だけです:
export PS1="[\u@\h \w]\$ "
関連するbashrcファイルにステートメントを追加することでプロンプトの変更を防ぐことができます。また見なさい Bash Shell PS1:アンジェリーナ・ジョリーのようにLinuxのプロンプトを表示させる10の例 PS1の詳細については。
su 新しい(サブ)シェルを生成してユーザーを切り替えます。だからあなたがログインしたとき、あなたはシェルを始めました。最初とは su rootになると、rootとしてサブシェルを始めました。次の su あなたのユーザにはさらに別のサブシェルを始めました - この瞬間にあなたは3つのシェルを走らせていることに注意してください。だから代わりに su ルーツシェルからユーザーへ exit ログインシェルに戻ってあなたの問題を解決します。
あなたが持っている場合 pstree インストール済み pstree -h 何が起こっているのかをグラフィカルに表示します。
プロンプトは通常、シェル起動ファイルの1つによって設定されているように見えます。 ではない あなたが走っているとき su rootからあなたのユーザへ。 bashを使っているのなら、 man bash 勧誘のセクションで啓発することがあります。 bashが読み込むかもしれないスタートアップファイルがいくつかあります。
/etc/profile~/.bash_profile~/.bash_login~/.profile~/.bashrc の PS1 環境変数は単なる環境変数であり、上記のファイルのどの組み合わせが実行されるかに応じて設定される場合と設定されない場合があります。
の su コマンドは -l (または --login )省略されてもよいスイッチ - これは新しいシェルをログインシェルにします。これはおそらくあなたが望むものです:
su - david
私はいつも使う su このオプションでは。
これがbashシェルなら、試してみてください。
source ~/.bashrc
それでもうまくいかない場合 echo $PS1 そして何が変わったか見てください。
su それ自体では、シェルの新しいセッションは作成されません。それが、通常のようにシェルを設定しない理由です。しかしながら、
su -
新しいログインセッションを開始します