私の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
PS1
Bashの変数で定義されているプロンプト自体を変更して、プロンプトの後に続くテキストの書式を制御できます。端末についてはよくわかりませんが、制御手順は次のとおりです。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\\]"
また、コマンドを実行する前に表示属性をリセットすることもできます。これは変数を使用して行うことができますPS0
。0
以前に示したのと同じパラメーター順序は、すべての属性をリセットします。
PS0='\[\e[0m\]'