2021-06-10

dir_colors - 終端機下檔案目錄顯示顏色

2021-06-09 

  • Debian 系的 Linux (Ubuntu、MintLinux、AntiX、MX Linux..) 都没 /etc/DIR_COLORS 這個檔,可以自行建立,或是建立 ~/.dircolors ( Centos 是在 ~/.dir_colors )
  • 輸出預設值可以導入到 ~/.dircolors (注意會覆蓋 ~/.dircolors)
    dircolors --print-database > ~/.dircolors
    
    dircolors -p > ~/.dircolors 
    # Configuration file for dircolors, a utility to help you set the
    # LS_COLORS environment variable used by GNU ls with the --color option.
    # Copyright (C) 1996-2018 Free Software Foundation, Inc.
    # Copying and distribution of this file, with or without modification,
    # are permitted provided the copyright notice and this notice are preserved.
    # The keywords COLOR, OPTIONS, and EIGHTBIT (honored by the
    # slackware version of dircolors) are recognized but ignored.
    # Below are TERM entries, which can be a glob patterns, to match
    # against the TERM environment variable to determine if it is colorizable.
    TERM Eterm
    TERM ansi
    TERM *color*
    TERM con[0-9]*x[0-9]*
    TERM cons25
    TERM console
    TERM cygwin
    TERM dtterm
    TERM gnome
    TERM hurd
    TERM jfbterm
    TERM konsole
    TERM kterm
    TERM linux
    TERM linux-c
    TERM mlterm
    TERM putty
    TERM rxvt*
    TERM screen*
    TERM st
    TERM terminator
    TERM tmux*
    TERM vt100
    TERM xterm*
    # Below are the color init strings for the basic file types. A color init
    # string consists of one or more of the following numeric codes:
    # Attribute codes:
    #   00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
    # Text color codes:
    #   30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
    # Background color codes:
    #   40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
    #NORMAL 00 # no color code at all
    #FILE 00 # regular file: use no color at all
    RESET 0 # reset to "normal" color
    DIR 01;34 # directory
    LINK 01;36 # symbolic link. (If you set this to 'target' instead of a
    # numerical value, the color is as for the file pointed to.)
    MULTIHARDLINK 00 # regular file with more than one link
    FIFO 40;33 # pipe
    SOCK 01;35 # socket
    DOOR 01;35 # door
    BLK 40;33;01 # block device driver
    CHR 40;33;01 # character device driver
    ORPHAN 40;31;01 # symlink to nonexistent file, or non-stat'able file ...
    MISSING 00 # ... and the files they point to
    SETUID 37;41 # file that is setuid (u+s)
    SETGID 30;43 # file that is setgid (g+s)
    CAPABILITY 30;41 # file with capability
    STICKY_OTHER_WRITABLE 30;42 # dir that is sticky and other-writable (+t,o+w)
    OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky
    STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable
    # This is for files with execute permission:
    EXEC 01;32
    # List any file extensions like '.gz' or '.tar' that you would like ls
    # to colorize below. Put the extension, a space, and the color init string.
    # (and any comments you want to add after a '#')
    # If you use DOS-style suffixes, you may want to uncomment the following:
    #.cmd 01;32 # executables (bright green)
    #.exe 01;32
    #.com 01;32
    #.btm 01;32
    #.bat 01;32
    # Or if you want to colorize scripts even if they do not have the
    # executable bit actually set.
    #.sh 01;32
    #.csh 01;32
    # archives or compressed (bright red)
    .tar 01;31
    .tgz 01;31
    .arc 01;31
    .arj 01;31
    .taz 01;31
    .lha 01;31
    .lz4 01;31
    .lzh 01;31
    .lzma 01;31
    .tlz 01;31
    .txz 01;31
    .tzo 01;31
    .t7z 01;31
    .zip 01;31
    .z 01;31
    .dz 01;31
    .gz 01;31
    .lrz 01;31
    .lz 01;31
    .lzo 01;31
    .xz 01;31
    .zst 01;31
    .tzst 01;31
    .bz2 01;31
    .bz 01;31
    .tbz 01;31
    .tbz2 01;31
    .tz 01;31
    .deb 01;31
    .rpm 01;31
    .jar 01;31
    .war 01;31
    .ear 01;31
    .sar 01;31
    .rar 01;31
    .alz 01;31
    .ace 01;31
    .zoo 01;31
    .cpio 01;31
    .7z 01;31
    .rz 01;31
    .cab 01;31
    .wim 01;31
    .swm 01;31
    .dwm 01;31
    .esd 01;31
    # image formats
    .jpg 01;35
    .jpeg 01;35
    .mjpg 01;35
    .mjpeg 01;35
    .gif 01;35
    .bmp 01;35
    .pbm 01;35
    .pgm 01;35
    .ppm 01;35
    .tga 01;35
    .xbm 01;35
    .xpm 01;35
    .tif 01;35
    .tiff 01;35
    .png 01;35
    .svg 01;35
    .svgz 01;35
    .mng 01;35
    .pcx 01;35
    .mov 01;35
    .mpg 01;35
    .mpeg 01;35
    .m2v 01;35
    .mkv 01;35
    .webm 01;35
    .ogm 01;35
    .mp4 01;35
    .m4v 01;35
    .mp4v 01;35
    .vob 01;35
    .qt 01;35
    .nuv 01;35
    .wmv 01;35
    .asf 01;35
    .rm 01;35
    .rmvb 01;35
    .flc 01;35
    .avi 01;35
    .fli 01;35
    .flv 01;35
    .gl 01;35
    .dl 01;35
    .xcf 01;35
    .xwd 01;35
    .yuv 01;35
    .cgm 01;35
    .emf 01;35
    # https://wiki.xiph.org/MIME_Types_and_File_Extensions
    .ogv 01;35
    .ogx 01;35
    # audio formats
    .aac 00;36
    .au 00;36
    .flac 00;36
    .m4a 00;36
    .mid 00;36
    .midi 00;36
    .mka 00;36
    .mp3 00;36
    .mpc 00;36
    .ogg 00;36
    .ra 00;36
    .wav 00;36
    # https://wiki.xiph.org/MIME_Types_and_File_Extensions
    .oga 00;36
    .opus 00;36
    .spx 00;36
    .xspf 00;36
  • 修改 ~/.dircolors 內的顏色設定值,(改目錄(di)為 green → 32 ,DIR 01;34 → DIR 00;32 )
  • 其中 .tar 01;31 ,( .tar:.tar 附檔名 , 01:粗體 , 31:紅色 ) ( .tar是基本文件類型,01是效果,31是顏色 )
  • 效果列表 ( Attribute codes:00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed )
    • 00 - 預設
    • 01 - 加粗
    • 04 - 下底線
    • 05 - 閃爍
    • 07 - 反顯
    • 08 - 暗(隱藏)
  • 顏色列表
    • Text color codes: 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
    • Background color codes: 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
    • 前景 - 30~37 黑、紅、綠、橙、藍、紫、青、灰
    • 背景 - 40~47 黑、紅、綠、橙、藍、紫、青、灰
    • 前景 - 90~97 深灰、淡紅、淡綠、黃色、淡藍、淡紫、青綠、白色
    • 背景 - 100~106 深灰、淡紅、淡綠、黃色、淡藍、淡紫、青綠
  • 輸出 Bourne shell 代碼以查看 LS_COLORS 設置
    dircolors -b 
    LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:
    bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:
    tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:
    *.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:
    *.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:
    *.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:
    *.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:
    *.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:
    *.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:
    *.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:
    *.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:
    *.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:
    *.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:
    *.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:
    *.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:
    *.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:
    *.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:
    *.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:
    *.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:
    *.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:
    *.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:';
    export LS_COLORS
  • 註:在 ~/.bashrc 最後,加入 export LS_COLORS=“di=32”,會把 LS_COLORS 中其他設定清掉,成為預設值,可以在終端機 ( terminator ) 測試一下
    export LS_COLORS="di=00;35" 
  • 在其他地方看到的:編碼-顏色/動作
    • 2 設定一半亮度(模擬彩色顯示器的顏色)
    • 22 設定一般密度
    • 24 關閉下底線
    • 25 關閉閃爍
    • 27 關閉反向圖象
    • 38 在預設的前景顏色上設定下底線
    • 39 在預設的前景顏色上關閉下底線
    • 49 設定預設黑色背景

沒有留言: