Skip to content

RedHat / Ubuntu でシェルのプロンプト表示をカスタマイズする

以前に Linux でプロンプトをカスタマイズするというメモを書きました。 Ubuntu での設定変更例も追加すると以下のようになります。

RedHat 系の場合

以前のメモに記載した通りです。 /etc/profile.d ディレクトリ配下でプロンプトの変更を定義します。

1
2
3
4
5
6
7
cat << 'EOF' > /etc/profile.d/prompt.sh
if [ `id -u` = 0 ]; then
    PS1="[\[\033[1;31m\]\u@\h\[\033[00m\] \W]\\$ "
else
    PS1="[\[\033[1;36m\]\u@\h\[\033[00m\] \W]\\$ "
fi
EOF

Debian 系の場合 (※ Ubuntu20 で確認)

Ubuntu20 系の場合、/etc/profile 等で環境変数 PS1 を定義しても、デフォルトの状態では ~/.bashrcPS1 を上書きしてしまう為、システム全体で一括してプロンプトを変更することが出来ません。 そこで /etc/skel/.bashrc へ下記を追加しておき、新規ユーザが作成されたタイミングで自動的に ~/.bashrc へプロンプトを変更する設定を行います。

1
2
3
4
5
6
7
8
9
cat << 'EOF' >> /etc/skel/.bashrc

# Modify the prompt.
if [ `id -u` = 0 ]; then
    PS1="[\[\033[1;31m\]\u@\h\[\033[00m\] \W]\\$ "
else
    PS1="[\[\033[1;36m\]\u@\h\[\033[00m\] \W]\\$ "
fi
EOF