Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I have a colorful bash terminal (e.g. ls and vim show colors when configured to do so).

How can I have these colors when connecting to a remote server via ssh?

share|improve this question

2 Answers 2

up vote 1 down vote accepted

Read the dircolors.sh subsection from "Beyond Linux From Scratch" book:

This script uses the ~/.dircolors and /etc/dircolors files to control the colors of file names in a directory listing. They control colorized output of things like ls --color. The explanation of how to initialize these files is at the end of this section.

cat > /etc/profile.d/dircolors.sh << "EOF"
# Setup for /bin/ls and /bin/grep to support color, the alias is in /etc/bashrc.
if [ -f "/etc/dircolors" ] ; then
        eval $(dircolors -b /etc/dircolors)

        if [ -f "$HOME/.dircolors" ] ; then
                eval $(dircolors -b $HOME/.dircolors)
        fi
fi
alias ls='ls --color=auto'
alias grep='grep --color=auto'
EOF
share|improve this answer
8  
Can you expand your answer a little? The question has 2,800 views — would be great to add a little more context. –  slhck Jun 25 '12 at 20:18
    
Fedora 20 also comes with a colorls.sh script. –  Cristian Ciupitu May 30 at 2:32

Using a combination of http://unix.stackexchange.com/questions/9883/how-can-i-run-a-script-immediately-after-connecting-via-ssh and nik's answer you can do:

ssh host.example.com -t '. /etc/profile; . ~/.profile; /bin/bash'

This will execute your profile scripts on login, then open a bash shell. Your profile scripts are where the colors are defined.

Or, for maximum convenience, add the following to your ~/.ssh/config file:

Host *
  LocalCommand . /etc/profile; . ~/.profile; /bin/bash
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.