If-Koubou

Jak zmienić kolory katalogów i plików w poleceniu ls

Jak zmienić kolory katalogów i plików w poleceniu ls (Jak)

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.

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ć 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.

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 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:

  • 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 (To odwraca kolory pierwszego planu i tła, więc zobaczysz czarny tekst na białym tle, 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ż 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:

  • 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 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:

  • Directory: di
  • Plik: fi
  • Link symboliczny: ln
  • Potok nazwany (FIFO): pi
  • Socket: so
  • 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, 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"

Jak ustawić nowe domyślne kolory

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.