コマンドライン入力と出力の区別/装飾(色またはインデントを使用)

コマンドライン入力と出力の区別/装飾(色またはインデントを使用)

CentOS bashで(またはUbuntuなどの他のbashに共通の方法がある場合)、私が入力するコマンドとコマンドの出力をどのように区別しますか?

私がこのような質問をしたのは、画面に出力をたくさんする命令を使うとどこから始めるのかを見つけるのが難しいからです。たとえば、コマンドを明るい色で飾り、出力を暗い色で飾ったり、出力を4つインデントしたいとします。

これは次のようになります。

[root@westerngun ~]# ps aux | grep myname                             <- brighter
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx   <- darker
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

または:

[root@westerngun ~]# ps aux | grep myname                          
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx  <- indented by 4
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

答え1

まず、どこで実行しても構いませんbashbash注目すべき唯一のものはバージョンです。たとえば、bash4には3では利用できない新機能がいくつかあります。bash

PS1つまり、あるコマンドを別のコマンドと区別するために(「プロンプト文字列1」)を設定すると、プロンプトの色をかなり簡単に指定できます。たとえば、自宅のコンピュータにログインすると、次のようになります。

ヒントの例

ターミナル履歴をスクロールするときにプロンプ​​トでターコイズテキストをオフにすると、1つのコマンドが終了し、もう1つのコマンドが開始されたことがわかります。

ちなみに私の場合はPS1次のとおりです。

\[\e[38;5;14m\]\u\[\e[38;5;8m\]@\[\e[38;5;6m\]\h\[\e[38;5;8m\]:\[\e[38;5;10m\]\w \e[31m${?##0}\n\[\e[$(((($?>0))*31))m\]\$\[\e[0m\]

これには、コピーしてコマンドに貼り付けることができる文字列として、ユーザー名、ホスト名、およびCWDが表示され、scpその後に前のコマンドの終了コード(ゼロ以外)が表示されます。

関連情報