編集する

編集する

一部のスクリーンショット(Webのどこにあるのか覚えていません)では、端末が太字で表示されることがある[username@machine /]$ことがわかりました。私はいつも長い出力をスクロールし、コマンドの後の最初の行を見つけるのが難しいので、これも得ることを期待しました。

ユーザー名などを太字で表示したり色を指定したりするにはどうすればよいですか?

答え1

PS1yourで設定されている場所を見つけて、始めと終わりに挿入します.bashrc'\[\e[1m\]'\[\e[0m\]

  • \[\]内部クラッタが画面上のゼロスペースを占めていることをシェルが認識できるようにするために必要です。これについて心配する必要はありません。
  • \e[CSI(Control Sequence Introducer)とも呼ばれます。参照されているWikipediaのページにリストされているほとんどのコードで使用されていることがわかります。\e エスケープ文字を表します。
  • ウィキペディアページのSGRテーブルを見ると、1は明るい/太字のテキストで表示され、0はリセット数であることがわかります。したがって、CSI 1m太字を有効にしてCSI 0mフォントをリセットして、残りのテキストが正常に見えるようにします。

Wikipediaには完全な内容があります。ANSIエスケープコードリスト端末エミュレータがサポートしている場合に使用できます。

編集する

tput移植性と読みやすさのために、ハードコーディングではなくエスケープコードを使用する必要があります。唯一の欠点は、tputANSIコードをサポートしていますが、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最後のコマンドの終了状態です。

PS1スクリーンショット

答え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

引用:

答え4

デフォルトのUbuntuプロンプトのように見えるようにするには、以下を追加します。

export PS1='\[\e[1;32m\]\u@\h\e[0;39m\]:\e[1;34m\]\w\e[0;39m\]$\[\e[0m\] '

あなたの~/.bashrc

これにより、よく知られている緑色user@host(太字)の色が生成され、その後に太字で表示されていない白いコロンが表示され、その後に太字で表示される作業ディレクトリが表示され、記号$、空白、最後に太字で表示されていない白い文字で表示されます。コマンドが表示されます。

Ubuntu Bashプロンプト

関連情報