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

コマンドラインでの < /dev/null &の使用

< /dev/null EOF をプログラムに即座に送信するために使用されるため、入力を待機しません (/dev/null 、ヌルデバイスは、書き込まれたすべてのデータを破棄する特別なファイルですが、書き込み操作が成功したことを報告し、そこから読み取るプロセスにデータを提供せず、すぐに EOF を生成します)。 & 前のプロセスをバックグラウンドで実行するために使用される特別なタイプのコマンド セパレータです。

プログラムが呼び出されていることを知らなければ、なぜこの方法で実行する必要があるのか​​ 直接わかりません.


</dev/null プログラムの入力を端末から切断します。一部のプログラムは、標準入力が何に接続されているかによって、異なる反応を示します。リダイレクト </dev/null あり

孤独な & 最後に、プログラムがバックグラウンドで実行されます。これは、シェル プロンプトがすぐに返されることを意味します。 & なし 、プログラムの実行が終了したときにのみシェル プロンプトが返されます。

スタンドアロンの & >& とは無関係です . >& プログラムの標準出力とプログラムの標準エラーの両方を、演算子の後に指定されたファイル名 (ここでは log ).

つまり、このコマンド ラインを検出したときにシェルが行うことは次のとおりです。

  • バックグラウンドでプロセスを開始します。バックグラウンド プロセス:
    • 標準入力を /dev/null に接続 (null デバイス)
    • 標準出力と標準エラーの両方を log というファイルに接続します (ファイルがまだ存在しない場合は作成し、存在する場合は切り捨てます)。
    • java という実行ファイルを探します $PATH で .
    • そのファイルを 5 つの引数 -cp で実行します 、 /home/weka.jarweka.classifiers.trees.J48–t , train_file`.

Linux
  1. Linuxは複数の連続したパスセパレーター(/ home //// username /// file)をどのように処理しますか?

  2. / dev / stdin、/ dev / stdout、および/ dev / stderrはどの程度移植可能ですか?

  3. /dev/random または /dev/urandom を base64 でエンコードする方法は?

  1. /dev/zero から /dev/null への DD ...実際に何が起こるか

  2. カーネル:/dev/kmem と /dev/mem を無効化

  3. echo または print /dev/stdin /dev/stdout /dev/stderr

  1. Linux:/ dev / console、/ dev / tty、/ dev / tty0の違いは?

  2. / dev/randomと/dev/ urandomをいつ使用するか?

  3. /dev/tcp を使用するために < または > が必要な理由