Odpowiedzi:
Aby zmienić kolory katalogu, otwórz ~/.bashrc
plik w edytorze
nano ~/.bashrc
i wprowadź następujący wpis na końcu pliku:
LS_COLORS=$LS_COLORS:'di=0;35:' ; export LS_COLORS
Niektóre fajne wybory kolorów (w tym przypadku 0;35
jest to fioletowy) to:
Blue = 34
Green = 32
Light Green = 1;32
Cyan = 36
Red = 31
Purple = 35
Brown = 33
Yellow = 1;33
Bold White = 1;37
Light Grey = 0;37
Black = 30
Dark Grey= 1;30
Pierwszą liczbą jest styl (1 = pogrubienie), następnie średnik, a następnie rzeczywista liczba kolorów, możliwe style (efekty) to:
0 = default colour
1 = bold
4 = underlined
5 = flashing text (disabled on some terminals)
7 = reverse field (exchange foreground and background color)
8 = concealed (invisible)
Możliwe tła:
40 = black background
41 = red background
42 = green background
43 = orange background
44 = blue background
45 = purple background
46 = cyan background
47 = grey background
100 = dark grey background
101 = light red background
102 = light green background
103 = yellow background
104 = light blue background
105 = light purple background
106 = turquoise background
107 = white background
Wszystkie możliwe kolory:
31 = red
32 = green
33 = orange
34 = blue
35 = purple
36 = cyan
37 = grey
90 = dark grey
91 = light red
92 = light green
93 = yellow
94 = light blue
95 = light purple
96 = turquoise
97 = white
Można je nawet łączyć, aby parametr taki jak:
di=1;4;31;42
w zmiennej LS_COLORS spowoduje, że katalogi pojawią się pogrubioną, podkreśloną czerwoną czcionką z zielonym tłem!
Aby przetestować wszystkie te kolory i style w swoim terminalu, możesz użyć jednego z:
for i in 00{2..8} {0{3,4,9},10}{0..7}
do echo -e "$i \e[0;${i}mSubdermatoglyphic text\e[00m \e[1;${i}mSubdermatoglyphic text\e[00m"
done
for i in 00{2..8} {0{3,4,9},10}{0..7}
do for j in 0 1
do echo -e "$j;$i \e[$j;${i}mSubdermatoglyphic text\e[00m"
done
done
Można także zmieniać inne rodzaje plików, korzystając z polecenia ls, definiując każdy rodzaj za pomocą:
bd = (BLOCK, BLK) Block device (buffered) special file
cd = (CHAR, CHR) Character device (unbuffered) special file
di = (DIR) Directory
do = (DOOR) [Door][1]
ex = (EXEC) Executable file (ie. has 'x' set in permissions)
fi = (FILE) Normal file
ln = (SYMLINK, LINK, LNK) Symbolic link. If you set this to ‘target’ instead of a numerical value, the color is as for the file pointed to.
mi = (MISSING) Non-existent file pointed to by a symbolic link (visible when you type ls -l)
no = (NORMAL, NORM) Normal (non-filename) text. Global default, although everything should be something
or = (ORPHAN) Symbolic link pointing to an orphaned non-existent file
ow = (OTHER_WRITABLE) Directory that is other-writable (o+w) and not sticky
pi = (FIFO, PIPE) Named pipe (fifo file)
sg = (SETGID) File that is setgid (g+s)
so = (SOCK) Socket file
st = (STICKY) Directory with the sticky bit set (+t) and not other-writable
su = (SETUID) File that is setuid (u+s)
tw = (STICKY_OTHER_WRITABLE) Directory that is sticky and other-writable (+t,o+w)
*.extension = Every file using this extension e.g. *.rpm = files with the ending .rpm
Bardziej kompletna lista dostępna jest na Bigsoft - Konfigurowanie LS_COLORS .
W niektórych dystrybucjach możesz także chcieć zmienić kolor tła dla ow
„( OTHER_WRITABLE
), którego domyślnie nie można odczytać”, na przykład na niepogrubiony niebieski tekst na zielonym tle.
Możesz na przykład użyć LS_COLORS="$LS_COLORS:di=1;33"
na końcu .bashrc
pliku, aby uzyskać czytelny, pogrubiony pomarańczowy tekst na czarnym tle.
Po zmianie pliku .bashrc, aby wprowadzić zmiany, musisz ponownie uruchomić powłokę lub uruchomić source ~/.bashrc
.
Uwaga: na przykład możesz połączyć więcej poleceń z dwukropkiem
LS_COLORS=$LS_COLORS:'di=1;33:ln=36' ; export LS_COLORS; ls
Źródło:
.bashrc
- niektóre kolory działają, inne wyglądają inaczej. Na przykład foldery są zielone zamiast niebieskiego, ale pliki wyglądają poprawnie. Co to mogło być?
/etc/bash.bashrc
LS_COLORS=$LS_COLORS:'tw=01;35:ow=01;35:' ; export LS_COLORS
Bardzo proste. Dodaj te trzy linie do ~ / .bashrc
$ vi ~/.bashrc
export LS_OPTIONS='--color=auto'
eval "$(dircolors -b)"
alias ls='ls $LS_OPTIONS'
Jeśli chcesz zastosować zmiany w uruchomionej sesji bash, uruchom:
source ~/.bashrc
source ~/.bashrc
każdym logowaniu. Czy istnieje sposób, aby to naprawić?
echo $SHELL
polecenia cmd? Założę się, że to NIE jest /bin/bash
. Możesz znaleźć swoją aktywną .profile
lub .login
i dodać source $HOME/.bashrc
na końcu. Powodzenia.
Jest to zbiór rozszerzeń: mapowań kolorów, odpowiednich do użycia jako zmienna środowiskowa LS COLORS.
Zgodnie z odpowiedzią Hegazi możesz faktycznie kontrolować kolor katalogu i wiele innych kolorów za pomocą polecenia dircolors. Możesz utworzyć plik konfiguracji, który jest dobrze udokumentowany.
Możesz utworzyć plik .dircolor w swoim katalogu domowym w następujący sposób:
dircolors -p > ~/.dircolors
Następnie w swoim pliku ~ / .bashrc dodaj linie
eval "`dircolors -b ~/.dircolors`"
alias ls='ls --color=auto'
Spowoduje to utworzenie zmiennej $ LS_COLORS dla bash. Flaga -c zostanie ustawiona, jeśli dla csh. Zaznacza także polecenie ls, aby wyświetlało się w kolorze.
Edytuj wartość atrybutu DIR jak wyżej w kolorze pliku ~ / .dircolor, aby zmienić kolor katalogu (lub dowolnego z innych typów plików dla innych kolorów). Możesz także zmienić kolory określonych plików lub zdefiniować własne.
Ta --color=auto
opcja nie działa w przypadku używania iTerm2 na komputerze Mac. Ta -G
opcja działa. Umieszczam następujący alias w moich, ~/.profile
a teraz katalogi są kolorowe i /
dołączone końcowe :
alias ls='ls -F -G'
Oto moje podejście do polecenia ls z często używanymi opcjami:
dodaj następujące wiersze do pliku o nazwie ~ / .alias
alias ll='ls -lhF --color=auto'
alias llt='ls -lht --color=auto'
alias lla='ls -alF --color=auto'
alias la='ls -A --color=auto'
alias l='ls -CF --color=auto'
alias ls="ls --color=auto"
dodaj następujące wiersze do ~ / .bashrc
if [ -f ~/.alias ]; then
. ~/.alias
fi
--color=auto
do ls
aliasu - pozostałe aliasy dziedziczą ustawienie
LS_COLORS=$LS_COLORS:'di=1;44:' ; export LS_COLORS
który pokazuje katalogi pogrubioną białą czcionką na niebieskim tle.