ls 顏色設定(in Bash shell)

ls 出來沒有任何顏色的時後看的很辛苦, 但是 ls --color 秀出來的時後, 看到目錄顏色是深藍色的時後, 有時後看起來會比沒有顏色更辛苦, 所以還是來修改一下顯示的顏色吧.

不過因為 BSD 和 Linux 的設定不一樣(BSD 用 LSCOLORS, Linux 用 LS_COLORS), 所以以下會分別記錄兩者的 原始狀態 和 如何修改.

先來介紹 Linux 的 ls 顏色 修改.

應該簡單的說, 就是原始狀態是如下:

declare -x LS_COLORS="no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:
do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:
*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:
*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:
*.jpg=01;35:*.jpeg=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:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:
*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.ogg=01;35:*.mp3=01;35:
*.wav=01;35:"

那要修改成什麼顏色, 就照著隨意修改看看囉~

我是修改成如下: (將目錄顏色換成淺藍色), 修改兩個地方.

# 修改此兩個值, 括號是預設值 di=01;36(01;34), ln=02;36(01;36)
declare -x LS_COLORS="no=00:fi=00:di=01;36:ln=02;36:pi=40;33:so=01;35:do=01;35:
bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:
*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:
*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:
*.jar=01;31:*.jpg=01;35:*.jpeg=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:*.mov=01;35:
*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:
*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.ogg=01;35:*.mp3=01;35:
*.wav=01;35:"

(以上為了排版而斷行, 實際請將以上連成一行)將此段加入 .bashrc 的最後一行就可以了.

註: 30 黑, 31 紅, 32 綠, 33 黃, 34 藍, 35 紫, 36 淺藍, 37 白, 01 高亮度 (同以前 BBS ANSI 色碼)


再下來是 BSD 的部份, ls 的 顏色 原始狀態 設定如下(加在 .bash_profile 最後一行即可):

export LSCOLORS=Dxfxcxdxbxegedabagacad

修改採用如下: (一樣是改目錄顏色)

export LSCOLORS=gxfxcxdxbxegedabagacad

寫成以下 Script 來設定也可以,

DIR=Dx
SYM_LINK=Gx
SOCKET=Fx
PIPE=dx
EXE=Cx
BLOCK_SP=Dx
CHAR_SP=Dx
EXE_SUID=hb
EXE_GUID=ad
DIR_STICKY=Ex
DIR_WO_STICKY=Ex
export LSCOLORS="$DIR$SYM_LINK$SOCKET$PIPE$EXE$BLOCK_SP$CHAR_SP$EXE_SUID$EXE_GUID$DIR_STICKY$DIR_WO_STICKY"

註: 顏色值如下列表:

  • a black
  • b red
  • c green
  • d brown
  • e blue
  • f magenta
  • g cyan
  • h light grey
  • A bold black, usually shows up as dark grey
  • B bold red
  • C bold green
  • D bold brown, usually shows up as yellow
  • E bold blue
  • F bold magenta
  • G bold cyan
  • H bold light grey; looks like bright white
  • x default foreground or background

參考資料: color ls in FreeBSD (in the Bash shell)


關於 Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
本篇發表於 My_Note-App-Setting。將永久鏈結加入書籤。

ls 顏色設定(in Bash shell) 有 7 則回應

  1. ok 說道:

    冒號後面不能接空白,至少我在 fc9上是這樣

  2. Tsung 說道:

    嗯嗯, 中間都不能有空白, 只是因為全部連在一起, 整行會被拖長(不會自動斷行), 所以上面都是加 wbr 的 html tag, 不知道為何會生出那些空白.. @.@a..
    感謝提醒~

  3. beckie 說道:

    哇 太感謝啦 😀
    我終於把folder顏色改掉了 不然太暗看不到哇 哈哈

  4. Tsung 說道:

    哈, 我也是為了目錄顏色, 才來研究這個. XD

  5. 說道:

    請問要去哪里改?
    就是 要去哪個資料夾 打開那個檔案 的意思

  6. Oliver 說道:

    感謝教學!

發表迴響