クリックする前に、これは典型的な「bashプロンプトに色を付けるにはどうすればよいか」という質問ではありません。私はすでにbashプロンプトを次のようにカスタマイズしています:
[user @ host]----[$(pwd)]
$
〜/ .bashrcファイルに以下を追加することで、括弧内のすべてが水色で、他のすべて($を含む)が黒になります
# Turn the prompt symbol red if the user is root
if [ $(id -u) -eq 0 ];
then # you are root, make the prompt red
PS1="[\e[01;34m\u @ \h\e[00m]----[\e[01;34m$(pwd)\e[00m]\n\e[01;31m#\e[00m "
else
PS1="[\e[01;34m\u @ \h\e[00m]----[\e[01;34m$(pwd)\e[00m]\n$ "
fi
目標は、「sudo su」を使用したときに変更される唯一のものが、黒の$が赤の#に変更されるようにすることです。/etc/bash.bashrcと/ etc / profileを調べてコメントアウトする行があるかどうかを確認しましたが、debian_chrootについてはわからないことがたくさんあります。何かを台無しにするために。どうすれば自分のやりたいことを達成できますか?
PSこれは、プロンプトをルートとして表示するものです
[user @ host]----[$(pwd)]
(red)#
編集:これを解決済みとしてマークし、ルートが私の目標を達成している間に上記のコードを〜/ .bashrcに追加します。また、上記のコードでは、$(pwd)はホームディレクトリのみを表示し(ターミナルを開いたときは作業ディレクトリであるためだと思います)、更新することはありません。$(pwd)を\ wに置き換えるとこれが修正されますが、ホームディレクトリはとして表示されますが~
、これは回避しようとしました。
\e[01;31m
で、\[...\]
。これは、マニュアルの「プロンプト」で説明されています。mywiki.wooledge.org/BashFAQ/053
pwd
プロンプトで動作しなかった理由は、ドル記号をエスケープする必要があるためです。そうしない$(pwd)
と、コンテンツが$ PS1に配置される前に実行されます。これでテストできます: PS1="\$(pwd) "
。