GNU/Linux >> Linux の 問題 >  >> Linux

ターミナルとシェル環境の色付け?

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

端末環境に色を追加するためにどのようなオプションがありますか?どんなトリックを使いますか?どのような落とし穴に遭遇しましたか?

残念ながら、色のサポートは、端末の種類、OS、TERM設定、ユーティリティ、バグのある実装などによって異なります。

多くの実験を行った後の、私のセットアップからのヒントを次に示します。

  1. TERM=xterm-colorを設定する傾向があります 、これはほとんどのホストでサポートされています(すべてではありません)。
  2. 私はさまざまなホスト、さまざまなOSバージョンなどで作業しています。macOSX、Ubuntu Linux、RHEL / CentOS / Scientific Linux、FreeBSDのすべてを使用しています。可能であれば、物事をシンプルかつ一般的に保つようにしています。
  3. 私はGNUscreenを使用してたくさんの仕事をしています 、これにより、もう1つの楽しみが追加されます。
  4. 多くのOSはdircolorsのようなものを設定します デフォルトでは、100の異なるホストでこれを変更したくありません。だから私はデフォルトに固執しようとします。代わりに、端末の色の構成を微調整します。
  5. 一部のUnixコマンドに色を使用する(lsgreplessvim )およびBashプロンプト。これらのコマンドは、標準の「ANSIエスケープシーケンス」を使用しているようです。例:

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

.bashrcを投稿します ジェパディスタイルの質問に答えてください。

承認された回答:

できることがいくつかあります:

編集者+コード
多くのエディターは、構文強調表示をサポートしています。 vim およびemacs デフォルトでオンにします。 nanoで有効にすることもできます 。

Pygmentsをコマンドラインツールとして使用して、ターミナルでハイライトコードを構文化することもできます。

grep
grep --color=auto すべての一致を強調表示します。 export GREP_OPTIONS='--color=auto'を使用することもできます エイリアスなしで永続化するため。 --color=alwaysを使用する場合 、配管の場合でも色を使用するため、混乱します。

ls

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;[email protected]: e[31mWe[0m$ '

次のようなPS1を生成します:

[黄色][メール保護]:[赤]〜[通常] $

あなたはこれで本当に創造的になることができます。アイデアとして:

PS1='e[se[0;0He[1;33mh    tne[1;32mThis is my computere[u[[email protected]:  w]$ '

ランダムな情報を含むバーを端末の上部に配置します。 (最良の結果を得るには、alias clear="echo -e 'e[2Jnn'"も使用してください。 。)

エスケープシーケンスを取り除く

関連:非公開の画面解像度?

望まないときに色を出力するために何かがスタックしている場合は、このsedを使用します エスケープシーケンスを削除する行:

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

より本格的なエクスペリエンスが必要な場合は、e[8mで始まる行を削除することもできます 、テキストを非表示にするように端末に指示します。 (広くサポートされていません。)

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

また、これらの^[は実際の文字通りの^[である必要があることに注意してください。それらを入力するには、bashで^ V ^ [を押します。つまり、 Ctrlです。 + V Ctrl + [


Linux
  1. Linux端末の色を変更する方法

  2. Linuxターミナルで冒険に出かけましょう

  3. Linuxターミナルとシェルをクリスマス化する方法

  1. 終端速度:シェル内を高速で移動

  2. Linuxで環境変数とシェル変数を設定/作成する方法

  3. bash スクリプトのコマンドとターミナルのコマンドの違い

  1. スクリプトとscriptreplayを使用して端末を記録します

  2. シェル変数と環境変数の使用法の違いは?

  3. ターミナルタブを保存して復元しますか?