Główna » jak » Jak zmienić kolory katalogów i plików w poleceniu ls

    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.