私はcentos7.2をインストールしたばかりで、それをいくらかうまく設定しようとしています。
プロンプトでいくつかの色を設定する方法を示す answer をここで見つけました。 .bashrcにドロップすると、PuTTYを使用してSSHで接続する場合、およびKonsoleアプリを使用する場合に正常に機能することがわかりました。しかし、ターミナル(gnomeターミナル)を使用すると、色がMichaelの出力(PuTTYで表示されるもの)と一致せず、出力の各部分の前に面白い文字が表示されます(\]まで追跡しました。シーケンス。これは有効であると想定されており、他の場所でチョークしません)。
Gnomeターミナルが他のターミナルプログラムとは異なる動作をすることは知られていますか?それを適合させる方法はありますか?
Konsoleはあまり好きではありませんが、すべてのクライアントで機能する代替案や修正方法の提案を受け入れています(つまり、2つの色の定義を維持したくない、たとえば、\ e [01; 32mは次の色を印刷しますcharsはPuTTYで緑色、gnome端末で灰色です。緑色にするにはgnome端末で38mを使用する必要があります)。
いいえ、gnome-terminal
は他の色と異なる動作をすることを意図していませんが、16の基本色の正確な色合いは、すべてのターミナルエミュレーター間で多少異なります。 (以下のJdeBPのコメントに基づいて更新:一部のパレット、たとえばソラリゼーションでは、これらの色は意図的に完全に異なります。)
Gnome-terminalの[編集]-> [プロファイル設定]-> [色]ダイアログを見て、好みに合ったスキームを選択する必要があります。
エスケープシーケンスでは、\e[01;32m
01は明るいまたは太字、あるいはその両方を表し(ターミナルエミュレータ間で混乱があります)、32は緑の前景を表します。一方、38
は、ターミナルエミュレータのデフォルトの前景を意味します。これは、デフォルトで「緑地に黒」の配色がある場合は緑ですが、より一般的には白または黒です。
シェルがbash
であるとすると、PS1
と\[
の間のすべてのエスケープシーケンスを囲むには、その\]
プロンプトが必要です。これにより、bashはそれらを印刷しないことを認識します。カーソルを進めると、コマンドラインの編集が崩れることはありません。これらが実際にPS1
にペアで存在すると仮定すると、bashはそれらを消費し、端末に出力しないため、gnome-terminalがそこで厄介なことを行う方法はありません。おそらく、PS1
で適切にバランスが取れていません。