Oprócz plików kolorystycznych opartych na ich typach (turkusowy dla plików audio, jasnoczerwony dla archiwów i plików skompresowanych oraz fioletowy dla obrazów i filmów), ls
także koloruje pliki i katalogi na podstawie ich atrybutów:
- Czarny tekst z zielonym tłem wskazuje, że katalog może być zapisywany przez innych użytkowników oprócz właściciela i grupy oraz ma ustawiony bit lepki (
o+w, +t
).
- Niebieski tekst z zielonym tłem wskazuje, że katalog może być zapisywany przez innych użytkowników oprócz właściciela i grupy, i nie ma ustawionego bitu lepkiego (
o+w, -t
).
Stephano Palazzo z Ask Ubuntu stworzył ten bardzo pouczający obraz w odniesieniu do różnych kolorów atrybutów:
Jak zauważył terdon , ustawienia kolorów można modyfikować za pomocą dircolors
. Dostęp do listy różnych ustawień kolorowania można uzyskać za pomocą dircolors --print-database
.
Każdy wiersz wyniku, taki jak BLK 40;33;01
, ma postać:
[TARGET] [TEXT_STYLE];[FOREGROUND_COLOR];[BACKGROUND_COLOR]
TARGET
wskazuje cel dla reguły kolorowania
TEXT_STYLE
wskazuje styl tekstu:
00
= brak
01
= pogrubienie
04
= podkreślenie
05
= mrugnięcie
07
= rewers
08
= ukryty
FOREGROUND_COLOR
wskazuje kolor pierwszego planu:
30
= czarny
31
= czerwony
32
= zielony
33
= żółty
34
= niebieski
35
= magenta
36
= cyjan
37
= biały
BACKGROUND_COLOR
wskazuje kolory tła:
40
= czarny
41
= czerwony
42
= zielony
43
= żółty
44
= niebieski
45
= magenta
46
= cyjan
47
= biały
Pola można pominąć, zaczynając od prawej, więc na przykład .tar 01;31
oznaczają pogrubienie i kolor czerwony.
XTerm i większość innych nowoczesnych emulatorów terminali obsługuje 256 kolorów.
256-kolorowy kod pierwszego planu XTerm ma postać:
38;5;[FOREGROUND_COLOR]
256-kolorowy kod koloru tła XTerm ma postać:
48;5;[BACKGROUND_COLOR]
gdzie oboje FOREGROUND_COLOR
i BACKGROUND_COLOR
jest liczbą z zakresu 0-255. Pełna lista kodów kolorów dla trybów 16 i 256 kolorów pokazano na poniższym zrzucie ekranu:
38;5;
uruchamia 256- kolorowy kod koloru pierwszego planu xterm .48;5;
uruchamia 256-kolorowy kod koloru tła xterm. Cyjan w mojej produkcji dircolors38;5;51
nie jest,36
chociaż wynik jest taki sam.Kolory
ls
mogą reprezentować uprawnienia, domyślnie w niektórych systemach jest pokazanie katalogów, w których każdy ma uprawnienia do zapisu z zielonym tłem:Możesz zmienić kolory, edytując
$LS_COLORS
zmienną za pomocądircolors
(zman ls
):Składnia jest wprawdzie trochę denerwująca, ale możesz zmienić ten kolor, tworząc plik z pożądanymi kolorami i zapisując go jako
~/.dircolors
:To polecenie wypisze ustawienia domyślne
~/.dircolors
. Następnie musisz edytować ten plik i zmienić ten wiersz:Na przykład, aby uzyskać czarny tekst na czerwonym tle ( lista kodów kolorów znajduje się tutaj ):
Nie musisz mieć wszystkich ustawień domyślnych, możesz też po prostu utworzyć plik z pojedynczą linią, ponownie definiując tylko ten, który chcesz zmienić. W każdym razie po utworzeniu pliku załaduj go za pomocą:
I oto jest w akcji:
Aby tak się stało automatycznie, dodaj
eval
powyższe polecenie do~/.bashrc
pliku.źródło
eval "$(dircolors ~/dircolors)";
zamiast bardziej bezpośredniego sposobu, takiego jakdircolors ~/dircolors
?Chociaż wszystkie odpowiedzi techniczne są prawdziwe, uważam to za nieformalne ostrzeżenie, że odrzuciłeś trochę prawa do hojnego lub kopiowania criss + cross ... (najczęściej wszyscy tak robimy, aby początkowo wszystko działało, co? ?)
Dobrym sposobem na „odejście od środowiska” w celu powrotu do praw, które najprawdopodobniej chcesz, jest takie oświadczenie:
Najlepiej zrozumiałeś, co robi, jeśli rozumiesz cel wielkich liter + X „special execute”, czyli patrz Wikipedia
źródło
Miałem to samo pytanie, odpowiedź Terdona jest miła, ale myślę, że istnieje pomieszanie między dirname a dircolors?
W każdym razie po dalszych badaniach mogłem zmienić kolory, dlatego dzielę się tutaj swoim rozwiązaniem. Może się przydać komuś kiedyś!
A więc 3 proste kroki:
Najpierw, jak powiedział terdon, skopiuj domyślne kolory do pliku
Następnie zmodyfikuj ten plik. Możesz znaleźć wartości dla kolorów w środku, ale znalazłem więcej tutaj :)
Na koniec dodaj następujący wiersz do
~/.bashrc
pliku, aby kolory były ładowane automatycznie po otwarciu terminala:Voilà :)
źródło
~/.zshrc
musiałem iść zif [[ -f ~/.dircolors ]] ; then eval $(dircolors -b ~/.dircolors) elif [[ -f /etc/DIR_COLORS ]] ; then eval $(dircolors -b /etc/DIR_COLORS) fi
. Niestety, łamanie linii jest okropneAby szybko rozwiązać problem (spraw, aby inne pliki do zapisu były żółte na nobg):
Zastąpić
33
przez34
Blue na nobg. Jeszcze prościej, aby było nofg na nobg:Aby twoja zmiana była trwała, dołącz ją do swojego .profile:
Aby wyświetlić reguły niezwiązane z rozszerzeniem LS_COLORS:
sed
umieszcza każdą regułę w jednym wierszu igrep
usuwa reguły zaczynające się od*.'.
Aby zbadać
ls
kolory na swoim terminalu, rozważ użycieNastępnie
Jak stwierdzono w innej odpowiedzi (Thomas Thymana),
38;5;
jest to przedrostek dla x-term 256 kolorów na pierwszym planie i48;5;
dla x-term 256-kolorów tła. 256 kolorów nie jest jednak obsługiwane przez wszystkie terminale.Zobacz także - Co oznaczają różne kolory w ls? - na AskUbuntu.
źródło
Oznacza to, że ten folder ma uprawnienia, jeśli uruchomisz to:
usunie bgcolor :)
źródło
Aby to naprawić, wypróbuj parametr ow przez LS_COLORS
Na przykład:
Teraz dodajesz opcję ow
źródło
Możesz zmienić ton zieleni w Putty, aby tekst był czytelny.
Otwórz Putty i przejdź do Window \ Colours, wybierz „ANSI Green”, ustaw ciemniejszą zieleń (R: 0 G: 70 B: 0).
źródło