GNU/Linux >> Tutoriels Linux >  >> Linux

Redirection d'entrée/sortie sous Linux/Unix

Qu'est-ce que la redirection ?

La redirection est une fonctionnalité de Linux telle que lors de l'exécution d'une commande, vous pouvez modifier les périphériques d'entrée/sortie standard. Le flux de travail de base de toute commande Linux est qu'elle prend une entrée et donne une sortie.

Types de redirection

1. Remplacer

  • ">" Le périphérique d'entrée standard (stdin) est le clavier.
  • "<" Le périphérique de sortie standard (stdout) est l'écran.

2. Ajoute

  • ">>" sortie standard
  • "<<" saisie standard

3. Fusionner

  • "p> &q" fusionne la sortie du flux p avec le flux q
  • "p <&q" Fusionne l'entrée du flux p avec le flux q
Redirection de sortie

Le ‘> ‘ Le symbole est utilisé pour la redirection de sortie (STDOUT).

Exemple :

ls -al > listings

Ici, la sortie de la commande ls -al est redirigée vers le fichier "listings" au lieu de votre écran.

Remarque :"Utilisez le nom de fichier correct lors de la redirection de la sortie de la commande vers un fichier. S'il existe un fichier portant le même nom, la commande redirigée supprimera le contenu de ce fichier, puis il pourra être écrasé. »

— Si vous ne souhaitez pas qu'un fichier soit écrasé mais souhaitez ajouter plus de contenu à un fichier existant, vous devez utiliser ‘>> ‘ opérateur.

— Vous pouvez rediriger la sortie standard, non seulement vers des fichiers, mais aussi vers des appareils !

cat music.mp3 > /dev/audio

La commande cat lit le fichier music.mp3 et envoie la sortie à /dev/audio qui est le périphérique audio. Mais si les configurations sonores de votre PC sont correctes, cette commande jouera le fichier music.mp3

Redirection d'entrée

Le ‘< ' le symbole est utilisé pour la redirection d'entrée (STDIN)

Cela joindrait le fichier à l'e-mail, et il serait envoyé au destinataire.

"News Today" est le sujet de l'e-mail, "[email protected]" est l'adresse e-mail et "NewsFlash" est le fichier joint.

Les exemples ci-dessus étaient simples. Examinons quelques techniques avancées de redirection qui utilisent des descripteurs de fichiers.

Descripteurs de fichiers (FD)

Sous Linux/Unix, tout est un fichier. Les fichiers réguliers, les répertoires et même les périphériques sont des fichiers. Chaque fichier a un numéro associé appelé descripteur de fichier (FD).

Votre écran a également un descripteur de fichier. Lorsqu'un programme est exécuté, la sortie est envoyée au descripteur de fichier de l'écran et vous voyez la sortie du programme sur votre moniteur. Si la sortie est envoyée au descripteur de fichier de l'imprimante, la sortie du programme aura été imprimée.

Redirection d'erreur

Chaque fois que vous exécutez un programme/une commande sur le terminal, 3 fichiers sont toujours ouverts, à savoir, entrée standard, sortie standard, erreur standard.

Ces fichiers sont toujours présents chaque fois qu'un programme est exécuté. Comme expliqué précédemment un descripteur de fichier, est associé à chacun de ces fichiers.

Fichier Descripteur de fichier
Entrée standard STDIN 0
Sortie standard STDOUT 1
Erreur standard STDERR 2

Par défaut, le flux d'erreurs est affiché à l'écran. La redirection des erreurs achemine les erreurs vers un fichier autre que l'écran.

Pourquoi la redirection d'erreur ?

La redirection des erreurs est l'une des fonctionnalités les plus populaires d'Unix/Linux.

Les utilisateurs fréquents d'UNIX s'apercevront que de nombreuses commandes génèrent d'énormes quantités d'erreurs.

  • Par exemple, lors de la recherche de fichiers, on obtient généralement des erreurs d'autorisation refusée. Ces erreurs n'aident généralement pas la personne qui recherche un fichier particulier.
  • Lors de l'exécution de scripts shell, vous ne voulez souvent PAS que des messages d'erreur encombrent la sortie normale du programme.

La solution consiste à rediriger les messages d'erreur vers un fichier.

Exemple 1

 myprogram 2>errorsfile

Ci-dessus, nous exécutons un programme nommé myprogram.

Le descripteur de fichier pour l'erreur standard est 2.

En utilisant "2>", nous redirigeons la sortie d'erreur vers un fichier nommé "errorfile"

Ainsi, la sortie du programme n'est pas encombrée d'erreurs.

Exemple 2

Voici un autre exemple qui utilise l'instruction find –

find . -name 'my*' 2>error.log

En utilisant le "rechercher ", nous recherchons le ". ” répertoire courant pour un fichier avec “nom " commençant par " mon

Exemple 3

Voyons donc un exemple plus complexe,

Les administrateurs de serveur répertorient fréquemment les répertoires et stockent à la fois la sortie d'erreur et la sortie standard dans un fichier, qui peut être traité ultérieurement. Voici la commande.

ls Documents ABC> dirlist 2>&1

Ici,

  • qui écrit la sortie d'un fichier vers l'entrée d'un autre fichier. 2>&1 signifie que STDERR redirige vers la cible de STDOUT (qui est le fichier dirlist)
  • Nous redirigeons la sortie d'erreur vers la sortie standard qui à son tour est redirigée vers le fichier dirlist. Par conséquent, la sortie est écrite dans le fichier dirlist

Résumé

  • Chaque fichier sous Linux est associé à un descripteur de fichier correspondant
  • Le clavier est le périphérique d'entrée standard tandis que votre écran est le périphérique de sortie standard
  • ">" est l'opérateur de redirection de sortie. ">>" ajoute la sortie à un fichier existant
  • "<" est l'opérateur de redirection d'entrée
  • ">&" redirige la sortie d'un fichier vers un autre.
  • Vous pouvez rediriger l'erreur en utilisant son descripteur de fichier 2 correspondant.

Linux
  1. Apprenez les bases du fonctionnement de la redirection Linux I/O (Entrée/Sortie)

  2. Comment enregistrer la sortie de la commande dans un fichier sous Linux

  3. Utilisation de l'entrée-sortie et de la redirection d'erreur sous Linux

  4. Comment rediriger la sortie vers un fichier et Stdout sous Linux

  5. Comment imprimer la sortie de la commande Linux dans un fichier ?

Explication :Redirection des entrées, des sorties et des erreurs sous Linux

Substitution de processus :une méthode peu courante mais avancée pour la redirection d'entrée/sortie sous Linux

Shell Scripting Part4 - Entrée, sortie et redirection

Commande AWK sous Linux/Unix

Linux contre Unix

Fichier audio de tuyau Linux vers l'entrée du microphone