Widziałem na niektórych zrzutach ekranu (nie pamiętam, gdzie w Internecie), że terminal może wyświetlać [username@machine /]$
pogrubione litery. Z niecierpliwością czekam na to, ponieważ zawsze przewijam długie wyniki, aby z trudem znaleźć pierwszą linię po moim poleceniu.
Jak mogę pogrubić lub pokolorować nazwę użytkownika itp.?
bash
prompt
escape-characters
Benzoes
źródło
źródło
Odpowiedzi:
Powinieneś być w stanie to zrobić, ustawiając
PS1
zmienną pytania w swoim~/.bashrc
pliku w następujący sposób:Aby był kolorowy (i być może pogrubiony - zależy to od tego, czy emulator terminalu go włączył), musisz dodać specjalne kody kolorów:
Tutaj wszystko, co nie ucieka między częściami
1;91m
i,0m
zostanie zabarwione na1;91
kolor (pogrubiona czerwień). Umieść te kody ucieczki wokół różnych części monitu, aby użyć różnych kolorów, ale pamiętaj, aby zresetować kolory za pomocą, w0m
przeciwnym razie będziesz mieć również kolorowe wyjście wyjściowe. Pamiętaj, aby później pobrać plik, aby zaktualizować bieżącą powłokę:source ~/.bashrc
źródło
1;31
i1;91
. Przy normalnej gramaturze czcionek zakres 90-97 daje jaśniejsze kolory niż inne.Znajdź, gdzie
PS1
jest ustawiony.bashrc
i wstaw'\[\e[1m\]'
na początku i\[\e[0m\]
na końcu.\[
i\]
są konieczne, aby powłoka wiedziała, że bałagan w środku zajmuje 0 miejsca na ekranie, co zapobiega popsuciu się podczas edycji linii. Nie musisz się tym zbytnio przejmować.\e[
jest znany jako CSI (wprowadzający sekwencję kontrolną). Zobaczysz go w większości kodów wymienionych na odnośnej stronie Wikipedii.\e
oznacza znak ucieczki.CSI 1m
Włącza więc pogrubienie iCSI 0m
resetuje czcionkę, dzięki czemu reszta tekstu jest normalna.Wikipedia ma pełną listę kodów ucieczkowych ANSI , których można użyć, jeśli obsługuje je emulator terminala.
Edytować
Aby zapewnić przenośność i czytelność, należy używać
tput
zamiast kodowania kodów ucieczki na stałe. Jedynym minusem jest to, żetput
podejście nie działa z terminalami, które obsługują kody ANSI, ale mają uszkodzone lub brakujące bazy danych terminfo, ale w takim przypadku zepsute terminfo jest większym problemem, ponieważ wiele aplikacji konsolowych opartych na terminfo może nie działać poprawnie.Oto przykład tego, co robię w moim
.bashrc
:Oto jak mogłaby wyglądać moja uogólniona wersja. Jest
0
to status wyjścia ostatniego polecenia.źródło
To jest domyślny monit wyświetlany w powłoce cygwin bash:
Referencje:
man bash
i sprawdźPROMPTING
sekcję.źródło
Używam tej funkcji powłoki, aby uzyskać atrybuty tekstu w terminalu:
Następnie, aby go użyć:
Daje mi to,
[username@hostname]:cwd>
gdzieusername@hostname
są odważne zielone icwd
odważne niebieskie.źródło
~/.bashrc
?~/.bashrc
pliku i używam go, aby ustawić monit. Nawet zmieniam kolory w zależności od używanego systemu.Aby wyglądało jak domyślny monit Ubuntu, dodaj
export PS1='\[\e[1;32m\]\u@\h\e[0;39m\]:\e[1;34m\]\w\e[0;39m\]$\[\e[0m\] '
w twoim
~/.bashrc
.Spowoduje to wyświetlenie dobrze znanego zielonego
user@host
(pogrubionego), a następnie nie pogrubionego białego dwukropka, a następnie katalogu roboczego pogrubioną niebieską czcionką, a następnie$
znaku, spacji i polecenia nie pogrubionymi białymi literami:źródło