CLICOLOR và LS_COLORS trong bash


48

Tôi có thiết lập sau trong .bashrc để tô màu danh sách.

xuất khẩu CLICOLOR = 1
xuất LS_COLORS = 'no = 00: fi = 00: di = 00; 34: ln = 01; 36: pi = 40; 33: so = 01; 35: do = 01; 35: bd = 40; 33; 01: cd = 40; 33; 01: hoặc = 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: ';

Trang web này hiển thị mã cho màu sắc và tôi muốn thay đổi màu thư mục thành 'màu sáng'. Nhưng làm di như sau không ảnh hưởng đến nó.

di = 04; 94

Điều thú vị là ngay cả sau khi tôi nhận xét LS_COLORS, tôi có thể thấy đầu ra màu miễn là tôi có CLICOLOR = 1.

  • Tôi nên làm gì để tạo màu thư mục thành Light blue (94)?
  • Nó là gì cho CLICOLOR và LS_COLORS? Tại sao tô màu hoạt động mà không có LS_COLORS?

Câu trả lời:


53

Có một số cách triển khai màu khác nhau cho ls và bạn đã kết hợp một số trong số chúng.

  • Trên FreeBSDMac OS X , lshiển thị màu nếu CLICOLORbiến môi trường được đặt hoặc nếu -Gđược truyền trên dòng lệnh. Các màu thực tế được cấu hình thông qua LSCOLORSbiến môi trường (mặc định tích hợp được sử dụng nếu biến này không được đặt). Để hiển thị các thư mục có màu xanh nhạt, sử dụng

    export LSCOLORS=Exfxcxdxbxegedabagacad
  • Với GNU ls , ví dụ trên Linux, lshiển thị màu nếu --colorđược truyền trên dòng lệnh. Các màu thực tế được cấu hình thông qua LS_COLORSbiến môi trường, có thể được đặt bằng dircolorslệnh (mặc định tích hợp được sử dụng nếu biến này không được đặt).


5
Cảm ơn câu trả lời, bạn có thể dạy tôi ý nghĩa của Exfxcxdxbxegedabagacad không?
prosseek

@prosseek: Xem các trang người đàn ông tôi đã liên kết đến. Ví dụ, hai ký tự đầu tiên là tiền cảnh và nền cho các thư mục, ecó nghĩa là màu xanh đậm, Ecó nghĩa là màu xanh nhạt và xcó nghĩa là mặc định. fở vị trí thứ ba làm cho các liên kết tượng trưng magenta, và như vậy.
Gilles 'SO- ngừng trở thành ác quỷ'

Trên cùng một dòng, làm thế nào để tôi thực treehiện màu sắc hiển thị? Cây hiển thị màu trên máy Debian của tôi nhưng không làm như vậy trên máy Mac. Biến môi trường có mặt cho màu sắc như mô tả ở trên. Vì vậy, máy Mac của tôi hiển thị màu sắc cho bất kỳ lslệnh nào nhưng không tree. Tôi đã cài đặt cây với brew.
DanCat

2
@DanCat tôi không biết. treelslà các tiện ích không liên quan, không có lý do tại sao cài đặt cho cái này sẽ áp dụng cho cái kia. Bạn nên hỏi như một câu hỏi riêng biệt.
Gilles 'SO- ngừng trở nên xấu xa'

1
Dành cho những người lười biếng (như tôi) ở đây là trình tạo LSCOLORS geoff.greer.fm/lscolors
udondan

11

Nó là gì cho CLICOLOR và LS_COLORS? Tại sao tô màu hoạt động mà không có LS_COLORS?

CLICOLORsẽ bật hoặc tắt màu sắc. LS_COLORSkhông bắt buộc và sẽ cho phép bạn tùy chỉnh màu sắc.

Lưu ý rằng trên một số hệ điều hành (như MacOSX và FreeBSD), giá trị được đặt tên LSCOLORS, không phải LS_COLORS.

Tôi tránh cài đặt màu bằng LS_COLORS, vì sau đó tôi cần áp dụng cùng tông màu đó cho hàng trăm máy tính khác nhau và 10 Un * xes khác nhau. Thay vào đó, tôi sửa đổi màu trong chương trình Terminal, hoạt động tương tự trên hầu hết các máy chủ Unix.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.