CLICOLOR dan LS_COLORS dalam bash


48

Saya memiliki pengaturan berikut di .bashrc untuk mewarnai daftar.

ekspor CLICOLOR = 1
ekspor LS_COLORS = 'no = 00: fi = 00: di = 00; 34: ln = 01; 36: pi = 40; 33: jadi = 01; 35: do = 01; 35: bd = 40; 33; 01: cd = 40; 33; 01: atau = 40; 31; 01: ex = 01; 32: *. tar = 01; 31: *. tgz = 01; 31: *. arj = 01; 31: *. taz = 01; 31: *. Lzh = 01; 31: *. Zip = 01; 31: *. Z = 01; 31: *. Z = 01; 31: *. Gz = 01; 31: *. Bz2 = 01; 31: *. Deb = 01; 31: *. Rpm = 01; 31: *. Jar = 01; 31: *. Jpg = 01; 35: *. Jpeg = 01; 35: *. Gif = 01; 35: * .bmp = 01; 35: *. pbm = 01; 35: *. pgm = 01; 35: *. ppm = 01; 35: *. tga = 01; 35: *. xbm = 01; 35: *. xpm = 01; 35: *. tif = 01; 35: *. tiff = 01; 35: *. png = 01; 35: *. mov = 01; 35: *. mpg = 01; 35: *. mpeg = 01; 35: *. Avi = 01; 35: *. Fli = 01; 35: *. Gl = 01; 35: *. Dl = 01; 35: *. Xcf = 01; 35: *. Xwd = 01; 35: *. Ogg = 01; 35: *. Mp3 = 01; 35: *. Wav = 01; 35: ';

Situs ini menunjukkan kode untuk warna, dan saya ingin mengubah warna direktori menjadi `warna terang '. Tetapi menjadikan di sebagai berikut tidak memengaruhinya.

di = 04; 94

Yang menarik adalah bahwa bahkan setelah saya mengomentari LS_COLORS, saya dapat melihat keluaran berwarna selama saya memiliki CLICOLOR = 1.

  • Apa yang harus saya lakukan untuk membuat warna direktori menjadi Biru muda (94)?
  • Apa itu untuk CLICOLOR dan LS_COLORS? Mengapa pewarnaan bekerja tanpa LS_COLORS?

Jawaban:


53

Ada beberapa implementasi warna yang berbeda untuk ls, dan Anda telah menggabungkan beberapa diantaranya.

  • Pada FreeBSD dan Mac OS X , lsmenunjukkan warna jika CLICOLORvariabel lingkungan diatur atau jika -Gdilewatkan pada baris perintah. Warna aktual dikonfigurasikan melalui LSCOLORSvariabel lingkungan (bawaan bawaan digunakan jika variabel ini tidak disetel). Untuk menampilkan direktori dengan warna biru muda, gunakan

    export LSCOLORS=Exfxcxdxbxegedabagacad
  • Dengan GNU ls , misalnya di Linux, lsmenunjukkan warna jika --colordilewatkan pada baris perintah. Warna aktual dikonfigurasikan melalui LS_COLORSvariabel lingkungan, yang dapat diatur dengan dircolorsperintah (bawaan bawaan digunakan jika variabel ini tidak disetel).


5
Terima kasih atas jawabannya, dapatkah Anda mengajari saya apa arti Exfxcxdxbxegedabagacad?
prosseek

@prosseek: Lihat halaman manual yang saya tautkan. Sebagai contoh, dua karakter pertama adalah latar depan dan latar belakang untuk direktori, eberarti biru tua, Eberarti biru muda, dan xberarti standar. fdi posisi ketiga membuat tautan simbolis magenta, dan sebagainya.
Gilles 'SO- stop being evil'

Pada baris yang sama ini, bagaimana cara membuat treewarna acara? Tree menunjukkan warna pada mesin Debian saya tetapi tidak melakukannya pada Mac saya. Variabel lingkungan hadir untuk warna seperti yang dijelaskan di atas. Jadi Mac saya menunjukkan warna untuk lsperintah apa pun tetapi tidak tree. Saya menginstal pohon dengan minuman.
DanCat

2
@DanCat saya tidak tahu. treedan lsutilitas yang tidak terkait, tidak ada alasan mengapa pengaturan untuk satu akan berlaku untuk yang lain. Anda harus menanyakannya sebagai pertanyaan terpisah.
Gilles 'SANGAT berhenti menjadi jahat'

1
Untuk orang-orang yang malas (seperti saya) inilah generator geoff.greer.fm/lscolors LSCOLORS
udondan

11

Apa itu untuk CLICOLOR dan LS_COLORS? Mengapa pewarnaan bekerja tanpa LS_COLORS?

CLICOLORakan mengaktifkan atau menonaktifkan warna. LS_COLORStidak diperlukan, dan akan membiarkan Anda menyesuaikan warna.

Perhatikan bahwa pada beberapa sistem operasi (Seperti MacOSX dan FreeBSD), nilainya dinamai LSCOLORS, bukan LS_COLORS.

Saya menghindari pengaturan warna menggunakan LS_COLORS, karena dengan begitu saya perlu menerapkan skema warna yang sama pada seratus komputer yang berbeda dan 10 berbeda un * xes. Sebagai gantinya, saya memodifikasi warna dalam program Terminal saya, yang berfungsi sama pada sebagian besar host Unix.


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.