Biasanya bagus untuk memiliki keluaran warna dari ls
,, grep
dll. Tetapi ketika Anda tidak menginginkannya (seperti dalam skrip tempat Anda mem-pipkan hasil ke perintah lain) apakah ada saklar yang dapat mematikannya? ls -G
menyalakannya (dengan beberapa versi yang diturunkan dari BSD ls
) jika itu bukan default, tetapi ls +G
tidak mematikannya. Apakah ada hal lain yang bisa?
50
ls
dangrep
ketika memiploskan Anda tidak perlu melakukan apa-apa karena--color=auto
sudah mematikan pewarnaan ketika outputnya berupa pipa, atau sebenarnya apa pun kecuali tty; itulah yang dimaksud 'otomatis'. Demikian pula FreeBSDls -G
atau 'CLICOLOR' dinonaktifkan 'jika output tidak diarahkan ke terminal kecuali ... CLICOLOR_FORCE ...'.Jawaban:
Output warna untuk
ls
biasanya diaktifkan melalui alias di sebagian besar distro saat ini.Anda selalu dapat menonaktifkan alias untuk sementara dengan membuatnya awalan dengan backslash.
Melakukan hal di atas akan menyebabkan hubungan pendek alias hanya untuk doa yang satu ini. Anda dapat menggunakannya kapan saja Anda ingin menonaktifkan alias apa pun.
sumber
command ls
, tapi ini sedikit lebih cepat.Dengan GNU
ls
, Anda dapat menentukanls --color=never
untuk secara eksplisit menonaktifkan output warna. (Bahkan jika Anda memilikialias ls='ls --color=auto'
, ketika Anda menjalankannyals --color=never
, itu akan meluas kels --color=auto --color=never
, dan opsi selanjutnya diutamakan.)sumber
Anda juga dapat menggunakan (seperti pada DOS):
Ini akan menampilkan hasil tanpa warna, Anda dapat menambahkan argumen yang sama
ls
, seperti-l
.sumber
atau
Ini menonaktifkan pewarnaan secara permanen.
sumber
ls
alias, dan Anda kehilangan mereka untuk seluruh sesi, alih-alih hanya satu perintah.Di banyak distribusi Linux, ini diaktifkan secara default di pengguna
.bashrc
.Edit
~/.bashrc
dan hapus garis yang terlihat seperti:Jika Anda ingin menonaktifkan fitur ini untuk semua akun baru yang dihasilkan pada mesin ini di masa mendatang, hapus baris yang sama dari:
sumber
Pada Centos7 ini sedang diatur dalam
/etc/profile.d/colorls.sh
... 3 baris terakhir dari skrip ini adalah:Jika Anda memiliki keinginan dan izin ... mengomentari baris yang tidak diinginkan harus melakukan trik.
sumber
unalias ls ll l
di dalam diri Anda.bashrc
jika Anda tidak memiliki izinUntuk Mematikan warna: unalias ls
Untuk Mengaktifkan warna: alias ls = 'ls --color = auto'
Untuk menonaktifkan sementara warna: \ ls -ltr
sumber
Mungkin ada hal lain yang terjadi.
ls
tidak boleh menggunakan warna kecuali jika dianggap terhubung dengan sesuatu yang interaktif. Seharusnya tidak mewarnai hal-hal ketika Anda menyalurkan ke program lain.Alias pada umumnya adalah ide yang buruk karena Anda tidak pernah dapat menyingkirkan opsi itu dan Anda menjadi terbiasa dengan pengaturan pribadi yang mungkin tidak dapat Anda bawa ke mesin lain yang harus Anda kerjakan. Jika Anda perlu mematikannya untuk menyalurkan ke sesuatu yang lain, gunakan sakelar di dalam pipa itu. Tapi, warna seharusnya tidak ada di pipa.
Untuk
ls
, lihat apakah Anda mendukungLS_COLORS
variabel lingkungan. The trapd00r / LS_COLORS menunjukkan kepada Anda bagaimana cara kerjanya. Dircolors memungkinkan Anda menyesuaikan warna secara teliti dan per jenis file. Jika Anda tidak menyetelLS_COLORS
tetapi pewarnaan dihidupkan,ls
akan membuat banyak panggilan sistem untuk mengetahui jenis dan atribut file sehingga dapat mengetahui apa yang harus diwarnai. Orang-orang di belakang Sherlock menemukan bahwa pengaturanLS_COLORS
dapat menghindari semua itu dan memberikan peningkatan kecepatan 40x . Baca detail berdarah mereka untuk melihat apa yang mereka temukan.Saya membuat semua jenis file menggunakan warna default:
Inilah file LS_COLORS yang saya masukkan ke dircolors:
Untuk
grep
, lihat apakah dukungan AndaGREP_COLORS
atauGREP_OPTIONS
.sumber
ls
urutan keluaran GNU untuk warna yang dipilih. Bandingkan keluaranls --color=always | od -a
denganls --color=never | od -a
dengan pengaturan iniLS_COLORS
.ls | od -a
tidak memancarkan lolos, dan itulah yang saya inginkan. Thels
seharusnya hanya memancarkan urutan yang ketika itu mengirim output ke terminal. Namun, jika Anda mengatakannya, pasti akan melakukannya. Jadi, jangan lakukan itu.menambahkan pada jawaban @ brian-d-foy, sebagian besar waktu ada warna sederhana yang Anda sukai untuk mengubah misalnya biru yang tidak terlihat dari direktori atau "OTHER_WRITABLE" yang mencolok hijau, jadi mari kita gunakan 24- kami tampilan bit :)
untuk mendefinisikan ulang hanya warna direktori dan warna lainnya yang dapat ditulis
baca lebih lanjut tentang kode ANSI
sumber
ls
, bukan tentang bagaimana mengubah warna individual.