bashコマンドに特定の色を割り当てる方法

bashコマンドに特定の色を割り当てる方法

私のbashプロンプトは1行にあり、色は緑、ファイルパスは青です。コマンドを入力すると、次の行に表示されます。 Enter キーを押すと、次の行に出力が表示されます。その後、空行があります。

私はコマンドが私が選択した色(緑色または青色ではないことが望ましい)で表示または太字で表示され、その前の行と後の出力行とを区別することを本当に望んでいます。出力色は、実行可能ファイルやさまざまな種類のリンクなど、さまざまな項目を表すために使用されるため、変更したくありません。

画像の例では、「ls -la var」が異なる色を持つことを望んでいます。どんな提案でも歓迎します。

ここに画像の説明を入力してください。

編集する: don_amanの答えに基づいて、.bashrcファイルに次の2行を追加しました。

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

そして

PS0='\[\e[0m\]'

2行目がない場合、出力の一部の行もコマンドと同じ色で表示されます。

私の端末は次のようになり、これはコマンドと出力を区別するのに役立ちます。 ここに画像の説明を入力してください。

ベストアンサー1

PS1Bashの変数で定義されているプロンプト自体を変更して、プロンプトの後に続くテキストの書式を制御できます。端末についてはよくわかりませんが、制御手順は次のとおりです。console_codes(4)XTermの場合、持っている端末タイプのようです(TERM環境変数の確認)。該当するマニュアルページを参照して、プロンプトに必要なカスタマイズを追加してください。具体的には、ESC [ parameters m端末の表示属性を設定できるシーケンスです。

を変更するには、PS1ファイル内の項目を検索して~/.bashrc必要なシーケンスを追加します。たとえば、私のシステムでは、PS1最初は次の値に設定されています。

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

入力テキストを太い茶色にするには、ここに一連の印刷されていない文字を開始するシーケンスを\[\e1;33m\]追加する必要があります。PS1\[bash(1))、\]終了するには、前述の表示属性制御シーケンスを使用します。パラメータを使用して太字に1設定し、33茶色の前景をセミコロンで区切って設定します。最後に、PS1課題を.bashrc次のように変更しました。

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

また、コマンドを実行する前に表示属性をリセットすることもできます。これは変数を使用して行うことができますPS00以前に示したのと同じパラメーター順序は、すべての属性をリセットします。

PS0='\[\e[0m\]'

おすすめ記事