端末内のすべてのテキストに色を付けることを可能にするPS1
開始色シーケンス(例:)で終わります(この場合は緑色)。\[\e[0;32m\]
ただし、(myのエイリアス)などのコマンドを使用すると、ls
出力の色が少し混乱します。最初の「色」の単語は緑色で、それに続く色付けされていないテキストは緑色ではなく白色です。ls --color=auto
.bashrc
すべての場合にきれいな出力を得る方法はありますか?出力に色がある場合は、白を「基本」テキスト色として使用できますが、一貫性を維持したいと思います。
もちろん、私が最も望むのは、すべてのコマンドに自動的に適用され、呼び出し方法を変更する必要がないソリューションです。
個人的に私は全く知らない。たぶん、「即時」エスケープシーケンスの出力を取得し、いくつかの置換を実行するために何かを実行できますか?しかし、これを実装する方法がわかりません。特に「舞台裏」で行われるのでさらにそうです。
答え1
その理由は、あなたが間違っているからです。
プロンプトの最後に「オープン」カラーの順序があると言われました。これは間違っています。色巣を建てずに。 「オン」と「オフ」はありません。 「切り替え...」または「デフォルトにリセット」(実際には「0に切り替え」)です。したがって、ls --color=auto
操作が完了した後に色が切り替わると、デフォルト値にリセットされるシーケンスが作成されます。これは「以前の方法での復帰」ではありません。
「デフォルト」(パレット番号0など)を希望のテキストカラーを使用するように端末を設定します。その後、プロンプトの色を変えるには、最初に設定して最後にリセットします。
詳細については、Bash Prompt HOWTOをお読みください。第6章ANSIエスケープシーケンス:色とカーソルの移動文書。
答え2
以前に答えたように、PS1
オープニングカラーの順序で終わるのは良い考えではありません。これはカラーコマンドの出力を間違えます。端末の前景色(通常のテキスト色)を緑色に設定するには、両方のコンピュータの端末エミュレータ設定(この場合は端末guake
設定)で緑色に設定します。これは前景色を緑色に保ち、カラー出力コマンドはこの色を使用してプレーンテキストを表示します。PS1
完了を使用する必要があるため、プロンプトをリセットしてください\[\e[0m\]
。
答え3
以下は、マシンごとに異なる色を適用する方法のヒントです。
case $HOSTNAME in
host1*) PSC="\e[32m" ;;
host2*) PSC="\e[33m" ;;
host3*) PSC="\e[34m" ;;
host4*) PSC="\e[35m" ;;
*) PSC="\e[36m" ;;
esac
PS1="[\j]\[${PSC}\]\u@\h(\l) \[\e[37m\][ \w ]\[\e[00m\]\n\[\e[1m\]\#\[\e[0m\] \$ "
残りは直接味わってもいいです。お使いのコンピュータに~/.bashrcのコピーを保存してください。 NFSマウントホームを使用している場合は自動的に実行されます。