Co ls
oznaczają różne kolory w poleceniu Ubuntu ? Na przykład, gdy wpisuję ls
polecenie w jednym z moich folderów, otrzymuję jeden z plików w kolorze jasnozielonym, a drugi (który jest folderem) w kolorze niebieskim z zielonym podświetleniem.
Co oznaczają te kolory i istnieje instrukcja na temat wszystkich kolorów?
command-line
colors
ls
Rafid
źródło
źródło
eval
skrypt pokazujący wyjściową reprezentację kolorów dla każdego typu jest genialny ... dzięki!eval
skryptu znajduje się tutaj: github.com/gkotian/gautam_linux/blob/master/scripts/colours.shMożesz dowiedzieć się, jakich kolorów
ls
używa, patrząc na$LS_COLORS
zmienną:Ponadto pliki są kolorowane według atrybutów:
aac, au, flac, mid, midi, mka, mp3, mpc, ogg, ra, wav, axa, oga, spx, xspf.
tar, tgz, arj, taz, lzh, lzma, tlz, txz, zip, z, Z, dz, gz, lz, xz, bz2, bz, tbz, tbz2, tz, deb, rpm, jar, rar, as, zoo, cpio, 7z, rz.
jpg, jpeg, gif, bmp, pbm, pgm, ppm, tga, xbm, xpm, tif, tiff, png, svg, svgz, mng, pcx, mov, mpg, mpeg, m2v, mkv, ogm, mp4, m4v, mp4v, vob, qt, nuv, wmv, asf, rm, rmvb, flc, avi, fli, flv, gl, dl, xcf, xwd, yuv, cgm, emf, axv, anx, ogv, ogx.
Wszystkie te informacje są zawarte w wynikach
dircolors --print-database
, ale ich formatowanie jest raczej nieczytelne.Oto techniczne wyjaśnienie tego, co się dzieje:
Przykład:
Kod koloru składa się z trzech części:
Pierwsza część przed średnikiem reprezentuje styl tekstu.
Druga i trzecia część to kolor i kolor tła:
Każdą część można pominąć, zakładając, że zaczyna się od lewej. tzn. „01” oznacza pogrubienie, „01; 31” oznacza pogrubienie i kolor czerwony. A terminal można wydrukować w kolorze, unikając instrukcji
\33[
i kończąc nam
. 33 lub 1B w systemie szesnastkowym to znak ASCII „ESCAPE” (znak specjalny w zestawie znaków ASCII). Przykład:Drukuje „Hello World” w kolorze jasnoczerwonym.
Polecenie
ls
z argumentem--color=auto
(w Ubuntuls
jest aliasem dlals --color=auto
) przechodzi przez wszystkie nazwy plików i próbuje najpierw dopasować różne typy, takie jak plik wykonywalny, potok i tak dalej. Następnie próbuje dopasować wyrażenia regularne, takie jak * .wav, i wypisuje wynikową nazwę pliku zawartą w instrukcjach zmieniających kolory dla bash.źródło
Jeśli wpiszesz
dircolors
(echo $LS_COLORS
działa również) z wiersza poleceń, otrzymasz listę kodów i kolorów dla wielu rodzajów plików w 1 wierszu.dircolors --print-database
pokazuje im 1 linię na raz. Oto krótka lista (starałem się umieścić najważniejsze). Na dole znajduje się wyjaśnienie tego, co oznaczają różne kody na końcu każdego wiersza:00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
Jeśli chcesz się tym pobawić, oto przykład, jak ustawić kolor pliku:
To ustawi
*.ogg
i.mp3
będziebold magenta
. A jeśli umieścisz go w swoim.bashrc
pliku, stanie się on trwały.źródło
pdf
pliku, należy użyć procesuexport
? Czy można po prostu dodać jedno rozszerzenie doLS_COLORS
zmiennej domyślnej ?Rozszerza to odpowiedź Karthick87 .
Z domyślną konfiguracją
ls -l
)Skrypt pokazujący kolory
Wyjście z domyślną konfiguracją:
Wyjście z moją konfiguracją (niestandardowe dircolors i niestandardowy motyw Solarized terminal):
Dostałem opisy od
dircolors -p
iman dir_colors
uzupełniałem luki własnymi badaniami.Kolory i opisy są takie same od 14.04 do 17.10.
źródło
rs
środkachRESET
,mh
środkachMULTIHARDLINK
,ca
środkachCAPABILITY
itp.?dircolors -p
.dircolors -p
nie mówi, że rs jest RESETOWANE 0 # reset do „normalnego” koloru .Żadna z odpowiedzi tutaj nie zawiera 256 opcji kolorów w najnowszych wersjach Ubuntu. Mam niedobór kolorów (niektóre kolory sprawiają mi problemy w pobliżu), więc domyślnie niebieski katalog na czarnym jest dla mnie bardzo trudny do odczytania. Poniżej moje badania, aby to zmienić.
Wpisz,
dircolors -p |less
aby zobaczyć swój obecny kod koloru.Domyślny plik .bashrc powinien być już skonfigurowany nie tylko w celu wykorzystania systemowego kodu koloru, ale także w ~ / .dircolors, więc zrzuć wyjście dircolors do .dircolor, abyś mógł zacząć od tego za pomocą tego polecenia.
dircolors -p > ~/.dircolors
Alternatywa: podnieś bardzo podobne 256 kolorowe dircolors z solaryzowanego projektu seebi .
Chwyć ten najobszerniejszy skrypt i uruchom go za pomocą polecenia,
colortest -w
aby zobaczyć wszystkie kolory jednocześnie. Wybierz kolor. Lubię pomarańczę # 208. Chcę, aby był to kolor tekstu, więc korzystając z tych informacji o rozszerzonych kodach kolorów, mogę to zastosować.Więc masz kolor, co teraz. Najpierw musimy utworzyć ciąg.
Pierwsza liczba będzie kodem atrybutu, najprawdopodobniej 00, ale jeśli chcesz, żeby migała, wybierz 05:
Następnie wybierz dołącz
;38;5;
do tego kodu atrybutu, aby wskazać kolor tekstu, aby uzyskać 00; 38; 5; a następnie dodaj swój kolor. Wybrałem 208, więc rozumiem00;38;5;208
.Jeśli chcesz także umieścić na nim tło, wybierz inny kolor (powiedzmy 56) za pomocą najbarwniejszego skryptu i dopisz
;48;5;
tło i 56, aby uzyskać całkowity ciąg00;38;5;208;48;5;56
.Więc teraz to masz, co z tym robisz?
vim ~/.dircolors
i znajdź sekcję, którą chcesz zmienić (dla mnie DIR) na ciąg, który ustaliliśmy powyżej „00; 38; 5; 208”.Nie nastąpi to natychmiast, musisz załadować konfigurację. Użyj
dircolors ~/.dircolors
do uzyskania kodu, aby ustawić zmienną LS_COLORS. Możesz po prostu wkleić to do sesji terminalu lub możesz zamknąć terminal i otworzyć go ponownie. Możesz także potokować to do pliku i uruchomić jako skrypt powłoki.Możesz wykonać tę samą procedurę z 16 kolorami. Nie potrzebujesz specjalnych; 38; 5 lub; 48; 5 rzeczy. Po prostu wrzuć liczby do sznurka i ciesz się prostotą.
Podziękowania dla Dana i seebi za ich notatki i kod na ten temat.
źródło