Bagaimana mewarnai keluaran ls?

22

Saya menjalankan CentOS dalam mode teks Linux. Ketika saya menjalankan perintah ls /usr/, hasilnya terlalu sulit untuk dibaca (biru tua di atas hitam). Bagaimana saya bisa mengubah pewarnaan teks?

Cuplikan layar dari output ls

runeveryday
sumber

Jawaban:

19

Jika Anda ingin mengubah warna di konsol, yaitu di luar X , maka Anda dapat menentukan warna di .bashrc, seperti:

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

Di mana Anda mendefinisikan hitam sebagai #222222Lihat posting ini untuk detail: http://phraktured.net/linux-console-colors.html

Jika Anda bekerja di X , maka Anda dapat menyesuaikan pengaturan Anda dengan mendefinisikan warna Anda .Xresourcesseperti Anda :

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

dan kemudian sumber file ini ketika Anda memulai X, biasanya dari .xinitrc:

xrdb -merge ~/.Xresources

Arch Wiki memiliki halaman di .Xresources yang menjelaskan semua opsi: https://wiki.archlinux.org/index.php/Xresources

Peningkatan lain yang bisa Anda buat dalam X atau tidak adalah menentukan semua tipe file berbeda yang ingin Anda warnai — dan warna masing-masing dalam .dir_colorsfile, seperti:

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

Untuk memulai, salin /etc/dir_colorske /homedirektori pengguna Anda dan buat perubahan Anda. Kemudian sumber ini dari Anda .bashrcdengan eval $(dircolors -b ~/.dir_colors)Ini akan memungkinkan Anda kontrol halus atas warna file dan tipe file saat Anda gunakan ls.

Anda dapat menemukan ( .dir_colorscontoh file yang sangat terperinci dan menyeluruh) di sini: https://github.com/trapd00r/LS_COLORS/blob/master/LS_COLORS

Dengan kombinasi ketiga pendekatan, Anda dapat membuat pengaturan yang cukup seragam, apakah Anda bekerja di konsol atau di X.

jasonwryan
sumber
saya minta maaf, saya seorang pelajar baru linux. saya menginstalnya dalam teks linux. tidak ada konsol. semua hal berjalan di command line. terima kasih,
runeveryday
2
Ya: itulah yang saya maksud ketika saya mengatakan di luar X - di konsol TTY (TTY 1-7).
jasonwryan
jasonwryan, saya menjalankan perintah vim / etc / DIR_COLORS DIR adalah 01; 34 BAGAIMANA MENGUBAH KE warna asli. terima kasih,
runeveryday
2
Istilah warna ada di sini: tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html Hijau adalah 00;32dan hijau terang / tebal adalah 1;32satu-satunya cara untuk mendapatkan warna hijau adalah dengan menggunakan metode yang saya jelaskan di atas untuk mendefinisikan salah satu dari 16 warna tersebut sebagai hex setara dengan teal.
jasonwryan
maaf jika ini adalah pertanyaan pemula, tetapi apakah jawaban Anda berubah untuk sistem Unix di OS X?
Charlie Parker
9

File yang Anda inginkan adalah /etc/DIR_COLORS. Saya memiliki masalah yang sama persis seperti Anda dan mengubah direktori menjadi warna teal. Bekerja jauh lebih baik.

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

Edit /home/yourusername/.dir_colors, Anda akan melihat baris ini:

DIR 01;34    #directory

Ubah itu menjadi ini:

DIR 01;36    #directory

Yang membuat warna direktori lebih cerah.

n0pe
sumber
ketika saya menjalankan perintah / etc / DIR_COLORS itu izin keluaran ditolak. saya pengguna root, mengapa? cara mengubah warna menjadi teal. terima kasih
runeveryday
3
@ run Ini bukan perintah, ini file konfigurasi; buka di editor teks
Michael Mrozek
DIR adalah 01; 34 BAGAIMANA MENGUBAH KE WARNA. terima kasih,
runeveryday
@ Maxmackie Sepertinya ini tidak berfungsi untuk saya (disalin ke ~/.dir_colors) dan mengubah segalanya menjadi 00. Ternyata saya harus membuka terminal baru. Bagaimana ini diberlakukan / melekat pada terminal saat ini?
Bernhard