I am using 'zsh'. In some directory, when I do 'ls --color=tty'. I see some directories have 'blue text' with 'green background', which makes them hard to read.

Can you please tell me how to configure this?

3 Answers 3


Assuming you are using GNU ls, you can specify the colors with the environment variable LS_COLORS (note that this is a GNU ls feature and not specific to zsh).

GNU Coreutils has a program called dircolors to help you convert an easy to edit configuration file into a proper (complicated) LS_COLORS variable. See man dircolors for the command, and man dir_colors for the configuration file syntax.

You can

  1. use dircolors --print-database >! dircolors.default to save the defaults (it contains some explanation text) and then modify it.
  2. Google for fancy pre-configured dircolors files (such as this https://github.com/seebi/dircolors-solarized (I've got no relation to this)).

Once done, you'll need dircolors to turn that into a proper LS_COLORS. Note that dircolors outputs in bash and csh formats, for zsh you should use the bash-formatted output.

PS: Use ls --color=auto instead of ls --color=tty.


The following works for me in zsh 5.7.1 (x86_64-apple-darwin19.0)).

These lines in my .zshrc without any additional incantations configure the colours for ls:

export CLICOLOR=1
export LSCOLORS=ExGxBxDxCxEgEdxbxgxcxd
alias ll="ls -alG"

For the configuration options you can use in LSCOLORS you can simply run man ls and find the section for LSCOLORS. CLICOLOR is explained there as well.


If you want to disable the blue color and restore the default white color, just uncomment the line "DISABLE_LS_COLORS =" true "in your .zshrc file

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .