Jak zmienić kolory katalogów i plików w poleceniu ls
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, na przykład pogrubienie i podkreślenie.
Jak to działa
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ć nowe wartości domyślne. Zawsze możesz wylogować się i zalogować ponownie lub zamknąć i ponownie otworzyć okno terminala, aby przywrócić kolory do ich domyślnych ustawień. Ułatwia to jednak proste, szybkie polecenie.
Jak ustawić niestandardowe kolory
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 mówi 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. Załóżmy, ż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ę .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 znakiem dwukropka (:).
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:
- Czarny: 30
- Niebieski: 34
- Cyan: 36
- Zielony: 32
- Fioletowy: 35
- Czerwony: 31
- Biały: 37
- Żółty: 33
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:
- Normalny tekst: 0
- Pogrubienie lub jasny tekst: 1 (zależy od emulatora terminala.)
- Dim Text: 2
- Podkreślony tekst: 4
- Migający tekst: 5 (To nie działa w przypadku większości emulatorów terminali.)
- Tekst odwrócony: 7 (Powoduje odwrócenie kolorów pierwszego planu i tła, dzięki czemu czarny tekst na białym tle zostanie wyświetlony, jeśli bieżący tekst jest białym tekstem na czarnym tle).
- Ukryty tekst: 8
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ż pogrubioną czcionką jest kod koloru 1, a żółty tekst jest kodem 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:
- Czarne tło: 40
- Niebieskie tło: 44
- Cyan tło: 46
- Zielone tło: 42
- Fioletowe tło: 45
- Czerwone tło: 41
- Białe tło: 47
- Żółte tło: 43
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 również łą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:
- Directory: di
- Plik: fi
- Link symboliczny: ln
- Potok nazwany (FIFO): pi
- Gniazdo: tak
- Zablokuj urządzenie: bd
- Urządzenie znaków: cd
- Orphan Symbolic Link (wskazuje na plik, który już nie istnieje): lub
- Brakujący plik (brakujący plik wskazany przez sierocą dowiązanie symboliczne): mi
- Plik wykonywalny (ma uprawnienie "x"): ex
- * .extension: Dowolny plik kończący się określonym przez ciebie rozszerzeniem. Na przykład użyj * .txt dla plików kończących się na .txt, * .mp3 dla plików kończących się na .mp3, * .desktop dla plików kończących się na .desktop lub cokolwiek innego, co lubisz. Możesz podać dowolną liczbę różnych rozszerzeń plików.
Podaj tyle różnych typów kodów typów plików z dowolną liczbą różnych kolorów, 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"
Jak ustawić nowe domyślne kolory
Masz teraz niestandardową zmienną LS_COLORS, która działa w bieżącej sesji Bash. Najprawdopodobniej jednak chcesz, aby był trwały, więc jest automatycznie wykorzystywany za każdym razem, gdy rozpoczynasz nową sesję Bash bez konieczności pamiętania o tym.
Możesz ustawić niestandardową zmienną LS_COLORS - i dowolną inną zmienną Bash, którą lubisz - 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 prosty sposób.
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 nowego wiersza 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.