表示される色とテキストを変更するためにBashプロンプトを変更する簡単な方法はありますか?でこれが完了したと聞きましたが、.bashrc
修正する簡単で良い方法が見つかりませんでした。 Bashで色を表現する方法は?
答え1
私はこれを私で定義しました.bashrc
。
export e="\e["
function cls { echo -n "${e}H${e}J${e}0m"; }
function rcls { echo -n "${e}H${e}J${e}S${e}H${e}J${e}0m${e}u${e}J"; } # not quite yet !
# rcls only works when no funny codes have been issued in between, i.e. the buffer is clean
# below the current screen. And then there can be issues with the first line of the buffer.
function bright { echo -n "${e}1m"; }
function normal { echo -n "${e}0m"; }
function colour { echo -n "${e}$1;$2;$3m"; }
function black { echo -n "${e}30m"; }
function bg_black { echo -n "${e}40m"; }
function red { echo -n "${e}31m"; }
function bg_red { echo -n "${e}41m"; }
function green { echo -n "${e}32m"; }
function bg_green { echo -n "${e}42m"; }
function yellow { echo -n "${e}33m"; }
function bg_yellow { echo -n "${e}43m"; }
function blue { echo -n "${e}34m"; }
function bg_blue { echo -n "${e}44m"; }
function magenta { echo -n "${e}35m"; }
function bg_magenta { echo -n "${e}45m"; }
function cyan { echo -n "${e}36m"; }
function bg_cyan { echo -n "${e}46m"; }
function white { echo -n "${e}37m"; }
function bg_white { echo -n "${e}47m"; }
function c_up { echo -n "${e}$1A"; }
function c_down { echo -n "${e}$1B"; } # within
function c_right { echo -n "${e}$1C"; }
function c_left { echo -n "${e}$1D"; } # screen
function c_pos { echo -n "${e}$1;$2f"; } # [Hf]
function c_line { echo -n "${e}$1d"; }
function screentop { echo -n "${e}H"; } # [Hdf]
function linetop { echo -n "${e}G"; }
function buffertop { echo -n "${e}u"; } # depends on other control characters ?
function tab { echo -n "${e}I"; }
function backtab { echo -n "${e}Z"; }
function scrolldown { echo -n "${e}$1T"; } # within screen
function scrolldown_B { echo -n "${e}$1L"; } # scroll down below cursor
function scrollup_B { echo -n "${e}$1M"; } # scroll up below cursor
function clear { echo -n "${e}J"; } # delete to end of screen
function cleanbuffer { echo -n "${e}S"; } # copies first screen to bottom and clears
# everything else above the cursor.
#function xxx { echo -n "${e}xxx"; }
export -f bright normal colour
export -f black bg_black red bg_red green bg_green yellow bg_yellow
export -f blue bg_blue magenta bg_magenta cyan bg_cyan white bg_white
export -f c_up c_down c_right c_left c_pos c_line
export -f screentop linetop buffertop tab backtab
export -f scrolldown scrolldown_B scrollup_B clear cleanbuffer
その後、次のように使用できます。
PS1_init="\n$(bright)$(black)$(hostname):\w\n$(bg_blue)"
PS1_end="$(normal)$(bright)\n\! -> $(normal)$(clear)"
export PS1="$PS1_init"'$(date)'"$PS1_end"
これはあなたに役立ちます。
変数の代わりに関数に変更した理由は怠惰です。ただタイピングをやめたいです。もちろん、効率変数を探してみると良いでしょう。
最終的に、これは特定の端末にのみ適しています。したがって、ヘルプが必要な場合は、bashや他のシェル文書ではなく端末文書を参照してください。
答え2
BashはAnsiカラースキームを使用しています - Wikipedia記事: http://en.wikipedia.org/wiki/ANSI_escape_code#Colors
たとえば、私のプロンプトは次のようになります。 (私はプロンプトを別の行に表示するのが好きですが、誰もがそうするわけではありません。また、私の用語の背景は暗いです。
export PS1='\[\e[0;36m\]\u\[\e[0m\]@\[\e[31m\]\h \[\e[0;36m\]\t \[\e[93m\]\w\[\e[36m\] p$$-\!-\$\[\e[0m\]\n\$ '
特別なプロンプト値は、Bash のマニュアルページの「プロンプト」で説明されています。
\u the username of the current user
\h the hostname up to the first `.'
\t the current time in 24-hour HH:MM:SS format
\w the current working directory, with
$HOME abbreviated with a tilde
(uses the value of the PROMPT_DIRTRIM variable)
$$ PID of the Bash (helps distinguish my many terms.
Useful, eg, if I have to kill something.
\! the history number of this command
\n newline
\$ if the effective UID is 0, a #, otherwise a $
答え3
答え4
これらの答えのどれも、即時のカスタマイズがどのように機能するかを理解するのに役立ちませんでした。さまざまなフォーラム、スタック、ウィキなどを数時間検索して収集した内容は次のとおりです。
自分のヒントを探す
nano ~/.bashrc
手動で検索するか、次のコマンドを使用して検索してくださいbashrc
。PS1
Alt+F。これは最初のbashプロンプトであり、コマンドを入力すると表示されます。PS[2-4]
も存在しますが、ほとんど使用されません。
色の定義
線の上に次の色定義を追加しますPS1
。
# Color Variables
c1='\[\033[0;30m\]' # Non-bold color 1
C1='\[\033[1;30m\]' # Bold color 1
c2='\[\033[0;31m\]' # Non-bold color 2
C2='\[\033[1;31m\]' # Bold color 2
c3='\[\033[0;32m\]' # Non-bold color 3
C3='\[\033[1;32m\]' # Bold color 3
c4='\[\033[0;33m\]' # Non-bold color 4
C4='\[\033[1;33m\]' # Bold color 4
c5='\[\033[0;34m\]' # Non-bold color 5
C5='\[\033[1;34m\]' # Bold color 5
c6='\[\033[0;35m\]' # Non-bold color 6
C6='\[\033[1;35m\]' # Bold color 6
c7='\[\033[0;36m\]' # Non-bold color 7
C7='\[\033[1;36m\]' # Bold color 7
c8='\[\033[0;37m\]' # Non-bold color 8
C8='\[\033[1;37m\]' # Bold color 8
NC='\[\033[0m\]' # Back to default color
色の構成
これで、おそらくグラフィックス端末にいくつかのカスタマイズオプションが必要です。たとえば、私はKDEを使用しています戻る:Settings > Edit Current Profile... > Appearance > Edit...
このカスタムインターフェイスを表示します。
それでは、好きな色に変更してみてください。前景色は基本色で、色1〜8は選択できる色です。定義が0から始まるわけではありませんが、このカスタムと変数は1から始まります。
ヒントの色を使う
私のデフォルトのプロンプトには次のものがあります。
PS1="[\u@\h \W]\$ "
\u
あなたでしょうか?あなたSername、\h
それはあなたでしょう時間ホスト名は次\W
のとおりです。ワットこれは現在存在するディレクトリ(あるディレクトリ)であり、\$
プロンプト(#
userid = 0 [root]の場合)です。
$c1
変更したい色の前に$ c2 `などを追加してカスタマイズできます。たとえば、次のようになります。
PS1="$c2[$C8\u$c2@$C7\h $C6\W$c2]$C2\$$NC "
その結果は次のとおりです。
NC
注:デフォルトの色にリセットするには、最後にを使用する必要があります。それ以外の場合は、プロンプト(入力)の後のすべての項目がプロンプトの最後の色になります。