Bevor Sie wegklicken, ist dies nicht die typische Frage "Wie mache ich meine Bash-Eingabeaufforderung farbig?". Ich habe meine Bash-Eingabeaufforderung bereits so angepasst:
[user @ host]----[$(pwd)]
$
Dabei ist alles in Klammern hellblau und alles andere (einschließlich $) schwarz, indem Sie Folgendes zu meiner ~ / .bashrc-Datei hinzufügen
# 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
Das Ziel ist es, es so zu machen, dass sich das einzige, was sich ändert, wenn ich 'sudo su' verwende, ist, dass sich das schwarze $ in ein rotes # verwandelt. Ich habe in /etc/bash.bashrc und / etc / profile nachgesehen, um zu sehen, ob es nur eine Zeile zum Auskommentieren gibt, aber es gibt eine Menge Dinge über debian_chroot, die ich nicht verstehe und die ich nicht will etwas vermasseln. Wie kann ich erreichen, was ich will?
PS So soll die Eingabeaufforderung als root aussehen
[user @ host]----[$(pwd)]
(red)#
edit: Markiere dies als gelöst und füge den obigen Code an ~ / .bashrc an, während root mein Ziel erreicht hat. Außerdem zeigt $ (pwd) im obigen Code nur das Home-Verzeichnis an (vermutlich, weil dies das Arbeitsverzeichnis ist, wenn das Terminal geöffnet wird) und aktualisiert es nie. Das Ersetzen von $ (pwd) durch \ w behebt dies, zeigt jedoch das Ausgangsverzeichnis als an ~
, das ich vermeiden wollte.
quelle
\e[01;31m
in\[...\]
. Dies wird unter PROMPTING im Handbuch erklärt. Siehe auch mywiki.wooledge.org/BashFAQ/053pwd
die Eingabeaufforderung nicht funktioniert hat, ist, dass Sie das Dollarzeichen umgehen müssen. Andernfalls$(pwd)
wird sie ausgeführt, bevor der Inhalt in $ PS1 platziert wird. Sie können es mit diesem Test:PS1="\$(pwd) "
.Antworten:
Dies hängt auch davon ab, wie Sie der Root-Benutzer werden. Sie müssen die Änderung in der .bashrc des Root-Benutzers vornehmen, wenn Sie etwas wie
su - root
oder verwendensudo -i
, wo Sie in der Umgebung lesen.Mit
sudo -s
sollten Sie Ihre eigene .bashrc-Datei lesen.Erwägen Sie, einige printf- oder echo-Anweisungen hinzuzufügen, um Ihren Code zu debuggen und Ihnen mitzuteilen, wann er ausgeführt wurde.
Verwenden Sie den
id
Befehl, um sich zu vergewissern, wer Sie sind:quelle
sudo su
sudo su
liest ~ root / .bashrc (zumindest wie aktuell auf meinem 13.04 System implementiert).Um die Farbe der Eingabeaufforderung für root in rot zu ändern, habe ich die
.bashrc
Datei gemäß den Beispielen in diesem Thread geändert .Suchen Sie dann in vim nach dem endgültigen Erscheinungsbild der
PS1
Zuordnung und fügen Sie dieses anschließend hinzu (beachten Sie, dass der Wert von aktualisiert wird,$PS1
sodass andere vorherige Zeilen nicht geändert werden müssen und die Änderung leicht rückgängig gemacht werden kann):quelle
Nach der gültigen Antwort von belacqua /ubuntu//a/305053/12218 wird durch die Ausgabe von sudo su die .bashrc-Datei des Stammverzeichnisses geladen.
Sie können dies überprüfen, indem Sie Folgendes
sudo su
eingeben:cd ~
Sie sehen, dass Sie sich im Stammverzeichnis befinden.Mit
sudo su
loggen Sie sich als root ein (su = switch user) im Gegensatz zusudo do some administrative task
als user mit erhöhten Rechten.Wenn
sudo su
Sie also verwenden, werden Sie der eigentliche Root, und die an der Umgebung vorgenommenen Änderungen sind Änderungen, die speziell an Root vorgenommen wurden, dh:sudo su
gefolgt vonvim .bashrc
.quelle
Folgendes kann helfen
Dies wird
'> '
für normale Benutzer und'# '
für root angezeigt. Dies muss auch noch in root sein.bashrc
.quelle