Làm thế nào để tô màu đầu ra của ls?


22

Tôi đang chạy CentOS ở chế độ văn bản Linux. Khi tôi chạy lệnh ls /usr/, đầu ra quá khó đọc (màu xanh đậm trên màu đen). Làm thế nào tôi có thể thay đổi màu văn bản?

Ảnh chụp màn hình của đầu ra ls

Câu trả lời:


19

Nếu bạn muốn thay đổi màu sắc của mình trong bảng điều khiển, nằm ngoài X , thì bạn có thể chỉ định màu trong đó .bashrc, như vậy:

if [ "$TERM" = "linux" ]; then
    echo -en "\e]P0222222" #black
    echo -en "\e]P8222222" #darkgrey
    echo -en "\e]P1803232" #darkred
    ....
    fi

Nơi bạn đang xác định màu đen như #222222Xem bài đăng này để biết chi tiết: http://phraktured.net/linux-console-colors.html

Nếu bạn đang làm việc trong X , thì bạn có thể tùy chỉnh thiết lập của mình bằng cách xác định màu sắc của bạn theo cách .Xresourcestương tự:

!black
 *color0:  #3D3D3D
 *color8:  #5E5E5E
!red
 *color1:  #8C4665
 *color9:  #BF4D80
 ...

và sau đó tìm nguồn cung cấp tệp này khi bạn khởi động X, thường là từ .xinitrc:

xrdb -merge ~/.Xresources

Arch Wiki có một trang trên .Xresource giải thích tất cả các tùy chọn: https://wiki.archlinux.org/index.php/Xresource

Một cải tiến khác mà bạn có thể thực hiện trong X hoặc không là chỉ định tất cả các kiểu tệp khác nhau mà bạn muốn tô màu và các màu tương ứng của chúng trong một .dir_colorstệp, như vậy:

.xinitrc       01;31 
.Xauthority    01;31
.Xmodmap       00;31
.Xresources    01;33
 ...

Để bắt đầu, sao chép /etc/dir_colorsvào thư mục người dùng của bạn /homevà thực hiện các thay đổi của bạn. Sau đó, nguồn này từ của bạn .bashrcvới eval $(dircolors -b ~/.dir_colors)Điều này sẽ cho phép bạn kiểm soát chi tiết màu sắc của các tệp và kiểu tệp khi bạn sử dụng ls.

Bạn có thể tìm thấy (một .dir_colorstệp ví dụ cực kỳ chi tiết và kỹ lưỡng) tại đây: https://github.com/trapd00r/LS_COLORS/blob/master/LS_COLORS

Với sự kết hợp của cả ba cách tiếp cận, bạn có thể tạo một thiết lập thống nhất hợp lý, cho dù bạn đang làm việc trong bảng điều khiển hay trong X.


tôi xin lỗi, tôi là một người mới học linux. tôi đã cài đặt nó trong văn bản linux. không có bàn điều khiển tất cả mọi thứ đang chạy trong dòng lệnh. cảm ơn bạn,
runeveryday

2
Có: đó là những gì tôi muốn nói khi tôi nói bên ngoài X - trong bảng điều khiển TTY (TTY 1-7).
jasonwryan

jasonwryan, tôi chạy lệnh vim / etc / DIR_COLORS TRỰC TIẾP là 01; 34 CÁCH THAY ĐỔI màu sắc. cảm ơn bạn,
runeveryday

2
Các thuật ngữ màu ở đây: tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html Màu xanh lá cây 00;32và màu xanh nhạt / đậm là 1;32cách duy nhất để có được teal là sử dụng phương pháp tôi đã mô tả ở trên để xác định một trong 16 màu đó như một hex tương đương với teal.
jasonwryan

xin lỗi nếu đây là câu hỏi dành cho người mới bắt đầu, nhưng câu trả lời của bạn có thay đổi cho hệ thống Unix trong OS X không?
Charlie Parker

9

Các tập tin bạn muốn là /etc/DIR_COLORS. Tôi đã có cùng một vấn đề như bạn và thay đổi các thư mục thành một màu teal. Công trình đẹp hơn nhiều.

cp /etc/DIR_COLORS /home/yourusername/.dir_colors

Chỉnh sửa /home/yourusername/.dir_colors, bạn sẽ thấy dòng này:

DIR 01;34    #directory

Thay đổi điều này thành:

DIR 01;36    #directory

Mà làm cho màu sắc thư mục teal.


Khi tôi chạy lệnh / etc / DIR_COLORS, quyền đầu ra bị từ chối. Tôi là người dùng root, tại sao? Làm thế nào để thay đổi màu sắc để teal. cảm ơn bạn
runeveryday

3
@run Đây không phải là lệnh, đây là tệp cấu hình; mở nó trong một trình soạn thảo văn bản
Michael Mrozek

TRỰC TIẾP là 01; 34 CÁCH THAY ĐỔI màu sắc. cảm ơn bạn,
runeveryday

@MaxMackie Điều này dường như không hoạt động đối với tôi (được sao chép ~/.dir_colors) và thay đổi mọi thứ thành 00. Tìm thấy rằng tôi phải mở một thiết bị đầu cuối mới. Làm thế nào điều này được thi hành / gắn liền với thiết bị đầu cuối hiện tại?
Bernhard
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.