0

stdout に出力するコンソールがあります。

コマンド プロンプトにアクセスして stdout への出力を無音にするにはどうすればよいですか?

ありがとう 。

4

2 に答える 2

0

いくつかの選択肢があります:

  • シェルのリダイレクトとプロセス制御演算子を使用して、コマンドの標準出力と標準エラーの両方をファイルに送信し、バックグラウンドでコマンドを起動します。

    たとえば、bash次のようになります。

    make all 1>make.log 2>&1 &
    

    ストリームごとに別のファイルを使用することもできます。

    make all 1>make.out 2>make.err &
    

    コマンドはバックグラウンドで起動され、終了するとシェルから通知されます。それまでの間、テキスト ビューアーを使用するかtail、出力ファイルだけを使用して、何が起こっているかを確認できます。

    エラーメッセージがめったになく、すぐに表示したい場合は、標準出力をリダイレクトすることしかできません:

    make all 1>make.log &
    

    コンソール メッセージをまったく気にしない場合は、次の宛先に送信して/dev/nullください。

    make all 1>/dev/null &
    
  • 新しいコンソールに関する懸念がログイン手順である場合は、GNU screenまたはなどのツールを使用しtmuxて、現在のセッション内に追加のコンソール ウィンドウを作成できます。

  • プロセスが既に開始されているコンソールにアクセスしたい場合は、まず適切なキーボード ショートカットでプロセスを停止してから、バックグラウンドで続行する必要があります。たとえば、Linux/bashでは次のCtrl+Zショートカットを使用します。

    $ make all
    1/10
    2/10
    ^Z
    [1]+  Stopped                 make all
    $ bg
    [1]+ make all &
    3/10
    $ 4/10
    5/10
    6/10
    7/10
    8/10
    9/10
    10/10
    
    [1]+  Done                    make all
    $
    

    残念ながら、既に実行中のプロセスの出力をリダイレクト/クワイエットする簡単な方法はありません。メッセージは依然としてコンソールにあふれています。

    もちろん、コンソールへの短期アクセスのみが必要な場合 (出力ファイルを確認する場合など) は、終了するまでプロセスを再起動できません。

    $ make all
    1/10
    2/10
    ^Z
    [1]+  Stopped                 make all
    $ ls
    1  2  Makefile
    $ fg
    make all
    3/10
    4/10
    5/10
    6/10
    7/10
    8/10
    9/10
    10/10
    $ 
    

    bgおよびのfgジョブ制御組み込みコマンドの詳細についてbashは、こちらを参照してください

于 2012-08-07T15:51:53.680 に答える
0

コンソール出力を見たくない場合は、コンソールにログインしないでください。コンソールとして想定されていないデバイスにログ メッセージが書き込まれている場合は、システムの設定が間違っています。コンソール デバイスを設定できるように、起動時にカーネル コマンド ラインを変更する必要があります。

ほとんどの場合、コンソールとしてメイン ディスプレイにログを記録している GUI のないシステムを使用しています。その場合、/etc/rsyslog.conf のメッセージの重大度を kern.* (デフォルト) から kern.err に変更できます。非常に多くのメッセージをログに記録している壊れたプログラムを修正することも検討してください。

于 2012-08-07T11:11:07.933 に答える