Mac OS X Terminal Colors

Written by:

Mac OS X Terminal Colors
  • 0.00 / 5 5
0 votes, 0.00 avg. rating (0% score)

I’m new to Mac having just got one after working with Ubuntu Linux for some time. Among the many things I’m trying to figure out is absence of colors in my the terminal window – like the ones that are shown (on linux) when you run ‘ls -la’ or ‘git status’… I just can’t figure out how to activate them in the actual shell.

I know, this thread is old but the issue not.

Here is a solution I’ve found to enable the global
terminal colors.

Edit your .bash_profile (since OS X 10.8) — or (for 10.7 and earlier): .profile or .bashrc or /etc/profile (depending on availability) — in your home directory and add following code:

export CLICOLOR=1
export LSCOLORS=GxFxCxDxBxegedabagaced

CLICOLOR=1 simply enables coloring of your terminal.

LSCOLORS=... specifies how to color specific items.

zenith

You can use the Linux based syntax in one of your startup scripts. Just tested this on an OS X Mountain Lion box.

eg. in your ~/.bash_profile

export TERM="xterm-color" 
export PS1='[e[0;33m]u[e[0m]@[e[0;32m]h[e[0m]:[e[0;34m]w[e[0m]$ '

This gives you a nice colored prompt. To add the colored ls output, you can add alias ls="ls -G".

To test, just run a source ~/.bash_profile to update your current terminal.

Side note about the colors:
The colors are preceded by an escape sequence e and defined by a color value, composed of [style;color+m] and wrapped in an escaped [] sequence.
eg.

  • red = [e[0;31m]
  • bold red (style 1) = [e[1;3m]
  • clear coloring = [e[0m]

I always add a slightly modified color-scheme in the root’s .bash_profile to make the username red, so I always see clearly if I’m logged in as root (handy to avoid mistakes if I have many terminal windows open).

In /root/.bash_profile:

PS1='[e[0;31m]u[e[0m]@[e[0;32m]h[e[0m]:[e[0;34m]w[e[0m]$ '

For all my SSH accounts online I make sure to put the hostname in red, to distinguish if I’m in a local or remote terminal. Just edit the .bash_profile file in your home dir on the server..

Filype

MartinVonMartinsgrün and 4Levels methods confirmed work great on Mac OS X Mountain Lion.

The file I needed to update was ~/.profile.

However, I couldn’t leave this question without recommending my favorite application, iTerm 2.

iTerm 2 lets you load global color schemes from a file. Really easy to experiment and try a bunch of color schemes.

Here’s a screenshot of the iTerm 2 window and the color preferences.
iTerm2 Color Preferences Screenshot Mac

Once I added the following to my ~/.profile file iTerm 2 was able to override the colors.

export CLICOLOR=1
export LSCOLORS=GxFxCxDxBxegedabagaced
export PS1='[33[01;32m]u@h[33[00m]:[33[01;34m]w[33[00m]$ '

Here is a great repository with some nice presets:

iTerm2 Color Schemes on Github by mbadolato

Bonus: Choose “Show/hide iTerm2 with a system-wide hotkey” and bind the key with BetterTouchTool
for an instant hide/show the terminal with a mouse gesture.

If you want to have your ls colorized you have to edit your ~/.bash_profile file and add the following line (if not already written) :

source .bashrc

Then you edit or create ~/.bashrc file and write an alias to the ls command :

alias ls="ls -G"

Now you have to type source .bashrc in a terminal if already launched, or simply open a new terminal.

If you want more options in your ls juste read the manual ( man ls ). Options are not exactly the same as in a GNU/Linux system.

Check what $TERM gives: mine is xterm-color and ls -alG then does colorised output.

William Rose

If you are using tcsh, then edit your ~/.cshrc file to include the lines:

setenv CLICOLOR 1
setenv LSCOLORS dxfxcxdxbxegedabagacad

Where, like Martin says, LSCOLORS specifies the color scheme you want to use.

To generate the LSCOLORS you want to use, checkout this site

When I worked on Mac OS X in the lab I was able to get the terminal colors from using Terminal (rather than X11) and then editing the profile (from the Mac menu bar). The interface is a bit odd on the colors, but you have to set the modified theme as default.

Further settings worked by editing .bashrc.

CajunLuke

Leave a Reply