😊

lsで表示される色を変更

2023/08/09に公開

lsの色設定

LSCOLORSを設定します
デフォルト値(LSCOLORS未定義)との違いは、先頭一文字目です

.zshrc
#lsの色 (default:exfxcxdxbxegedabagacad)
export LSCOLORS=gxfxcxdxbxegedabagacad
alias ll='ls -lGF'
alias la='ls -laGF'

デフォルト値のときはこんな色で、背景が黒いと見えにくいです

設定値の意味

文字色と背景色が1セットで属性ごとに色を指定するようになっているようです

  • ディレクトリの色(1桁目が文字色、2桁目が背景色)
  • シンボリックリンクの色(3桁目が文字色、4桁目が背景色)
  • などなど ...

今回は1桁目だけを変更したので、ディレクトリの文字色がe(青)からg(シアン)になりました

設定値の全部はmanコマンドで見ると書いてありました(抜粋)
man ls
The value of this variable describes what color to use for which
attribute when colors are enabled with CLICOLOR or COLORTERM.  This
string is a concatenation of pairs of the format fb, where f is the
foreground color and b is the background color.

The color designators are as follows:

      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

Note that the above are standard ANSI colors.  The actual display may
differ depending on the color capabilities of the terminal in use.

The order of the attributes are as follows:

      1.   directory
      2.   symbolic link
      3.   socket
      4.   pipe
      5.   executable
      6.   block special
      7.   character special
      8.   executable with setuid bit set
      9.   executable with setgid bit set
      10.  directory writable to others, with sticky bit
      11.  directory writable to others, without sticky bit

The default is "exfxcxdxbxegedabagacad", i.e., blue foreground and
default background for regular directories, black foreground and red
background for setuid executables, etc.

Discussion