How to enable colorized output for ls command in MacOS X Terminal

I am new to macOS or Apple OS X. How do I enable colorized output for my ls command on Apple Mac OS X just like the ones that shown on my Ubuntu Linux server? How do I configure Mac OS X Terminal app to have color ls output?

You can enable colorized output by passing the -G option to ls command on Apple Mac OS X or FreeBSD operating system. You don’t have to install anything special. Just pass the -G option to the ls command.

ADVERTISEMENTS

Mac OS X color ls output option

Open the terminal application and simply type the following command:
$ ls -G
Sample outputs:

Fig,01: OS X ls command in action

Fig,01: OS X ls command in action

Configure ~/.bashrc to display colorful ls command

You need to add the following command in the ~/.bashrc file:
$ vi ~/.bashrc
Append the following alias:

alias ls='ls -G'
alias ll='ls -lG'

Save and close the file. Source the changes immediately:
$ source ~/.bashrc
Test it:
$ ls
$ ll

How do I skip colorful ls command output temporarily?

Simply run the ls command as follows:
$ \ls
$ \ls -l

The -G option is equivalent to defining CLICOLOR in the environment. The ls command supports the following environment variables:

  1. CLICOLOR – Use ANSI color sequences to distinguish file types.
  2. LSCOLORS – The value of this variable describes what color to use for which attribute when colors are enabled with CLICOLOR

Just type the following command to enable colorized output for the ls command:

export CLICOLOR=1
## better add to your ~/.bashrc ##
echo 'export CLICOLOR=1' >> ~/.bashrc

Understanding LSCOLORS values

You can define color for each attribute with the help of LSCOLORS, when colors are enabled with CLICOLOR. This string is a concatenation of pairs of the format fb, where f is the foreground color and b is the background color. The default value is:

exfxcxdxbxegedabagacad

Where,

ls AttributeForeground colorBackground color
directoryex
symbolicfx
socketcx
pipedx
executablebx
blockeg
charactered
executableab
executableag
directoryac
directoryad

The color and their code values are as follows:

CodeMeaning (Color)
aBlack
bRed
cGreen
dBrown
eBlue
fMagenta
gCyan
hLight grey
ABold black, usually shows up as dark grey
BBold red
CBold green
DBold brown, usually shows up as yellow
EBold blue
FBold magenta
GBold cyan
HBold light grey; looks like bright white
xDefault foreground or background

You can now customize it as per your need in ~/.bashrc:

export CLICOLOR=1
export LSCOLORS=GxFxCxDxBxegedabagaced
This entry is 1 of 5 in the Coloring Outputs in the CLI Apps Tutorial series. Keep reading the rest of the series:
  1. How to enable colorized output for ls command in MacOS X Terminal
  2. How To Turn On/Off Colors For ls Command In Bash On a Linux/Unix
  3. Turn off color in Linux terminal/bash session
  4. Turn On or Off Color Syntax Highlighting In vi or vim Editor
  5. BASH Shell: Change The Color of My Shell Prompt Under Linux or UNIX
🐧 Get the latest tutorials on SysAdmin, Linux/Unix, Open Source/DevOps topics:
CategoryList of Unix and Linux commands
File Managementcat
FirewallCentOS 8 OpenSUSE RHEL 8 Ubuntu 16.04 Ubuntu 18.04 Ubuntu 20.04
Network Utilitiesdig host ip nmap
OpenVPNCentOS 7 CentOS 8 Debian 10 Debian 8/9 Ubuntu 18.04 Ubuntu 20.04
Package Managerapk apt
Processes Managementbg chroot disown fg jobs killall kill pidof pstree pwdx time
Searchinggrep whereis which
User Informationgroups id lastcomm last lid/libuser-lid logname members users whoami who w
WireGuard VPNCentOS 8 Debian 10 Firewall Ubuntu 20.04

ADVERTISEMENTS
4 comments… add one
  • Fred Jan 20, 2016 @ 18:49

    You can use oh-my-zsh (https://github.com/robbyrussell/oh-my-zsh) and use themes (https://github.com/robbyrussell/oh-my-zsh/wiki/Themes) too, it’s nice setup with a lot of customizations possible !

    • Sherif Abdalla Jun 11, 2016 @ 12:06

      Thank You

  • Ryan Jan 9, 2017 @ 16:53

    Thanks for this write-up.

    One problem I’m having is that after I follow all the steps and get my text color to change, when I open up a new iterm2 window I lose all the settings. Is there any way to save these CLICOLOR settings?

  • Bharath Aug 21, 2020 @ 20:22

    Once you add & compile ~/.bash_profile file, it will be permanent for all sessions.

    Edit using: vi ~/.bash_profile
    Add the lines and Save.

    Compile using : . ~/.bash_profile

Leave a Reply

Your email address will not be published.

Use HTML <pre>...</pre>, <code>...</code> and <kbd>...</kbd> for code samples.