端末とシェル環境に色を付けますか?

端末とシェル環境に色を付けますか?

私はほとんどの時間をUnix環境で作業し、端末エミュレータを使用します。色が出力をより便利で直感的にするので、コマンドラインで色を使用したいと思います。

端末環境に色を追加するにはどのようなオプションがありますか?どの技術を使用していますか?どの罠に直面しましたか?

残念ながら、色のサポートは、端末の種類、オペレーティングシステム、用語の設定、ユーティリティ、バグの実装などによって異なります。

多くの実験を行った後、セットアップに関するいくつかのヒントは次のとおりです。

  1. 私はそれを設定しようとしていますが、TERM=xterm-colorほとんどのホスト(すべてではありません)がそれをサポートしています。
  2. 私はさまざまなホスト、さまざまなOSバージョンなどを使用してきました。私はmacOS X、Ubuntu Linux、RHEL / CentOS / Scientific Linux、FreeBSDを含むすべてのオペレーティングシステムを使用しました。私は可能であれば単純で一般的なものを維持しようとします。
  3. 私はGNUを使ってたくさんのことをしているscreenので、これはもう一つの楽しみを追加します。
  4. 多くのオペレーティングシステムにはデフォルトでdircolorsこのようなエントリが設定されており、何百もの異なるホストでそれを変更したくありません。だから私はデフォルト値に固執しようとしています。代わりに、端末の色設定を調整しました。
  5. 特定の部分に色を使用するUnixコマンドls、、、、、)とgreplessvimバッシュプロンプト。このコマンドは標準 "ANSIエスケープシーケンス". 例えば:

    alias less='less --RAW-CONTROL-CHARS'
    export LS_OPTS='--color=auto'
    alias ls='ls ${LS_OPTS}'
    

私は.bashrcJeopardy Styleに関する私の質問を投稿して答えます。

ベストアンサー1

できることはいくつかあります。

編集+コード
多くのエディタが構文強調をサポートしています。デフォルトで有効にしますvimemacsあなたもできます以下で有効にしてください。nano

次のコマンドを使用して、端末で構文強調コードを使用することもできます。コマンドラインツールとして。

grep
grep --color=autoすべての一致を強調表示します。これを使用して、export GREP_OPTIONS='--color=auto'エイリアシングなしで永続化することもできます。使用すると--color=alwaysそうです。配管時にも色を使用、状況を混乱させる。

エルエス

ls --color=always

カラー仕様:

export LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33'

(ヒント:dircolors役に立つかもしれません)

PS1
色を使用するようにPS1(シェルプロンプト)を設定できます。たとえば、

PS1='\e[33;1m\u@\h: \e[31m\W\e[0m\$ '

PS1は次のように製造されます。

[黄色]lucas@ubuntu: [赤]〜[一般]$

これで本当に創造性を発揮できます。アイデアとして:

PS1='\e[s\e[0;0H\e[1;33m\h    \t\n\e[1;32mThis is my computer\e[u[\u@\h:  \w]\$ '

任意の情報を含むバーを端末の上部に配置します。 (最良の結果を得るには、を使用してくださいalias clear="echo -e '\e[2J\n\n'"。)

エスケープシーケンスの削除

不要なカラー出力が中断された場合は、次の行をsed使用してエスケープシーケンスを削除します。

sed "s/\[^[[0-9;]*[a-zA-Z]//gi"

より現実的な経験をしたい場合は、\e[8m端末にテキストを隠すように指示することから始まる行を削除することもできます。 (広くサポートされていません。)

sed "s/^\[^[8m.*$//gi"

また、これらの ^[ は実際の文字通り ^[ でなければなりません。 bashで^ V ^ [(例:Ctrl+ VCtrl+)を押して入力できます[

おすすめ記事