クリックして離れる前に、これは典型的な「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についてはわからないことがたくさんあります。何かを台無しにするために。どうすれば目的を達成できますか?
追伸これは、プロンプトをルートとして表示したいものです
[user @ Host]----[$(pwd)]
(red)#
編集:これを解決済みとしてマークし、ルートが私の目標を達成している間に、上記のコードを〜/ .bashrcに追加します。また、上記のコードでは、$(pwd)はホームディレクトリのみを表示し(ターミナルを開いたときは作業ディレクトリであるためだと思います)、更新することはありません。 $(pwd)を\ wに置き換えるとこれが修正されますが、ホームディレクトリは~
として表示されます。これは回避しようとしていました。
また、rootユーザーになる方法にも依存します。環境で読み取るsu - root
やSudo -i
などを使用している場合は、rootユーザーの.bashrcを変更する必要があります。
Sudo -s
を使用すると、独自の.bashrcを読む必要があります。
コードをデバッグするためにprintfまたはechoステートメントを追加して、コードがいつ実行されたかを確認することを検討してください。
id
コマンドを使用して、自分が自分だと思う人であることを確認します。
root@tau:~# id
uid=0(root) gid=0(root) groups=0(root)
ルートのプロンプトの色を赤に変更するために、このスレッドの例に従って、.bashrc
ファイルを変更しました。
regularuser@myubuntubox:~$ Sudo su -
root@myubuntubox:~# vim .bashrc
次に、vimでPS1
割り当ての最終的な外観を検索し、それに続いてこれを追加します(他の前の行を変更する必要がないように$PS1
の値を更新します。変更は簡単に元に戻すことができます):
# Set RED Prompt
PS1="\[\e[01;31m\]$PS1\[\e[00m\]"
Belacquaの有効な回答 https://askubuntu.com/a/305053/12218 に従って、Sudo suを発行することにより、ルートの.bashrcがロードされます。
これを確認するには、Sudo su
に続いてcd ~
を発行します。これにより、ルートのホームディレクトリにいることがわかります。
Sudo su
を使用すると、rootとしてログインします(su =ユーザーの切り替え)Sudo do some administrative task
昇格された特権を持つユーザーとして。
したがって、Sudo su
を使用すると、実際のルートになり、環境に加えられた変更は、具体的にルートに加えられた変更になります。つまり、Sudo su
に続いてvim .bashrc
になります。
以下が役立つ場合があります
export PS1='`[ $(id -u) == "0" ] && echo "#" || echo ">"` '
これにより、通常のユーザーには'> '
、ルートには'# '
が表示されます。これもルートの.bashrc
にある必要があります。