Search code examples
macosubuntuiterm

On a remote ssh session in Ubuntu (local is a Mac OS computer), why do colors come on when I type "bash"?


On my Mac, after sshing into a ubuntu 18.04 computer, using iTerm, after typing in

bash

I see the ls colors turn on. Why is this?


Solution

  • Because bash supports colors in it's output.

    writing bash changes your terminal to bash from (I assume) sh ?

    And it loads a bunch of files:

    FILES
           /bin/bash
                  The bash executable
           /etc/profile
                  The systemwide initialization file, executed for login shells
           /etc/bash.bashrc
                  The systemwide per-interactive-shell startup file
           /etc/bash.bash.logout
                  The systemwide login shell cleanup file, executed when a login shell exits
           ~/.bash_profile
                  The personal initialization file, executed for login shells
           ~/.bashrc
                  The individual per-interactive-shell startup file
           ~/.bash_logout
                  The individual login shell cleanup file, executed when a login shell exits
           ~/.inputrc
                  Individual readline initialization file
    
    

    you can find this info if you write man bash in the terminal, and go near the very end of the manual.

    One of those files has color support. It is usually the file ~/.bashrc which has this:

    # enable color support of ls and also add handy aliases
    if [ -x /usr/bin/dircolors ]; then
      test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
      alias ls='ls --color=auto'
      #alias dir='dir --color=auto'
      #alias vdir='vdir --color=auto'
    
      alias grep='grep --color=auto'
      alias fgrep='fgrep --color=auto'
      alias egrep='egrep --color=auto'
    fi
    
    # colored GCC warnings and errors
    #export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'