一部のスクリーンショット(Webのどこにあるのか覚えていません)では、端末が太字で表示されることがある[username@machine /]$
ことがわかりました。私はいつも長い出力をスクロールし、コマンドの後の最初の行を見つけるのが難しいので、これも得ることを期待しました。
ユーザー名などを太字で表示したり色を指定したりするにはどうすればよいですか?
答え1
PS1
yourで設定されている場所を見つけて、始めと終わりに挿入します.bashrc
。 '\[\e[1m\]'
\[\e[0m\]
\[
\]
内部クラッタが画面上のゼロスペースを占めていることをシェルが認識できるようにするために必要です。これについて心配する必要はありません。\e[
CSI(Control Sequence Introducer)とも呼ばれます。参照されているWikipediaのページにリストされているほとんどのコードで使用されていることがわかります。\e
エスケープ文字を表します。- ウィキペディアページのSGRテーブルを見ると、1は明るい/太字のテキストで表示され、0はリセット数であることがわかります。したがって、
CSI 1m
太字を有効にしてCSI 0m
フォントをリセットして、残りのテキストが正常に見えるようにします。
Wikipediaには完全な内容があります。ANSIエスケープコードリスト端末エミュレータがサポートしている場合に使用できます。
編集する
tput
移植性と読みやすさのために、ハードコーディングではなくエスケープコードを使用する必要があります。唯一の欠点は、tput
ANSIコードをサポートしていますが、terminfoデータベースが破損または欠落している端末ではこの方法が機能しないことです。ただし、この場合、terminfoに依存する多くのコンソールアプリケーションが正しく機能しない可能性があるため、破損したterminfoがより大きな問題です。働く
以下は私が行った操作の例です.bashrc
。
# color names for readibility
reset=$(tput sgr0)
bold=$(tput bold)
black=$(tput setaf 0)
red=$(tput setaf 1)
green=$(tput setaf 2)
yellow=$(tput setaf 3)
blue=$(tput setaf 4)
magenta=$(tput setaf 5)
cyan=$(tput setaf 6)
white=$(tput setaf 7)
user_color=$green
[ "$UID" -eq 0 ] && { user_color=$red; }
PS1="\[$reset\][\[$cyan\]\A\[$reset\]]\[$user_color\]\u@\h(\l)\
\[$white\]:\[$blue\]\W\[$reset\][\[$yellow\]\$?\[$reset\]]\[$white\]\
\\$\[$reset\] "
これが私の一般的なバージョンの外観です。0
最後のコマンドの終了状態です。
答え2
次のようにファイルPS1
にプロンプト変数を設定することでこれを行うことができます。~/.bashrc
PS1='[\u@\h \w]\$ '
色を指定するには(太字で表示可能 - ターミナルエミュレータが有効かどうかによって異なります)、エスケープされたカラーコードを追加する必要があります。
PS1='\[\e[1;91m\][\u@\h \w]\$\[\e[0m\] '
1;91m
ここと部分の間にエスケープされていないすべての項目は0m
色付きです(太い赤)1;91
。異なる色を使用するには、プロンプトの異なる部分にこれらのエスケープコードを配置します。しかし、リセットカラーを使用することを忘れないでください。0m
それ以外の場合は、端子出力も色付けされます。現在のシェルを更新するには、後でこのファイルをインポートする必要があります。source ~/.bashrc
答え3
これはcygwin bashシェルから受け取るデフォルトのプロンプトです:
PS1='\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n\$ '
\[\e]0;\w\a\] = Set the Window title to your current working directory
\n = new line
\[\e[32m\] = Set text color to green
\u@\h = display username@hostname
\[\e[33m\] = Set text color to yellow
\w = display working directory
\[\e[0m\] = Reset text color to default
\n = new line
\$ = display $ prompt
引用:
man bash
この部分を参考にして確認してくださいPROMPTING
。- バラよりANSIエスケープコード - Wikipedia。