Zbliża się Nowy Rok, nie chcę już myśleć o poważnej pracy.
Każdy próbuje udekorować coś na święta: dom, biuro, miejsce pracy... Udekorujmy też coś! Na przykład wiersz poleceń. W pewnym stopniu linia poleceń jest także miejscem pracy.
W niektórych dystrybucjach jest już „udekorowany”:
W innych jest szary i niepozorny:
A możemy to zrobić na przykład tak:
Oczywiście wszystkie markery mają różne smaki i kolory. Jeśli taka kolorystyka wydaje ci się tandetna i nieodpowiednia, wiedz, że ten punkt widzenia ma pełne prawo do życia. A jeśli i Ty chcesz dodać odrobinę noworocznego nastroju, przeczytaj krótki artykuł noworoczny od Cloud4Y.
Najpierw wyjaśnię, w jaki sposób wyjście terminala jest „kolorowane”. Odbywa się to za pomocą sekwencji ucieczki. A dokładniej sekwencje kodów sterujących terminala ANSI/VT100. Co automatycznie oznacza, że twój emulator terminala musi obsługiwać ten standard, w przeciwnym razie cud noworoczny nie nastąpi. I tak, zakłada się, że $SHELL jest Twoim bashem.
Polecenia te nazywane są sekwencjami ucieczki, ponieważ na początku każdej z nich znajduje się znak ASCII „escape”. Sekwencji sterujących jest wiele i pozwalają one m.in. wyświetlić ustawienia terminala, sterować wyświetlaniem i ruchem kursora, zmieniać czcionkę, usuwać i ukrywać tekst. Spośród całej gamy możliwości wybierzemy jedną - zmianę koloru tekstu i tła.
Wykonaj sekwencję kodu *ESC*[{attr1};...;{attrn}m
Jako symbol Ucieczka używana jest jego forma ósemkowa, tj 33. Jeśli chodzi o atrybuty, oto krótka lista możliwych wartości:
0 Zresetuj wszystkie atrybuty
1 Jasny (zwiększona jasność)
2 Ciemny
4 Podkreślać
5 Migać
7 Odwracać
8 Ukryty (ukryj tekst)
Kolory pierwszego planu (kolor pióra, tekst jest wyświetlany w tym kolorze):
30 Czarny
31 Czerwony
32 Zielony
33 Żółty
34 Niebieski
35 Magenta (purpura)
36 Cyjan (niebieski)
37 Biały
Kolory tła (kolor papieru lub kolor tła):
40 Czarny
41 Czerwony
42 Zielony
43 Żółty
44 Niebieski
45 Magenta (purpura)
46 Cyjan (niebieski)
47 Biały
Pamiętaj, że jeśli teraz wydasz polecenie w terminalu: echo 33[0;31mнекоторый текст 33[0m’
...wtedy, jak można się spodziewać, na wyjściu otrzymasz monochromatyczny bełkot:
Dlaczego? Ponieważ konieczne było wykorzystanie zaawansowanych możliwości polecenia echo. Wystarczy dodać jeden klucz: echo -e ‘ 33[0;31mнекоторый текст 33[0m’
Dane wyjściowe będą teraz wyglądać poprawnie:
Ustaliliśmy kolorowanie wyjścia do terminala. Zobaczmy teraz, jak pokolorować wiersz poleceń.
Odbywa się to poprzez zmianę zmiennej PS1. Zmienna odpowiada za wiersz poleceń. Można także zmieniać jego wygląd, m.in. za pomocą sekwencji ucieczki. Ale jest niewielka różnica: musisz rozpocząć sekwencję symbolem „[”, i zakończyć symbolem „]”, w przeciwnym razie zostanie wysłany do terminala.
Wszystkie możliwe sekwencje poleceń są szczegółowo opisane w podręczniku basha, dlatego zachęcam czytelników, aby sami wybrali, co wolą widzieć w wierszu poleceń. Jako przykład podam moją wartość zmiennej PS1:
[ 33[34;1m]t[ 33[0m],[ 33[32m]u@l@h[ 33[0m]:[ 33[33m]W[ 33[0m],[ 33
[31m]![ 33[0m]$n
Odszyfruję to straszne zaklęcie:
[ 33[34;1m] — włącz jasnoniebieski (drugi atrybut) kolor czcionki
t – wyświetla aktualny czas w formacie GG:MM:SS
[ 33[0m] – zresetuj ustawienia koloru czcionki
, - tylko przecinek (nieoczekiwany, prawda?)
[ 33[32m] — włącz zielony kolor czcionki
ty@l@h – wyświetlić nazwę użytkownika, numer urządzenia końcowego i krótką nazwę hosta oddzielone symbolem „@”.
[ 33[0m] — ponownie zresetuj ustawienia koloru czcionki
: - tylko dwukropek (nagle!)
[ 33[33m] — włącz żółty kolor czcionki
W – wyświetla nazwę bieżącego katalogu
[ 33[0m] — ponownie zresetuj ustawienia koloru czcionki
, - kolejny przecinek (kto by pomyślał!)
[ 33[31m] — włącz czerwony kolor czcionki
! — wyświetl numer polecenia w terminalu
[ 33[0m] - nie zapomnij zresetować ustawień koloru czcionki
$ — wydrukuj „#” dla roota i „$” dla wszystkich pozostałych
n - tłumaczenie liniowe. Po co? Aby polecenie zaczynało się od lewej krawędzi okna, a nie na końcu wiersza poleceń.
Gdzie przedefiniować zmienną? Najbardziej logicznym miejscem, w którym można to zrobić, jest ~/.bashrc.
Wygląd zaproszenia ogranicza jedynie Twoja wyobraźnia. W zasadzie nic nie stoi na przeszkodzie, aby za pomocą opisanych powyżej narzędzi utworzyć wiersz poleceń w postaci choinki. To prawda, że takie zaproszenie będzie bardzo uciążliwe, a praca na pewno nie stanie się wygodniejsza. Choinkę można po prostu wyświetlić nad wierszem poleceń podczas logowania (musimy jeszcze edytować ~/.bashrc). Idź po to! I dziękuję za uwagę.
Co jeszcze można przeczytać na blogu?
→
→
→
→
→
Zapisz się do naszego
Źródło: www.habr.com