Skip to content

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

11 de sierpień de 2021
img 591cd4da1e9cc

Jeśli masz runthe ls polecenie w Bash, zauważysz, że katalogi i pliki, które widzisz, są pokolorowane zgodnie z ich typem. Możesz dostosować własny schemat kolorów, aby wybrać różne kolory tekstu, kolory tła i formatowanie, takie jak 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 nakazać Bashowi wydrukowanie zawartości zmiennej:

echo $LS_COLORS

Zobaczysz długą listę typów plików i kodów liczbowych. Wyjaśnimy, jak samodzielnie utworzyć taką listę.

1628698283 717 Jak zmienic kolory katalogow i plikow w poleceniu ls

Zanim zaczniesz się tym bawić, zalecamy zapisanie bieżącej zawartości zmiennej LS_COLORS w innej zmiennej. 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 do nowej zmiennej o nazwie ORIGINAL, uruchom:

ORIGINAL=$LS_COLORS

1628698283 565 Jak zmienic kolory katalogow i plikow w poleceniu ls

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 uczynić je nowymi ustawieniami domyślnymi. Zawsze możesz się wylogować i zalogować ponownie lub zamknąć i ponownie otworzyć okno terminala, aby przywrócić domyślne ustawienia kolorów. Ułatwia to jednak wykonanie tego jednym, szybkim poleceniem.

Jak ustawić niestandardowe kolory

Zmienna LS_COLORS zawiera listę typów plików wraz z powiązanymi kodami kolorów. Lista domyślna jest długa, ponieważ określa różne kolory dla wielu różnych typów plików.

Zacznijmy od podstawowego przykładu, aby zademonstrować, jak to działa. Powiedzmy, że chcemy zmienić kolor katalogów z domyślnego pogrubionego niebieskiego na pogrubiony czerwony. W tym celu możemy uruchomić następujące polecenie:

LS_COLORS=”di=1;31″

ten di=1;31 bit mówi ls że katalogi (di) są (=) pogrubiony (1;) czerwony (31).

1628698283 953 Jak zmienic kolory katalogow i plikow w poleceniu ls

Jest to jednak tylko bardzo prosta zmienna LS_COLORS, która definiuje katalogi jako jeden kolor i pozostawia każdy inny typ pliku jako kolor domyślny. Załóżmy, że chcemy, aby pliki z rozszerzeniem .desktop miały również podkreślony kolor cyjan. W tym celu możemy uruchomić następujące polecenie:

LS_COLORS=”di=1:31:*.desktop=4;36″


To mówi ls że katalogi (di) są (=) pogrubiony (1;) czerwony (31) oraz (:) dowolny plik z rozszerzeniem .desktop (*.desktop) jest (=) podkreślone (4;) cyjan (36).

1628698283 54 Jak zmienic kolory katalogow i plikow w poleceniu ls

Jest to proces tworzenia listy typów plików i kolorów. Podaj tyle ile chcesz w formie filetype=color, oddzielając je znakiem dwukropka (:).

Aby stworzyć własną listę, wystarczy znać listę kodów kolorów i kodów typów plików. Wykorzystuje to te same numeryczne kody kolorów, których używasz podczas zmiany koloru w monicie Bash.

Oto lista kodów kolorów tekstu pierwszego planu:

  • Czarny: 30
  • Niebieski: 34
  • Cyjan: 36
  • Zielony: 32
  • Fioletowy: 35
  • Czerwony: 31
  • Biały: 37
  • Żółty: 33

Na przykład, ponieważ żółty tekst to kod koloru 33, użyjesz di=33 aby katalogi były żółte.

1628698283 728 Jak zmienic kolory katalogow i plikow w poleceniu ls

Oto lista atrybutów koloru tekstu:

  • Normalny tekst: 0
  • Tekst pogrubiony lub jasny: 1 (zależy od emulatora terminala.)
  • Przyciemniony tekst: 2
  • Podkreślony tekst: 4
  • Migający tekst: 5 (nie działa w większości emulatorów terminali).
  • Odwrócony tekst: 7 (odwraca kolory pierwszego planu i tła, dzięki czemu zobaczysz czarny tekst na białym tle, jeśli bieżący tekst jest białym tekstem na czarnym tle.)
  • Ukryty tekst: 8

Określając atrybut lub więcej niż jeden kod koloru, oddziel listę kodów znakiem średnika (;). Nie musisz określać 0 dla zwykłego tekstu, ponieważ normalny tekst jest używany, gdy nie określisz tutaj atrybutu.

Na przykład, ponieważ tekst pogrubiony to kod koloru 1, a tekst żółty to kod koloru 33, użyjesz di=1;33 aby katalogi były 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 katalogi były pogrubione, podkreślone na żółto.

1628698283 373 Jak zmienic kolory katalogow i plikow w poleceniu ls

Oto lista kodów kolorów tła:

  • Czarne tło: 40
  • Niebieskie tło: 44
  • Błękitne 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 to kod koloru 44, użyjesz di=44 używać niebieskiego tła dla katalogów. Możesz także połączyć kod koloru tła, kod koloru pierwszego planu i dowolną liczbę atrybutów. Na przykład, di=1;4;33;44 da ci pogrubiony, podkreślony żółty tekst na niebieskim tle.

1628698283 358 Jak zmienic kolory katalogow i plikow w poleceniu ls

Oto lista kodów typów plików:

  • Katalog: di
  • Plik: fi
  • Dowiązanie symboliczne: ln
  • Nazwana rura (FIFO): pi
  • Gniazdo: tak
  • Zablokuj urządzenie: bd
  • Urządzenie znakowe: cd
  • Orphan Symbolic Link (wskazuje na plik, który już nie istnieje): lub
  • Brakujący plik (brakujący plik, na który wskazuje sieroce dowiązanie symboliczne): mi
  • Plik wykonywalny (ma uprawnienia „x”): ex
  • *.rozszerzenie: Dowolny plik kończący się określonym 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 czegokolwiek innego. Możesz określić dowolną liczbę różnych rozszerzeń plików.


Określ 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.

Załóżmy na przykład, że chcesz użyć pogrubionego fioletowego tekstu dla 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″

1628698283 609 Jak zmienic kolory katalogow i plikow w poleceniu ls

Jak ustawić nowe domyślne kolory

Masz teraz niestandardową zmienną LS_COLORS, która działa w bieżącej sesji Bash. Jednak prawdopodobnie chcesz, aby był trwały, aby był automatycznie używany za każdym razem, gdy rozpoczynasz nową sesję Bash, bez konieczności pamiętania o tym.

Możesz ustawić swoją niestandardową zmienną LS_COLORS — i dowolną inną zmienną Bash — dodając ją do pliku .bashrc konta użytkownika. Ten plik znajduje się w ~/.bashrc. Tak więc, jeśli twoja nazwa użytkownika to bob, znajdziesz ją w /home/bob/.bashrc. Istnieją również inne sposoby ustawiania zmiennych środowiskowych, ale ten jest prosty.

Najpierw otwórz ten plik w preferowanym edytorze tekstu. Użyjemy tutaj nano jako przykładu, ale możesz użyć vi, emacs lub czegokolwiek innego.

nano ~/.bashrc

1628698283 653 Jak zmienic kolory katalogow i plikow w poleceniu ls

Dodaj swoją 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 wyjdź. W nano naciśnij Ctrl + O, a następnie naciśnij Enter, aby zapisać, a następnie naciśnij Ctrl + X, aby wyjść.

1628698283 51 Jak zmienic kolory katalogow i plikow w poleceniu ls

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 też po prostu usunąć LS_COLORS= wiersz dodany do pliku .bashrc, aby ponownie użyć domyślnych kolorów. Jeśli nie ustawisz wartości LS_COLORS, Bash użyje domyślnych kolorów.

Czy ten post był pomocny?