Jeśli uruchomiłeś ls
polecenie w Bash, zauważysz, że katalogi i pliki, które widzisz, są kolorowane zgodnie z ich typem. Możesz dostosować własny schemat kolorów, aby wybrać różne kolory tekstu, kolory tła i formatowanie, np. Pogrubienie i podkreślenie.
Schemat kolorów jest przechowywany w zmiennej LS_COLORS. Aby wyświetlić aktualny schemat kolorów, możesz powiedzieć Bashowi, aby wydrukował zawartość zmiennej:
echo $ LS_COLORS
Zobaczysz długą listę typów plików i kodów numerów. Wyjaśnimy, jak utworzyć taką listę samodzielnie.
Przed rozpoczęciem zabawy zalecamy zapisanie bieżącej zawartości zmiennej LS_COLORS na inną zmienną. Umożliwi to szybkie przywrócenie ustawień domyślnych bez wylogowywania się z powłoki i ponownego logowania, lub zamykania i ponownego otwierania okna terminala. Aby zapisać bieżącą zawartość zmiennej LS_COLORS na nową zmienną o nazwie ORIGINAL, uruchom:
ORIGINAL = $ LS_COLORS
W dowolnym momencie możesz uruchomić następujące polecenie, aby cofnąć zmiany i przywrócić domyślne kolory:
LS_COLORS = $ ORIGINAL
Twoje zmiany są zawsze tymczasowe, dopóki nie zmienisz pliku, aby ustawić je jako nowe domyślne. Zawsze możesz wylogować się i zalogować ponownie lub zamknąć i ponownie otworzyć okno terminala, aby przywrócić kolory do domyślnych ustawień. To jednak ułatwia to za pomocą jednego, szybkiego polecenia.
Zmienna LS_COLORS zawiera listę typów plików wraz z powiązanymi kodami kolorów. Domyślna lista jest długa, ponieważ określa różne kolory dla wielu różnych typów plików.
Zacznijmy podstawowy przykład, aby pokazać, jak to działa. Powiedzmy, że chcemy zmienić kolor katalogów z domyślnie pogrubionego niebieskiego na pogrubiony czerwony. Możemy wykonać następujące polecenie, aby to zrobić:
LS_COLORS = "di = 1; 31"
The di = 1; 31
bit tells ls
te katalogi (di
) są (=
) pogrubienie (1;
) czerwony (31
).
Jest to jednak bardzo prosta zmienna LS_COLORS, która definiuje katalogi jako jeden kolor i pozostawia każdy inny typ pliku jako domyślny kolor. Powiedzmy, że chcemy również, aby pliki z rozszerzeniem .desktop miały podkreślony kolor cyjan. Możemy wykonać następujące polecenie, aby to zrobić:
LS_COLORS = "di = 1: 31: *. Desktop = 4; 36"
To mówi ls
te katalogi (di
) są (=
) pogrubienie (1;
) czerwony (31
) i (:
) dowolny plik kończący się na .desktop (*.pulpit
) jest (=
) podkreślone (4;
) cyan (36
).
Jest to proces składania listy typów plików i kolorów. Określ dowolną liczbę w postaci filetype = color, oddzielając każdy dwukropkiem (:).
Aby złożyć własną listę, wystarczy znać listę kodów kolorów i kodów typów plików. Używa tych samych kodów kolorów, których używasz przy zmianie koloru w wierszu polecenia Bash.
Oto lista kodów kolorów tekstu pierwszego planu:
Na przykład, ponieważ żółty tekst jest kodem koloru 33, użyłbyś go di = 33
aby katalogi były żółte.
Oto lista atrybutów koloru tekstu:
Podczas określania atrybutu lub więcej niż jednego kodu koloru, rozdziel listę kodów średnikiem (;). Nie musisz określać 0 dla zwykłego tekstu, ponieważ tekst normalny jest używany, gdy nie określisz tutaj atrybutu.
Na przykład, ponieważ tekstem pogrubionym jest kod koloru 1, a tekstem żółtym jest kod koloru 33, możesz użyć di = 1; 33
zrobić katalogi pogrubione na żółto. Możesz także określić więcej niż jeden atrybut. Na przykład możesz użyć di = 1; 4; 33
aby pogrubić katalogi, podkreślono kolor żółty.
Oto lista kodów kolorów tła:
Na przykład, ponieważ niebieskie tło ma kod koloru 44, użyłbyś go di = 44
używać niebieskiego tła do katalogów. Można także łączyć kod koloru tła, kod koloru pierwszego planu i dowolną liczbę atrybutów. Na przykład, di = 1; 4; 33; 44
dałoby ci pogrubiony, podkreślony żółty tekst na niebieskim tle.
Oto lista kodów typów plików:
Podaj tyle różnych typów kodów typów plików, które mają tyle różnych kolorów, ile chcesz, oddzielonych znakiem:. Powtórz ten proces, aby złożyć zmienną LS_COLORS.
Na przykład, powiedzmy, że chcesz użyć pogrubionego fioletowego tekstu do katalogów, podkreślonego czerwonego tekstu dla plików wykonywalnych i pogrubionego zielonego tekstu na czerwonym tle dla plików .mp3. Łącząc kody typów plików i kody kolorów z powyższych list, otrzymasz:
LS_COLORS = "di = 1; 35: ex = 4; 31: *. Mp3 = 1; 32; 41"
Masz teraz niestandardową zmienną LS_COLORS, która działa w bieżącej sesji Bash. Prawdopodobnie jednak chcesz go ustawić na stałe, aby był automatycznie używany podczas rozpoczynania nowej sesji Bash bez konieczności pamiętania o tym.
Możesz ustawić niestandardową zmienną LS_COLORS i dowolną inną zmienną Bash, która Ci się podoba, dodając ją do pliku .bashrc Twojego konta użytkownika. Ten plik znajduje się w ~ / .bashrc. Jeśli twoja nazwa użytkownika jest bob, znajdziesz ją w /home/bob/.bashrc. Istnieją również inne sposoby ustawiania zmiennych środowiskowych, ale jest to proste.
Najpierw otwórz ten plik w preferowanym edytorze tekstu. Użyjemy tutaj nano jako przykładu, ale możesz użyć vi, emacs lub cokolwiek innego, co lubisz.
nano ~ / .bashrc
Dodaj niestandardową zmienną LS_COLORS do nowej linii na końcu pliku, na przykład:
LS_COLORS = "di = 1; 35: ex = 4; 31: *. Mp3 = 1; 32; 41"
Zapisz plik i zakończ. W nano naciśnij Ctrl + O, a następnie naciśnij Enter, aby zapisać, a następnie naciśnij Ctrl + X, aby wyjść.
Za każdym razem, gdy rozpoczniesz nową sesję Bash, Bash odczyta plik .bashrc i automatycznie ustawi zmienną LS_COLORS. Aby zmienić kolory w przyszłości, wróć do pliku .bashrc i edytuj linię LS_COLORS.
Możesz także po prostu usunąć LS_COLORS =
linii dodanej do pliku .bashrc, aby ponownie użyć kolorów domyślnych. Jeśli nie ustawisz wartości LS_COLORS, Bash użyje domyślnych kolorów.