Zanim klikniesz, nie jest to typowe pytanie „jak sprawić, aby mój bash miał kolor”. Już dostosowałem mój monit bash, aby wyglądał następująco:
[user @ host]----[$(pwd)]
$
gdzie wszystko w nawiasach jest jasnoniebieskie, a wszystko inne (w tym $) jest czarne, dodając następujące elementy do mojego pliku ~ / .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
Celem jest, aby jedyną rzeczą, która zmienia się, gdy używam „sudo su”, jest to, że czarne $ zmienia się w czerwony #. Zajrzałem do /etc/bash.bashrc i / etc / profile, aby sprawdzić, czy jest tylko linia do skomentowania, ale jest wiele rzeczy na temat debian_chroot, których nie rozumiem i nie chcę coś spieprzyć. Jak mogę osiągnąć to, czego chcę?
PS Tak chcę, aby monit wyglądał jak root
[user @ host]----[$(pwd)]
(red)#
edycja: Oznacz to jako rozwiązane, dołączając powyższy kod do ~ / .bashrc, podczas gdy root osiągnął mój cel. Ponadto w powyższym kodzie $ (pwd) wyświetla tylko katalog domowy (chyba dlatego, że jest to katalog roboczy, gdy terminal jest otwarty) i nigdy nie jest aktualizowany. Zamiana $ (pwd) na \ w naprawia to, ale wyświetla katalog domowy jako ~
, którego próbowałem uniknąć.
źródło
\e[01;31m
, w\[...\]
. Wyjaśniono to w części PROPOZYCJA w instrukcji. Zobacz także mywiki.wooledge.org/BashFAQ/053pwd
nie zadziałało w wierszu polecenia, jest to, że musisz uciec od znaku dolara, w przeciwnym razie$(pwd)
zostanie wykonane przed umieszczeniem zawartości w $ PS1. Można przetestować go w ten sposób:PS1="\$(pwd) "
.Odpowiedzi:
Będzie to również zależeć od tego, jak zostaniesz użytkownikiem root. Musisz zmienić .bashrc użytkownika root, jeśli używasz czegoś takiego jak
su - root
lubsudo -i
, gdy czytasz w środowisku.Z
sudo -s
powinieneś czytać własny .bashrc.Zastanów się nad dodaniem instrukcji printf lub echo w celu debugowania kodu i poinformowania go o jego wykonaniu.
Użyj
id
polecenia, aby upewnić się, że jesteś tym, za kogo się uważasz:źródło
sudo su
sudo su
czyta ~ root / .bashrc (przynajmniej jak obecnie zaimplementowany w moim systemie 13.04).Aby zmienić kolor monitu na czerwony dla roota, zmodyfikowałem
.bashrc
plik, postępując zgodnie z przykładami w tym wątku.Następnie, w vimie, wyszukaj ostateczny wygląd
PS1
zadania i dodaj to po nim (zauważ, że aktualizuje wartość$PS1
, aby inne poprzednie wiersze nie musiały być modyfikowane, a zmiana jest łatwo odwracalna):źródło
Po prawidłowej odpowiedzi belacqua /ubuntu//a/305053/12218 , wydając sudo su, ładowany jest plik root .bashrc.
Możesz to sprawdzić, wydając,
sudo su
a następniecd ~
zobaczysz, że znajdujesz się w katalogu głównym root.Używając
sudo su
logujesz się jako root (su = switch user) w przeciwieństwie do tego,sudo do some administrative task
jako użytkownik z podwyższonymi uprawnieniami.Tak więc, używając
sudo su
, stajesz się prawdziwym rootem, a zmiany dokonane w środowisku są zmianami dokonanymi specjalnie dla roota, tj .:sudo su
następujevim .bashrc
.źródło
Następujące mogą pomóc
To pokaże się
'> '
dla zwykłego użytkownika i'# '
roota. To wciąż musi znajdować się w katalogu głównym.bashrc
.źródło
\$
która pokazuje,#
czy root i$
inaczej.\$
nie jest jednak bardzo przydatny, ponieważ nie można go dostosowywać.