Skip to content

Ubuntu と CentOS のプロンプト表示色を見てみる

Ubuntu と CentOS の、デフォルトでのプロンプト表示色を見てみます。

Ubuntu 16.04.1

Ubuntu のデフォルトでは、こうなっていました。

1
2
$ echo $PS1
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$

~/.bashrc では以下のように定義されていました。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
if [ -n "$force_color_prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
    # We have color support; assume it's compliant with Ecma-48
    # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
    # a case would tend to support setf rather than setaf.)
    color_prompt=yes
    else
    color_prompt=
    fi
fi

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac

CentOS 7.2.1511

CentOS のデフォルトでは、こうなっていました。特に色の指定はありません。

1
2
$ echo $PS1
[\u@\h \W]\$

CentOS のプロンプトに色を付ける

Ubuntu はデフォルトで緑色(32m)になっていました。色で直感的に OS を見分けられるよう、CentOS はシアン(36m)にしてみます。CentOS の ~/.bashrc に以下を追記します。

1
export PS1='\[\033[01;36m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

または、ホストだけでは無く、FQDN 全体をプロンプトに表示する場合は以下のように H を指定します。

1
export PS1='\[\033[01;36m\]\u@\H\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

後はログアウト/ログインし直すか、source ~/.bashrc を実行して変更を反映します。

root のプロンプトだけ、色を変更する

root と一般ユーザを区別する為に、root のプロンプトだけ色を変更したい場合は /root/.bashrc 等に以下を追記します。色は好みで変更します。

1
export PS1='\[\033[01;31m\]\u@\H\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '