GNU/Linux >> Tutoriels Linux >  >> Linux

l'utilisation de < /dev/null &dans la ligne de commande

< /dev/null est utilisé pour envoyer instantanément EOF au programme, afin qu'il n'attende pas d'entrée (/dev/null , le périphérique nul, est un fichier spécial qui supprime toutes les données qui y sont écrites, mais signale que l'opération d'écriture a réussi et ne fournit aucune donnée à aucun processus qui lit à partir de celui-ci, produisant immédiatement EOF). & est un type spécial de séparateur de commandes utilisé pour mettre en arrière-plan le processus précédent.

Sans connaître le programme appelé, je ne sais pas directement pourquoi il est nécessaire de l'exécuter de cette manière.


</dev/null déconnecte l'entrée du programme du terminal. Certains programmes réagissent différemment selon ce à quoi leur entrée standard est connectée. Avec la redirection </dev/null , le programme peut dire que son entrée ne provient pas d'un terminal et recevra immédiatement une indication de fin de fichier s'il essaie de lire à partir de son entrée standard.

Le seul & à la fin provoque l'exécution du programme en arrière-plan. Cela signifie que vous obtenez immédiatement une invite du shell. Sans le & , vous ne recevriez une invite du shell que lorsque le programme aurait fini de s'exécuter.

Notez que le & autonome n'est pas lié à >& . >& est un opérateur de redirection (dans tcsh, bash et zsh) qui redirige à la fois la sortie standard du programme et l'erreur standard du programme vers le nom de fichier spécifié après l'opérateur (ici log ).

En d'autres termes, ce que fait le shell lorsqu'il voit cette ligne de commande est :

  • Démarrez un processus en arrière-plan. Dans le processus d'arrière-plan :
    • Connecter l'entrée standard à /dev/null (le périphérique nul).
    • Connectez à la fois la sortie standard et l'erreur standard au fichier appelé log (créer le fichier s'il n'existe pas encore, et le tronquer s'il existe).
    • Recherchez un fichier exécutable appelé java dans le $PATH .
    • Exécutez ce fichier avec les 5 arguments -cp , /home/weka.jar , weka.classifiers.trees.J48 , –t , train_file`.

Linux
  1. Comment Linux gère-t-il plusieurs séparateurs de chemins consécutifs (/home////nom d'utilisateur///fichier) ?

  2. Quand utiliser /dev/random contre /dev/urandom ?

  3. Comment désactiver complètement un Cronjob vers /dev/null/?

  4. Simuler Stdin vide en commande détachée ?

  5. Linux – Que signifie la lettre « u » dans /dev/urandom ?

Comment mapper les périphériques /dev/sdX et /dev/mapper/mpathY à partir du périphérique /dev/dm-Z

Que fait la ligne '!/bin/sh -e' ?

Quand dois-je utiliser /dev/shm/ et quand dois-je utiliser /tmp/?

DD de /dev/zero à /dev/null...ce qui se passe réellement

Linux :Différence entre /dev/console , /dev/tty et /dev/tty0

Pourquoi < ou > sont-ils nécessaires pour utiliser /dev/tcp