web-dev-qa-db-ja.com

プリントコンソールの色

コンソールの色を表示するbash関数を作成しました。

しかし、一部の色はそのように表示できないようです! (?)

また、奇妙な「明るい黒」に注意してください!

(注:以下のスクリーンダンプはxtermのものですが、これはコンソールモードで使用するためのものです。スクリーンダンプを取得するにはxtermを使用する必要がありました。しかし、見た目はほとんど同じです。)

clr

function clr () {
  Color_names="bla red gre yel blu mag cya whi"
  Color_arr=($Color_names)
  for m in {0..15}
  do
    tput setaf $m
    echo -n ${Color_arr[$((m % 8))]}" "
  done
  echo
  tput sgr0
  cat /sys/module/vt/parameters/default_red \
      /sys/module/vt/parameters/default_grn \
      /sys/module/vt/parameters/default_blu | tr "," "\t"
}
4
Emanuel Berg

チェックするとtput colors、答えは8であることがわかるでしょう。明るい色を表示する方法はtput bold

これは、前景と背景のすべての8x8x2の組み合わせ、通常と太字を示しています。

for cmd in sgr0 bold; do
  tput $cmd
  for i in $(seq 0 7); do
    for j in $(seq 0 7); do
      tput setaf $i; tput setab $j; echo -n " $i,$j "
    done
    tput sgr0; echo; tput $cmd
  done
done
7
angus

このブログ投稿を参照してください: http://www.enigmacurry.com/2009/01/20/256-colors-on-the-linux-terminal/

編集:tput-colorの結果が8色しかない場合は、ncursesを使用して弱点を解決できます。 ubuntuでそれをインストールします:

Sudo apt-get install ncurses-term

〜/ .bashrcまたは〜/ bash_profileに次の行を追加します。

export TERM=xterm-256color

スクリプトの代わりに、emacsコマンドを使用して色を確認できます。ターミナルでemacs -nwを使用してemacsを実行し、コマンドM-x list-colors-displayを入力します

ウィッチターミナルは関係ありません。このツールはすべてのターミナルエミュレータで動作します;-)

1
Shahinism

Linuxコンソールに使用できる端末の説明がいくつかあります。もちろん、最も一般的に使用されるものは TERM=linux で設定されます。

別の方法として、 TERM=linux-16color があります。これは、@ angusの回答に見られる太字/色の組み合わせを実行します。

linuxlinux-16colorinfocmpと比較すると、次のようになります。

comparing linux to linux-16color.
    comparing booleans.
    comparing numbers.
        colors: 8, 16.
        ncv: 18, 63.
        pairs: 64, 256.
    comparing strings.
        setab: '\E[4%p1%dm', '\E[4%p1%{8}%m%d%?%p1%{7}%>%t;5%e;25%;m'.
        setaf: '\E[3%p1%dm', '\E[3%p1%{8}%m%d%?%p1%{7}%>%t;1%e;21%;m'.

%t;5%t;1の部分は、blink属性とbold属性(ディスプレイハードウェアの機能)を使用して、tput setabtput setafに入力された値に応じて明るい背景色と前景色を取得します。

これは、linux-16colorでncursesテストプログラムを使用して作成されたスクリーンショットです。

example of linux-16color

0
Thomas Dickey