Aller au contenu

Certification Linux LPI/Administrateur système débutant/Examen 101/GNU et commandes Unix/Utiliser les streams, pipes, et redirections

Leçons de niveau 14
Une page de Wikiversité, la communauté pédagogique libre.

Image logo Il a été demandé de traduire cette page depuis Image logo

Début de la boite de navigation du chapitre
Utiliser les flux, les tuyaux (pipes) et les re-directions
Icône de la faculté
Chapitre no 5
Leçon : GNU et commandes Unix
Chap. préc. :Gestion de base des fichiers
Chap. suiv. :Créer, surveiller et terminer des processus
fin de la boite de navigation du chapitre
En raison de limitations techniques, la typographie souhaitable du titre, « GNU et commandes Unix : Utiliser les flux, les tuyaux (pipes) et les re-directions
Certification Linux LPI/Administrateur système débutant/Examen 101/GNU et commandes Unix/Utiliser les streams, pipes, et redirections
 », n'a pu être restituée correctement ci-dessus.

Description: Les candidats devraient être en mesure de rediriger les flux (streams) et de les connecter de façon à effectuer avec efficience des traitements sur les données texte. Ces taches incluent les redirection standard, les erreurs standard, faire un pipe sur le résultat d'une commande vers l'entrée d'une autre commande (piping), utiliser la sortie d'une commande (output) comme argument d'une autre commande et d'envoyer la sortie à la fois vers la sortie standard (stdout) et un fichier.

Key files terms and utilities include:

tee
xargs
<
<<
>
>>
|
` `

Entrée et sortie standard

[modifier | modifier le wikicode]

Pour chaque commande exécutée dans un terminal, il y a: une entrée standard valeur 0. (par défaut le clavier) une sortie standard valeur 1.(par défaut le terminal) une sortie standard pour les erreurs valeur 2. (par défaut le terminal).

Chaque flux peut aussi être identifié par une adresse: &0 pour l'entrée, &1 pour la sortie, et &2 pour les erreurs.

Chaque flux [n] peut être redirigé. [n]< fichier: La valeur par défaut de n est 0 et elle lit l'entrée standard depuis le fichier. [n]> file: La valeur par défaut est 1 et elle envoie l'entrée standard vers le fichier. (clobber) [n]>>file: La valeur par défaut est 1 et elle ajoute l'entrée standard au fichier. <<word: Lire l'entrée standard jusqu'à le mot soit atteint. `commande`: Remplacer la commande par son résultat.

Début de l'exemple
Fin de l'exemple

« Concaténez tous les fichiers de configuration du répertoire /etc dans le fichier de configuration et ajoutez les erreurs dans le fichier /tmp/errors. »

Redirection avec les tubes (ou pipes)

Les tubes sont efficaces quand on l'applique à plusieurs commandes simultanément.

 command1 | command2

La sortie standard de command1 va être redirigée vers l'entrée standard de command2. La sortie standard pour les erreurs n’est pas redirigée.

Exemples:

ls -l /dev | more
ls -l /etc/*.conf | grep user | grep 500
ls -l /bin | mail `users`

Pour rediriger la sortie standard à la fois vers un fichier et le terminal utilisez tee.

ls -l /dev | tee file
ls -l /etc | tee -a file # Append to the file

Building arguments

The xargs utility constructs an argument list for a command using standard input.

xargs [options] [command]

The xargs command creates an argument list for command from standard input. It is typically used with a pipe.

Common options: -p: prompt the user before executing each command.

Examples:

ls f* | xargs cat # Print to standard output the content of all files starting with f.
find ~ -name 'proj1*' print | xargs cat

« Recherchez dans le répertoire personnel les fichiers commençant par proj1 et envoyez-les à l'entrée standard de cat. »

Utilisez le fichier de périphérique /dev/null pour ignorer les messages de sortie ou d’erreur.

Try the following:

grep try /etc/*
grep try /etc/* 2> /dev/null
grep try /etc/* > /dev/null 2> /dev/null
  1. Créez un fichier list.bin qui contiendra tous les noms de fichiers du répertoire /bin.
  2. Écrivez une commande qui ajoutera la liste des fichiers de /usr/local/bin au fichier nommé list.bin et supprimera toute sortie d'erreur.
  3. Divisez le fichier list.bin en fichiers de 50 lignes de long et supprimez list.bin.
  4. À partir des fichiers divisés, créez back list.bin. mais avec l'ordre inversé.
  5. Simplifiez les commandes suivantes :
ls *.c | xargs rm
ls [aA]* | xargs cat
cat `ls *.v` 2>/dev/null
  1. Use find to do the following command:
more `ls *.c`
  1. Écrivez une commande qui créera un fichier list.sbin avec le contenu de /sbin et l'affichera en même temps sur la sortie standard.
  2. Créez un fichier dont le nom inclut l'heure de création.
  3. Créez un fichier qui contiendra tous les noms de fichiers dans l'ordre inverse avec l'extension .conf du répertoire /etc.