Apa warna yang berbeda berarti di ls?

Apa warna yang berbeda di Ubuntu's ls perintah berarti? Misalnya, ketika saya ketik ls command di salah satu folder saya, saya mendapatkan salah satu file di cahaya hijau, yang lain (yang folder) warna biru dengan hijau menyoroti.

Apa yang mereka warna rata-rata, dan ada petunjuk tentang semua warna?

Larutan
  • Biru: Direktori
  • Hijau: Eksekusi atau diakui file data
  • Langit Biru: Symbolic link file
  • Kuning dengan latar belakang hitam: Perangkat
  • Merah muda: Graphic file gambar
  • Red: Arsip file
  • Merah dengan latar belakang hitam: Broken link

Untuk Informasi anda:

  • Untuk mengubah warna off, anda harus komentar pada baris berikut dalam .bashrc.

mengaktifkan dukungan warna ls dan juga menambah berguna alias

if [ -x /usr/bin/dircolors ]; kemudian

uji -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"

alias ls='ls --color=auto'

#alias dir='dir --warna=auto'

#alias vdir='vdir --warna=auto'

alias grep='grep --color=auto'

alias fgrep='fgrep --warna=auto'

alias egrep='egrep --warna=auto'

fi

  • Juga jika anda ingin melihat anda sendiri bash arti warna,kemudian copy/paste kode berikut di terminal anda.

eval $(echo "tidak ada:default global;fi:file normal;di:direktori;ln:link simbolik;pi:nama pipa;jadi:socket;melakukan:pintu;bd:perangkat blok;cd:perangkat karakter;atau:yatim piatu symlink;mi:file yang hilang;su:set uid;sg:set gid;tw:lengket lainnya ditulisi;ow:lain-lain ditulis;st:lengket;ex:eksekusi;"|sed -e 's/:/="/g; s/\;/"\n/g') { IFS=: for i in $LS_COLORS lakukan echo -e "\e[${i#=}m$( x=${i%=}; [ "${!x" ] && echo "${!x" || echo "$x" )\e[m" dilakukan }

Output:

Catatan:

Komentar (8)

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

  • Turquoise: audio file1
  • Merah: Arsip dan file yang dikompresi2
  • Ungu: gambar dan video3

Selain itu, file yang colourised dengan atribut:


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

  2. tar, tgz, arj, taz, lzh, lzma, tlz, txz, zip, z, Z, dz, gz, lz, xz, bz2, bz, tbz, tbz2, tz, deb, rpm, jar, rar, ace, kebun binatang, cpio, 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 dircolors --print-database, tapi format yang agak tidak terbaca.

Berikut ini's penjelasan teknis dari apa yang's terjadi:

Contoh:

CHR 40;33;01

Kode warna terdiri dari tiga bagian:

  • Bagian pertama sebelum tanda titik koma merupakan gaya teks.

  • 00=tidak ada, 01=bold, 04=garis bawah, 05=blink, 07=reverse, 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.

Masing-masing bagian dapat dihilangkan, dengan asumsi mulai di sebelah kiri. yaitu "01" berarti berani, "01;31" berarti berani dan merah. Dan anda akan mendapatkan terminal anda untuk mencetak dalam warna dengan melarikan diri instruksi dengan \33[ dan berakhir dengan m. 33, atau 1B dalam heksadesimal, adalah ASCII tanda "MELARIKAN diri" (karakter khusus dalam set karakter ASCII). Contoh:

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

Cetakan "Hello World" merah terang.

Perintah ls dengan argumen --warna=auto (pada Ubuntu, ls alias untuk ls --color=auto) pergi melalui semua nama file dan mencoba pertama untuk mencocokkan berbagai jenis, seperti Eksekusi, Pipa dan sebagainya. Hal ini kemudian mencoba untuk mencocokkan ekspresi reguler seperti *.wav dan cetakan yang dihasilkan filename, tertutup dalam warna-mengubah instruksi untuk bash.

Komentar (1)

Jika anda tipe 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 satu waktu. Berikut ini adalah daftar pendek (saya mencoba untuk dimasukkan ke dalam yang paling penting). Di bagian bawah ada penjelasan tentang apa kode yang berbeda pada akhir masing-masing garis mewakili:

NORMAL 00 # default global, meskipun semuanya harus menjadi sesuatu.
FILE 00 # file normal
DIR 01;34 # direktori
LINK 01;36 # link simbolik. (Jika anda menetapkan ini untuk 'target' bukan
# nilai numerik, warna adapun file yang menunjuk ke.)
FIFO 40;33 # pipa
KAUS 01;35 # soket
PINTU 01;35 # pintu
BLK 40;33;01 # block device driver
CHR 40;33;01 # karakter driver perangkat
Yatim PIATU 40;31;01 # symlink ke file tidak ada, atau non-stat'bisa file
SETUID 37;41 # file yang setuid (u+s)
SETGID 30;43 # file yang setgid (g+s)
STICKY_OTHER_WRITABLE 30;42 # dir yang lengket dan lain-writable (+t,o+w)
OTHER_WRITABLE 34;42 # dir yang lain-writable (o+w) dan tidak lengket
STICKY 37;44 # dir dengan sticky bit set (+t) dan lain-writable
# arsip atau terkompresi (merah terang)
.tar 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
.ogg 00;36
  • Atribut kode: 00=none 01=bold 04=menggarisbawahi 05=blink 07=reverse 08=tersembunyi
  • Warna teks kode: 30=hitam 31=merah 32=hijau 33=kuning 34=biru 35=magenta 36=cyan 37=putih
  • Latar belakang warna kode: 40=hitam 41=merah 42=hijau 43=kuning 44=blue 45=magenta 46=cyan 47=putih

Jika anda ingin bermain-main dengan berikut ini adalah contoh tentang bagaimana untuk mengatur warna untuk file:

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

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

Komentar (4)

Ini memperluas pada Karthick87's jawaban.


Dengan setup default

  • Tidak berwarna (putih): file atau non-file teks (misalnya izin dalam output ls -l)
  • Bold biru: direktori
  • Bold cyan: link simbolik
  • Bold hijau: file eksekusi
  • Bold merah: arsip file
  • Bold magenta: file gambar, video, grafis, dll. atau pintu atau socket
  • Sian: audio file
  • Kuning dengan latar belakang hitam: pipa (ALIAS FIFO)
  • Kuning tebal dengan latar belakang hitam: perangkat blok atau karakter perangkat
  • Bold merah dengan latar belakang hitam: anak yatim symlink atau file yang hilang
  • Tidak berwarna dengan latar belakang merah: set-user-ID file
  • Hitam dengan latar belakang kuning: set-grup-ID file
  • Hitam dengan latar belakang merah: file dengan kemampuan
  • Putih dengan latar belakang biru: lengket direktori
  • Biru dengan latar belakang hijau: lain-direktori yang dapat ditulis
  • Hitam dengan latar belakang hijau: lengket dan lain-direktori yang dapat ditulis

Script untuk menampilkan warna

#!/bin/bash
# For LS_COLORS, print type and description in the relevant color.

IFS=:
for ls_color in $LS_COLORS; do
    color="${ls_color#*=}"
    type="${ls_color%=*}"

    # Add descriptions for named types.
    case "$type" in
    bd) type+=" (block device)" ;;
    ca) type+=" (file with capability)" ;;
    cd) type+=" (character device)" ;;
    di) type+=" (directory)" ;;
    do) type+=" (door)" ;;
    ex) type+=" (executable file)" ;;
    fi) type+=" (regular file)" ;;
    ln) type+=" (symbolic link)" ;;
    mh) type+=" (multi-hardlink)" ;;
    mi) type+=" (missing file)" ;;
    no) type+=" (normal non-filename text)" ;;
    or) type+=" (orphan symlink)" ;;
    ow) type+=" (other-writable directory)" ;;
    pi) type+=" (named pipe, AKA FIFO)" ;;
    rs) type+=" (reset to no color)" ;;
    sg) type+=" (set-group-ID)" ;;
    so) type+=" (socket)" ;;
    st) type+=" (sticky directory)" ;;
    su) type+=" (set-user-ID)" ;;
    tw) type+=" (sticky and other-writable directory)" ;;
    esac

    # Separate each color with a newline.
    if [[ $color_prev ]] && [[ $color != $color_prev ]]; then
        echo
    fi

    printf "\e[%sm%s\e[m " "$color" "$type"

    # For next loop
    color_prev="$color"
done
echo

Output dengan pengaturan default:

Output dengan setup saya (custom dircolors dan custom Solarized terminal tema):

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

Warna dan deskripsi yang sama dari 14.04 untuk 17.10.

Komentar (4)

Tidak ada jawaban di sini termasuk 256 pilihan warna di versi terbaru dari Ubuntu. I'm warna kekurangan (beberapa warna yang memberikan saya kesulitan dekat satu sama lain) jadi blue default direktori pada hitam adalah nyata sulit bagi saya untuk membaca. Berikut ini adalah penelitian saya untuk mengubah itu.

Jenis dircolors -p |kurang untuk melihat anda saat ini kode warna.

Default .bashrc harus sudah dikonfigurasi tidak hanya untuk mengambil keuntungan dari sistem kode warna, tetapi juga salah satu di ~/.dircolors sehingga dump dircolors output .dircolor sehingga anda dapat mulai dengan yang menggunakan perintah ini. dircolors -p > ~/.dircolors

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

Ambil ini colortest script dan menjalankannya dengan perintah colortest -w sehingga anda dapat melihat semua warna sekaligus. Memilih warna. Saya suka orange #208. Aku ingin hal itu menjadi warna teks dengan menggunakan info ini diperpanjang kode warna, saya bisa menerapkan itu.

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

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

Pick atribut kode: 00=none 01=bold 04=menggarisbawahi 05=blink 07=reverse 08=tersembunyi

Berikutnya pilih append ;38;5; bahwa atribut kode untuk menunjukkan warna teks untuk dapatkan 00;38;5; dan kemudian menambahkan warna anda. Aku memilih 208 jadi saya mendapatkan00;38;5;208.

Jika anda juga ingin menempatkan latar belakang pada itu, memilih warna lain (let's mengatakan 56) dengan colortest script dan menambahkan ;48;5; untuk latar belakang dan 56 untuk warna untuk mendapatkan total string00;38;5;208;48;5;56.

Jadi sekarang anda punya, apa yang anda lakukan dengan itu?

vim ~/.dircolors dan menemukan bagian yang ingin anda ubah (bagi saya yang DIR) untuk string kita ditentukan di atas "00;38;5;208".

Ini won't berlaku segera, anda'll perlu load config. Gunakan dircolors ~/.dircolors untuk mendapatkan kode untuk mengatur LS_COLORS variabel. Anda hanya bisa paste ke terminal sesi atau anda dapat menutup terminal anda dan buka kembali. Anda bisa juga pipa itu ke dalam sebuah file dan menjalankannya sebagai sebuah shell script.

Anda bisa melakukan prosedur yang sama dengan 16 warna. Anda don't perlu khusus ;38;5 ;48;5 hal. Hanya melemparkan angka ke string dan menikmati kesederhanaan.

Terima kasih untuk Dan dan seebi untuk catatan mereka dan kode ini.

Komentar (2)