特定の色でコマンドを書く

特定の色でコマンドを書く

端末を使用していますが、コマンドを書くときに特定の色を使いたいです。

たとえば、コマンドラインに「history」と書いたとします。キーボードで入力したコマンドをあらかじめ定義された色で色分けしたいと思います。

要約すると、ユーザーが入力したすべてのコマンドは同じ色で表示されます。

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

だから

history

grep -hir -C 8 "hello world" .

青で表示されます。

現在、PS1には次のものがあります。

PS1='\n\[\033[01;36m\]\u@\h:'
PS1=$PS1'\n+ \[\033[38;5;214m\]\w\[\033[00m\]\n'

それから私は次のことをしました。

OPS0="$PS0" OPS1="$PS1"
t7="$(tput setaf 7)" t5="$(tput setaf 5)"
[[ -n "$PS1" ]] && PS0="\[$t7\]" PS1="\[$t7\]$PS1\[$t5\]"

01cun​​eus直前、最初に奇妙なキャラクター2人を見ました。

pete@home:~$ ls
01cuneus  Admir          Documents   logs      Public
02chaos   conjgrad.f90~  Downloads   Music     temp
03marshl  Desktop        fontconfig  Pictures  Videos

ベストアンサー1

文書を読むと、bashプロンプトに関連する変数のセクションにリンクされます。私たちはこれらに興味があります

  • PS0対話型シェルは、コマンドを読み取り、コマンドを実行する前にこのパラメーターの値を拡張して表示します。
  • PS1このパラメータの値は拡張され、デフォルトのプロンプト文字列として使用されます。

どちらの変数も PROMPTING の以降のセクションを参照します。この2つのタグはプロンプト文字列に使用できます。

  • \[端末制御シーケンスをプロンプトに含めるために使用できる非印刷文字シーケンスを開始します。
  • \]印刷されない文字の終了シーケンス

最後に、色の次のセクションを含むコマンドtputリファレンスterminfo

  • setab背景色を#1に設定し、ANSIエスケープを使用します。
  • setafANSIエスケープを使用して前景色を#1に設定します。

そして

setaf/[...]関数はsetabそれぞれ数値引数を使用します。setaf/パラメータ値0〜7は、setab次のように移植可能に定義されています。 [...]

Color       #define       Value     RGB
black     COLOR_BLACK       0     0, 0, 0
red       COLOR_RED         1     max,0,0
green     COLOR_GREEN       2     0,max,0
yellow    COLOR_YELLOW      3     max,max,0
blue      COLOR_BLUE        4     0,0,max
magenta   COLOR_MAGENTA     5     max,0,max
cyan      COLOR_CYAN        6     0,max,max
white     COLOR_WHITE       7     max,max,max

これらすべてをまとめると、コマンド入力の色が変わりますが、コマンドが実行される前に復元されるように既存PS1および変数を変更できます。PS0

OPS0="$PS0" OPS1="$PS1"                                       # Save originals
t7="$(tput setaf 7)" t6="$(tput setaf 6)"                     # White, Cyan
[[ -n "$PS1" ]] && PS0="\[$t7\]" PS1="\[$t7\]$PS1\[$t6\]"     # After and before command entry

表示された内容が気に入らない場合は、値を復元できます(または新しいシェルを起動するだけです)。

PS0="$OPS0" PS1="$OPS1"

準備ができたら、レパートリーにセリフを追加して.bashrc永久的な興味を感じてください。

おすすめ記事