web-dev-qa-db-ja.com

bashでコマンドプロンプトの色を変更するにはどうすればよいですか?

重複の可能性:
。bashrcをカスタマイズしてコマンドプロンプトを構成する方法

コマンドを実行すると、コマンド出力の先頭が見つからないことがよくあります。これを簡単に修正するには、コマンドプロンプトに色を付けたり太字にしたりして、中断したところを簡単に確認できるようにします。どうやって?

12
John Berryman

これが私がすることです。エスケープステートメントは人間にとって読みにくいため、追加のエスケープステートメントの代わりにtput(1)を使用します。

これは私の.bashrcからです

### Set the Prompt like "username@hostname:~ $"
# See: http://www.cyberciti.biz/faq/bash-Shell-change-the-color-of-my-Shell-Prompt-under-linux-or-unix/
# And: http://mywiki.wooledge.org/BashFAQ/037
# 'tput bold' will work regardless of the foreground and background colors.
# Place the tput output into variables, so they are only execd once.
bold=$(tput bold)
reset=$(tput sgr0)
export PS1="\u@\[$bold\]\h\[$reset\]:\w \$ "

ここに別の選択肢があります。これは、エスケープシーケンスよりもはるかに読みやすくなっています。

# Bash
red=$(tput setaf 1)
green=$(tput setaf 2)
blue=$(tput setaf 4)
reset=$(tput sgr0)
PS1='\[$red\]\u\[$reset\]@\[$green\]\h\[$reset\]:\[$blue\]\w\[$reset\]\$ '
16

使いやすくするために、最初に.bashrcし、それをプロンプト変数($PS1):

ステップ1:色をマッピングします。

#~/.bashrc

# Color mapping
grey='\[\033[1;30m\]'
red='\[\033[0;31m\]'
RED='\[\033[1;31m\]'
green='\[\033[0;32m\]'
GREEN='\[\033[1;32m\]'
yellow='\[\033[0;33m\]'
YELLOW='\[\033[1;33m\]'
purple='\[\033[0;35m\]'
PURPLE='\[\033[1;35m\]'
white='\[\033[0;37m\]'
WHITE='\[\033[1;37m\]'
blue='\[\033[0;34m\]'
BLUE='\[\033[1;34m\]'
cyan='\[\033[0;36m\]'
CYAN='\[\033[1;36m\]'
NC='\[\033[0m\]'

ステップ2. PS1変数を再定義します。

PS1="$yellow[$CYAN\t$yellow][$red\H$yellow][$GREEN\w$grey$yellow]$NC# "
4
jmaeder

Arch Linux wiki に、bashプロンプトを色分けする方法を説明する優れたリファレンスページがあります。

これには、色、エスケープシーケンス、および他の文字を含めるための正しい方法や、ディレクトリ、ホストなどのプロンプトに情報を印刷するための正しい方法が含まれます。

例として、次のような単純なプロンプト:

PS1='\[\e[1;32m\][\u@\h \W]\$\[\e[0m\] '

これらの要素に分解できます:

\[\e[1;32m]-緑色で印刷された開き角括弧(1; 32m)

[\u@h \W]-ユーザー名@ホスト名と現在の作業ディレクトリのベース名

\$-プロンプト(a # UIDが0の場合)

\[e[0m\]-カラーシーケンスの終わりを示すテキストリセットエスケープ。

これらのシーケンスを使用して、カラフルで有益なプロンプトを作成できます。

注意事項:シーケンスを正しくエスケープできない場合、テキストを印刷する端末の機能に大混乱をもたらす可能性があります。

1
jasonwryan

これが私の.bashrcからのものです:

case $HOSTNAME in
    plato*) PSC="\e[1;33m" ;;
    *) PSC="\e[36m" ;;
esac

PS1="[\j]\[${PSC}\]\u@\h(\l) \[\e[37m\][ \w ]\[\e[00m\]\n\[\e[1m\]\#\[\e[0m\] \$ "

好みに合わせて編集してください。このワークステーションも、メインワークステーションと他のホストで異なる色を使用しています。

0
Keith

Gentooのやり方が気に入っています。

"\[\033[01;32m\]\u@\h\[\033[01;34m\] \W \$\[\033[00m\] "

次のように~/.bashrcに追加するだけです。

echo 'export PS1="\[\033[01;32m\]\u@\h\[\033[01;34m\] \W \$\[\033[00m\] "' | tee -a ~/.bashrc

次に、ターミナル/コンソールからログアウトするか、単にsource ~/.bashrc

0
laebshade