Apa arti warna yang berbeda dalam ls?

Apa warna yang berbeda di Ubuntu ls perintah berarti? Misalnya, ketika saya mengetik ls perintah di salah satu folder saya, saya mendapatkan salah satu file berwarna hijau muda, yang lain (yang merupakan folder) berwarna biru dengan sorotan hijau.

Apa arti warna-warna itu, dan ada manual tentang semua warna?

  • Biru: Direktori
  • Hijau: File data yang dapat dieksekusi atau dikenali
  • Cyan (Biru langit): File tautan simbolis
  • Kuning dengan latar belakang hitam: Perangkat
  • Magenta (Pink): berkas gambar grafis
  • Merah: Arsip berkas
  • Merah dengan latar belakang hitam: Tautan rusak

Untuk informasi Anda:

  • Untuk mematikan warna, Anda harus mengomentari baris berikut di .bashrc.

    # enable color support of ls and also add handy aliases#if [ -x /usr/bin/dircolors ]; then#    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"#    alias ls='ls --color=auto'#    #alias dir='dir --color=auto'#    #alias vdir='vdir --color=auto'##    alias grep='grep --color=auto'#    alias fgrep='fgrep --color=auto'#    alias egrep='egrep --color=auto'#fi
  • Juga jika Anda ingin melihat arti warna bash Anda sendiri,maka salin/tempel kode berikut di terminal Anda.

    eval $(echo "no:global default;fi:normal file;di:directory;ln:symbolic link;pi:named pipe;so:socket;do:door;bd:block device;cd:character device;or:orphan symlink;mi:missing file;su:set uid;sg:set gid;tw:sticky other writable;ow:other writable;st:sticky;ex:executable;"|sed -e 's/:/="/g; s/\;/"\n/g')           {        IFS=:       for i in $LS_COLORS       do            echo -e "\e[${i#*=}m$( x=${i%=*}; [ "${!x}" ] && echo "${!x}" || echo "$x" )\e[m"   done       } 

Keluaran:
terminal output

Catatan:

Anda dapat mengetahui warna apa ls menggunakan dengan melihat $LS_COLORS variabel:

  • Turquoise: file audio1
  • Merah terang: Arsip dan file terkompresi2
  • Ungu: gambar dan video3

Selain itu, file diwarnai oleh atribut:

alt text


  1. aac, au, flac, mid, midi, mka, mp3, mpc, ogg, ra, wav, axa, oga, spx, xspf.

  2. tar, tgz, arj, taz, lzma, tz, tz, zip, z, Z, Dz, gz, xz, bz2, BZ, tbz, tbz2, tz, deb, rpm, jar, rar, mata, Kebun binatang, tikpio, 7z, rz.

  3. jpg, jpeg, gif, bmp, pbm, pgm, ppm, tga, xbm, xpm, tif, tiff, png, svg, svgz, mng, pcx, mov, mpg, mpeg, m2v, mkv, ogm, mp4, m4v, mp4v, vob, qt, nuv, wmv, asf, rm, rmvb, flc, avi, fli, flv, gl, dl, xcf, xwd, yuv, cgm, emf, axv, anx, ogv, ogx.


Semua informasi ini terkandung dalam output dari dircolors --print-database, tetapi formatnya agak tidak dapat dibaca.

Berikut penjelasan teknis tentang apa yang terjadi:

Contoh:

CHR 40;33;01

Kode Warna terdiri dari tiga bagian:

  • Bagian pertama sebelum titik koma mewakili gaya teks.

    • 00 = tidak ada, 01 = tebal, 04=garis bawah, 05 = berkedip, 07 = terbalik, 08 = tersembunyi.
  • Bagian kedua dan ketiga adalah warna dan warna latar belakang:

    • 30 = hitam, 31 = merah, 32 = hijau, 33=kuning, 34=Biru, 35=magenta, 36=cyan, 37 = Putih.

Setiap bagian dapat dihilangkan, dengan asumsi mulai dari kiri. yaitu " 01 " berarti Tebal," 01;31 " berarti tebal dan merah. Dan Anda akan mendapatkan terminal Anda untuk mencetak dalam warna dengan melarikan diri instruksi dengan \33[ dan mengakhirinya dengan sebuah m. 33, atau 1B dalam heksadesimal, adalah tanda ASCII "ESCAPE" (karakter khusus dalam set karakter ASCII). Contoh:

"\33[1;31mHello World\33[m"

Mencetak "Hello World" dengan warna merah cerah.

Perintah ls dengan argumen --color=auto (di Ubuntu, ls adalah alias untuk ls --color=auto) melewati semua nama file dan mencoba terlebih dahulu untuk mencocokkan berbagai jenis, seperti yang dapat dieksekusi, pipa dan sebagainya. Kemudian mencoba untuk mencocokkan ekspresi reguler seperti*.wav dan mencetak nama file yang dihasilkan, terlampir dalam instruksi perubahan warna ini untuk bash.

Ini memperluas Jawaban Karthick87.


Daftar lengkap, dengan pengaturan default

  • Tidak berwarna (putih): berkas atau Non-nama file teks (misalnya izin dalam output dari ls -l) atau berkas multi-hardlink
  • Biru tebal: direktori
  • Bold cyan: tautan simbolis
  • Hijau tebal: berkas yang dapat dieksekusi
  • Merah tebal: arsip berkas
  • Bold magenta: file gambar, video, grafik, dll. atau pintu atau soket
  • Cyan: berkas audio
  • Kuning dengan latar belakang hitam: pipa (alias FIFO)
  • Kuning tebal dengan latar belakang hitam: blok perangkat atau perangkat Karakter
  • Merah tebal dengan latar belakang hitam: orphan symlink atau berkas hilang
  • Tidak berwarna dengan latar belakang merah: berkas set-user-ID
  • Hitam dengan latar belakang kuning: set-Grup-ID berkas
  • Hitam dengan latar belakang merah: file dengan kemampuan
  • Putih dengan latar belakang biru: direktori lengket
  • Biru dengan latar belakang hijau: direktori lain yang dapat ditulis
  • Hitam dengan latar belakang hijau: sticky dan lainnya-ditulis direktori

Perhatikan bahwa merah tebal terlihat oranye, hitam terlihat abu-abu gelap, cyan terlihat biru/hijau, dan magenta tebal terlihat ungu/merah muda/lavender.

Script untuk menunjukkan warna

#!/bin/bash# For LS_COLORS, print type and description in the relevant color.declare -A descriptions=(    [bd]="block device"    [ca]="file with capability"    [cd]="character device"    [di]="directory"    [do]="door"    [ex]="executable file"    [fi]="regular file"    [ln]="symbolic link"    [mh]="multi-hardlink"    [mi]="missing file"    [no]="normal non-filename text"    [or]="orphan symlink"    [ow]="other-writable directory"    [pi]="named pipe, AKA FIFO"    [rs]="reset to no color"    [sg]="set-group-ID"    [so]="socket"    [st]="sticky directory"    [su]="set-user-ID"    [tw]="sticky and other-writable directory")IFS=:for ls_color in $LS_COLORS; do    color="${ls_color#*=}"    type="${ls_color%=*}"    # Add description for named types.    desc="${descriptions[$type]}"    # Separate each color with a newline.    if [[ $color_prev ]] && [[ $color != "$color_prev" ]]; then        echo    fi    printf "\e[%sm%s%s\e[m " "$color" "$type" "${desc:+ ($desc)}"    # For next loop    color_prev="$color"doneecho

Output dengan pengaturan default:

gnome-terminal screenshot - default

Output dengan pengaturan saya (dircolors kustom dan tema Terminal Solarized kustom):

gnome-terminal screenshot - custom

Saya mendapat deskripsi dari dircolors -p dan man dir_colors, dan mengisi kekosongan dengan penelitian saya sendiri.

Warna dan deskripsinya sama dari pukul 14.04 hingga 17.10.

Jika Anda mengetik dircolors (echo $LS_COLORS juga bekerja) dari baris perintah Anda akan mendapatkan daftar kode dan warna untuk banyak tipe file dalam 1 baris. dircolors --print-database menunjukkan mereka 1 baris pada suatu waktu. Berikut adalah daftar singkat (saya mencoba memasukkan yang paling penting). Di bagian bawah ada penjelasan tentang apa kode yang berbeda pada akhir setiap baris mewakili:

Normal 00 # global default, meskipun semuanya harus menjadi sesuatu.Berkas 00 # normal fileDIR 01; 34 # directoryLINK 01;36 # tautan simbolis. (Jika Anda mengatur ini ke 'target' alih-alih nilai numerik#, warnanya seperti untuk file yang ditunjuk.)FIFO 40;33 # pipeSOCK 01;35 # socketDOOR 01;35 # doorBLK 40;33;01 # Blok perangkat driverCHR 40;33;01 # karakter perangkat driverORPHAN 40;31;01 # symlink ke file tidak ada, atau non-stat'able fileSETUID 37;41 # file yang setuid (u+s)SETGID 30;43 # file yang setgid (g+s)sticky_other_writable 30;42 # dir yang lengket dan lainnya-dapat ditulis (+t,o+w)other_writable 34;42 # dir yang lain-dapat ditulis (o+w) dan tidak stickysticky 37;44 # dir dengan set Bit lengket (+t) dan tidak Lainnya-dapat ditulis# arsip atau dikompresi (merah terang).ter 01;31.tgz 01; 31# format gambar.jpg 01;35.jpeg 01;35.gif 01;35.bmp 01; 35# format audio.aac 00;36.flac 00;36.g 00; 36
  • Kode atribut: 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
  • Kode Warna Teks: 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
  • Kode Warna latar belakang: 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white

Jika Anda ingin bermain-main dengan ini di sini adalah contoh tentang cara mengatur warna untuk file:

export LS_COLORS=$LS_COLORS:"*.ogg=01;35":"*.mp3=01;35"  

Ini akan mengatur *.ogg dan .mp3 untuk bold magenta. Dan jika Anda memasukkannya ke dalam Anda .bashrc file itu akan menjadi permanen.

Tak satu pun dari jawaban di sini termasuk 256 Pilihan warna dalam versi terbaru dari Ubuntu. Saya kekurangan warna (beberapa warna memberi saya masalah di dekat satu sama lain) sehingga direktori biru default pada hitam sangat sulit bagi saya untuk membaca. Berikut ini adalah penelitian saya untuk mengubahnya.

Jenis dircolors -p |less untuk melihat kode warna Anda saat ini.

Default .bashrc seharusnya sudah dikonfigurasi tidak hanya untuk memanfaatkan kode warna sistem, tetapi juga satu di ~/.dircolors jadi buang output dircolors ke .dircolor sehingga anda bisa mulai dengan itu menggunakan perintah ini.dircolors -p > ~/.dircolors

Alternatif: ambil dircolors 256 warna yang sangat mirip dari seebi's solarized proyek.

Ambil ini colortest script dan menjalankannya dengan perintah colortest -w jadi Anda bisa melihat semua warna sekaligus. Pilih warna. Saya suka jeruk #208. Saya ingin itu menjadi warna teks jadi dengan menggunakan info ini pada kode warna yang diperluas, saya dapat menerapkannya.

Jadi Anda memiliki warna, sekarang apa. Pertama kita harus membuat string.

Nomor pertama akan menjadi kode atribut, kemungkinan besar 00, tetapi jika Anda ingin berkedip pergi dengan 05:

Pilih kode atribut: 00=tidak ada 01 = tebal 04 = garis bawah 05 = berkedip 07 = terbalik 08 = tersembunyi

Pilih berikutnya Tambahkan ;38;5; untuk itu kode atribut untuk menunjukkan warna teks Anda untuk mendapatkan 00; 38; 5; dan kemudian menambahkan warna Anda. Saya memilih 208 jadi saya mendapatkan 00;38;5;208.

Jika Anda juga ingin meletakkan latar belakang di atasnya, pilih warna lain (katakanlah 56) dengan skrip colortest dan append ;48;5; untuk latar belakang dan 56 untuk warna untuk mendapatkan string total 00;38;5;208;48;5;56.

Jadi sekarang Anda memilikinya, apa yang Anda lakukan dengan itu?

vim ~/.dircolors dan temukan bagian yang ingin Anda ubah (bagi saya itu DIR) ke string yang kami tentukan di atas "00;38;5;208".

Ini tidak akan segera berlaku, Anda harus memuat konfigurasi. Gunakan dircolors ~/.dircolors untuk mendapatkan kode untuk mengatur variabel LS_COLORS Anda. Anda bisa menempelkannya ke sesi terminal Anda atau Anda dapat menutup terminal Anda dan membukanya kembali. Anda juga bisa memasukkannya ke dalam file dan menjalankannya sebagai skrip shell.

Anda dapat melakukan prosedur yang sama dengan 16 warna. Anda tidak perlu khusus; 38; 5 atau; 48; 5 barang. Hanya melemparkan angka ke dalam string dan menikmati kesederhanaan.

Berkat Dan dan seebi untuk catatan dan kode mereka tentang ini.