2006年11月16日

カラフル端末で視認性を高める - grepとシェルのプロンプト編

はてなブックマークに登録

前回に続いてカラフルネタの第2弾です。

今回はgrepとシェルのプロンプトをカラフルにしてみます。

grep



このブログに含まれる「DSAS」という文字列をgrepしてみます。

normal grep

どこに「DSAS」があるのかさっぱりわかりません (^^;

grepの結果を| less -p DSASとかに渡せばlessがハイライトして識別しやすくなるのですが、ここはgrepのカラフル機能(--color=auto)を使ってみます。

colorful grep

だいぶ識別しやすくなりました。

ハイライトの色を変更するには、色指定を環境変数GREP_COLORにセットします。指定の形式は前回紹介したlsのdircolorsと同じです。例えば、太字の黄色にしたい場合はこのようにします。

export GREP_COLOR='01;33'


あと、毎回--color=autoと指定するのは面倒なので、環境変数GREP_OPTIONSにセットしておきましょう。GREP_OPTIONSにセットしたオプションは、暗黙的に効果を発揮します。

export GREP_OPTIONS='--color=auto'


colorful grep yellow

これで、ざっと見たときの認識性がだいぶ上がりましたね。

ちなみに、grepの結果をページャに渡して、ページャの中でもハイライトしたいときは、--color=alwaysにして、lessならば-Rオプションを、lvならば-cオプションを指定すればOKです。

$ w3m -dump http://dsas.blog.klab.org/ | grep --color=always DSAS | less -R
$ w3m -dump http://dsas.blog.klab.org/ | grep --color=always DSAS | lv -c


プロンプト



お次はシェル(bash)のプロンプトをカラフルにしてみます。

プロンプトのぱっと見の視認性を高めて何が期待できるかというと、


  • 一般ユーザのつもりで実行したのに実はrootになっていて、いけないことになってしまった
  • ホストAのつもりで実行したので実はホストBで、いけないことになってしまった


という事故を未然に防ぐためです。トラブったりして焦っているときこそこういうポカミスをしがちなので、ぱっと見の視認性を高めるのは結構、効果があるんじゃないかと思います。

例えば、こんな殺風景なプロンプト
USER@HOST:~$ echo $PS1
\u@\h:\w\$

の、ホスト名の部分の色をシアンにするにはこのようにします。
USER@HOST:~$ PS1='\u@\[\e[36m\]\h\[\e[0m\]:\w\$ '
USER@HOST:~$


いきなりヤヤこしいのが出てきましたが、色を付けたい部分を
\[\e[36m\]


\[\e[0m\]

とで囲んでいるだけです。で、「36」が色の指定で、36はシアンを示します。

エスケープシーケンスにはいろいろありますので、詳しくは

を参照してください。

Bash Prompt HOWTOではエスケープを表すのに「\033」としていますが、最近のbashでは「\e」と表記することもできます。


最後にこんな感じにカラフルにしてますという例を。

一般ユーザとrootとで色を変える



coorful user

拠点データセンタごとにホスト名の色を変える



colorful host
klab_gijutsu2 at 13:08│Comments(0)TrackBack(1)tool 

トラックバックURL

この記事へのトラックバック

1. Unixコマンドの色づけ色々  [ とある技術者の日記 ]   2011年11月13日 12:14
最近、自分の中でターミナル上で色づけするが流行っています。 というよりほんのちょっとの改善を考えて、実践するのが楽しくてやっています。 ほんの少しかもしれませんが、誤認が減るので地味に良いで...

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔   
 
 
 
Blog内検索
Archives
このブログについて
DSASとは、KLab が構築し運用しているコンテンツサービス用のLinuxベースのインフラです。現在5ヶ所のデータセンタにて構築し、運用していますが、我々はDSASをより使いやすく、より安全に、そしてより省力で運用できることを目指して、日々改良に勤しんでいます。
このブログでは、そんな DSAS で使っている技術の紹介や、実験してみた結果の報告、トラブルに巻き込まれた時の経験談など、広く深く、色々な話題を織りまぜて紹介していきたいと思います。
最新コメント