GNU/Linux >> Znalost Linux >  >> Linux

použití < /dev/null &v příkazovém řádku

< /dev/null se používá k okamžitému odeslání EOF do programu, takže nečeká na vstup (/dev/null , nulové zařízení, je speciální soubor, který zahodí všechna data, která jsou do něj zapsána, ale hlásí, že operace zápisu byla úspěšná, a neposkytuje žádná data žádnému procesu, který z něj čte, což okamžitě poskytuje EOF). & je speciální typ oddělovače příkazů používaný k pozadí předchozího procesu.

Bez znalosti volaného programu přímo nevím, proč je nutné jej spouštět tímto způsobem.


</dev/null odpojí vstup programu od terminálu. Některé programy reagují odlišně podle toho, k čemu je připojen jejich standardní vstup. S přesměrováním </dev/null , program rozpozná, že jeho vstup nepřichází z terminálu, a pokud se pokusí číst ze svého standardního vstupu, okamžitě obdrží indikaci konce souboru.

Jediný & na konci způsobí, že se program spustí na pozadí. To znamená, že okamžitě dostanete zpět výzvu shellu. Bez & , zobrazí se výzva shellu zpět pouze tehdy, když program dokončí provádění.

Všimněte si, že samostatný & nesouvisí s >& . >& je operátor přesměrování (v tcsh, bash a zsh), který přesměruje standardní výstup programu i standardní chybu programu na název souboru zadaný za operátorem (zde log ).

Jinými slovy, co shell udělá, když uvidí tento příkazový řádek, je:

  • Spusťte proces na pozadí. V procesu na pozadí:
    • Připojte standardní vstup k /dev/null (nulové zařízení).
    • Připojte standardní výstup i standardní chybu k souboru s názvem log (vytvoření souboru, pokud ještě neexistuje, a jeho zkrácení, pokud existuje).
    • Hledejte spustitelný soubor s názvem java v $PATH .
    • Spusťte tento soubor s 5 argumenty -cp , /home/weka.jar , weka.classifiers.trees.J48 , –t , vlak_soubor`.

Linux
  1. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

  2. Jak přenosné jsou /dev/stdin, /dev/stdout a /dev/stderr?

  3. Kdy použít /dev/random vs /dev/urandom?

  1. Simulovat prázdný Stdin do odděleného příkazu?

  2. Linux – Co znamená písmeno „u“ v /dev/urandom?

  3. Automaticky zadávat vstup do příkazového řádku?

  1. Jak namapovat zařízení /dev/sdX a /dev/mapper/mpathY ze zařízení /dev/dm-Z

  2. Kdy mám použít /dev/shm/ a kdy /tmp/?

  3. DD z /dev/zero do /dev/null...co se vlastně stane