Pertanyaan Bagaimana cara mengubah warna untuk direktori dengan ls di konsol?


Di konsol saya warna untuk direktori adalah biru, sehingga sulit untuk dibaca pada latar belakang gelap.

Bagaimana saya bisa mengubah definisi warna untuk ls?


126
2018-05-15 07:27


asal




Jawaban:


Untuk mengubah warna direktori Anda, buka warna Anda ~/.bashrc file dengan editor Anda

nano ~/.bashrc

dan buat entri berikut di akhir file:

LS_COLORS=$LS_COLORS:'di=0;35:' ; export LS_COLORS

Beberapa pilihan warna yang bagus (dalam hal ini 0;35 itu ungu) adalah:

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

Angka pertama adalah gaya (1 = tebal), diikuti dengan titik koma, dan kemudian jumlah warna yang sebenarnya, gaya yang mungkin (efek) adalah:

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)

Latar belakang yang mungkin:

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

Semua warna yang memungkinkan:

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

Ini bahkan dapat digabungkan, sehingga parameter seperti:

di=1;4;31;42

dalam variabel LS_COLORS Anda akan membuat direktori ditampilkan dalam teks merah bergaris tebal dengan latar belakang hijau!

Untuk menguji semua warna dan gaya ini di terminal Anda, Anda dapat menggunakan salah satu dari:

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

Anda juga dapat mengubah jenis file lainnya saat menggunakan perintah ls dengan mendefinisikan masing-masing jenis dengan:

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

Daftar yang lebih lengkap tersedia di Bigsoft - Mengkonfigurasi LS_COLORS.

Pada beberapa distribusi, Anda mungkin juga ingin mengubah warna latar belakang ow "(OTHER_WRITABLE) yang default-nya tidak dapat dibaca "misalnya untuk teks biru non-tebal pada latar belakang hijau.

Anda bisa menggunakan misalnya LS_COLORS="$LS_COLORS:di=1;33" di akhir Anda .bashrc file, untuk mendapatkan teks oranye tebal mudah dibaca pada latar belakang hitam.

Setelah Anda mengubah file .bashrc Anda, untuk menempatkan perubahan yang berlaku Anda harus me-restart shell atau menjalankan source ~/.bashrc.

Catatan: Anda dapat menggabungkan lebih banyak perintah dengan usus besar, sebagai contoh

LS_COLORS=$LS_COLORS:'di=1;33:ln=36' ; export LS_COLORS; ls

Sumber:


192
2018-05-15 07:35



Ini bekerja dengan baik, terima kasih. Saya pribadi merasa lebih baik untuk mengatur LS_COLORS=$LS_COLORS:'di=1;44:' ; export LS_COLORS yang menunjukkan direktori berwarna putih tebal dengan latar belakang biru. - isapir
Sepertinya ini tidak berhasil untukku. Sepertinya ada file konfigurasi lain di suatu tempat yang menimpa .bashrc - beberapa warna bekerja, yang lain terlihat berbeda. Folder berwarna hijau misalnya biru, tetapi file terlihat dengan benar. Apa itu? - Nearoo
periksa apakah Anda menggunakan bash atau sh, dan periksa juga file .profile Anda di direktori home Anda. dan global /etc/bash.bashrc - rubo77
Anda mungkin ingin memodifikasi dirs lain yang dapat ditulis dan ditulis dengan lengket lainnya. Coba sesuatu yang lebih suka LS_COLORS=$LS_COLORS:'tw=01;35:ow=01;35:' ; export LS_COLORS - Charles L.
yang bekerja untuk ls, tapi bagaimana cara mengubah warna dir saya di, sebelum # di cmd prompt? - Gaia


Sangat sederhana. Tambahkan tiga baris ini ke ~ / .bashrc

$ vi ~/.bashrc
export LS_OPTIONS='--color=auto'
eval "$(dircolors -b)"
alias ls='ls $LS_OPTIONS'

Jika Anda ingin menerapkan perubahan dalam sesi bash yang sedang berjalan, jalankan:

source ~/.bashrc

26
2017-08-11 13:49



Inilah satu-satunya hal yang berhasil bagi saya. - solalito


LS_COLORS

Ini adalah kumpulan ekstensi: pemetaan warna, cocok untuk digunakan sebagai variabel lingkungan LS COLORS Anda.


3
2018-05-19 22:35



menarik tetapi saya tidak bisa membuat ini bekerja di ksh. - Herman Toothrot


Lebih jauh lagi untuk jawaban Hegazi, Anda sebenarnya dapat mengontrol warna direktori, dan banyak warna lain menggunakan perintah dircolors. Anda dapat membuat file konfigurasi yang didokumentasikan dengan baik.

Anda dapat membuat file .dircolor di direktori home Anda sebagai berikut:

dircolors -p > ~/.dircolors

Kemudian di file ~ / .bashrc Anda tambahkan baris

eval "`dircolors -b ~/.dircolors`"
alias ls='ls --color=auto'

Ini akan membuat variabel $ LS_COLORS untuk bash. Bendera -c akan diatur jika untuk csh. Ini juga menandai perintah ls untuk menampilkan warna.

Edit nilai atribut DIR seperti di atas dalam warna file ~ / .dircolor untuk mengubah warna direktori (atau salah satu dari jenis file lain yang disertakan untuk warna lain). Anda juga dapat mengubah warna file tertentu, atau menentukan sendiri.


2
2018-03-07 20:25





Adalah pendekatan saya untuk perintah ls dengan opsi yang umum digunakan:

tambahkan baris berikut ke dalam file bernama ~ / .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"

tambahkan baris berikut ke ~ / .bashrc

if [ -f ~/.alias ]; then
    . ~/.alias
fi

0
2017-08-12 05:33



Anda hanya perlu menambahkan --color=auto ke ls alias - alias lainnya dengan mewarisi pengaturan - Stuart Cardall


Itu --color=auto pilihan tidak bekerja untuk saya menggunakan iTerm2 di Mac saya. Itu -Gpilihan berfungsi sekalipun. Saya menaruh alias berikut di saya ~/.profile dan sekarang direktori berwarna dan memiliki trailing / ditambahkan:

alias ls='ls -F -G'

0
2017-11-06 16:00