Movatterモバイル変換


[0]ホーム

URL:


Aller au contenu
Wikipédial'encyclopédie libre
Rechercher

Tube (shell)

Un article de Wikipédia, l'encyclopédie libre.
Page d’aide sur l’homonymie

Pour les articles homonymes, voirTube.

Cet article est uneébauche concernant l’informatique.

Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations desprojets correspondants.

Consultez la liste destâches à accomplir enpage de discussion.

Dans lessystèmes d'exploitation detype Unix, untube,pipeline oupipe (/paɪp/) est un mécanisme qui permet de chaîner desprocessus de sorte que la sortie d'un processus (stdout) alimente directement l'entrée (stdin) du suivant. Chaque connexion est implantée par untube anonyme. Les programmes filtres sont souvent utilisés dans cette configuration.Douglas McIlroy a inventé ce concept pour lesshells Unix et le nom anglais découle de l'analogie avec unpipeline physique.

Shell Unix

[modifier |modifier le code]

Le symbole utilisé pour créer des tubes dans lesshells Unix est labarre verticale|, appelée communémenttube oupipe par extension.

Par exemple :programme1 | programme2

Le programmeprogramme1 est exécuté par le système qui envoie les résultats auprogramme2 qui à son tour renvoie les résultats sur la sortie standard du système.

Le pipe est très utilisé sur Unix, par exemple pour associer plusieurs commandes dont on enchaîne les traitements.

Par exemple, la commande :

cut -d" " -f1 < access.log | sort | uniq -c | sort -rn | less

Permet d'extraire et d'afficher lesadresses IP des clients ayant accédé le plus fréquemment à un serveur webApache.

Pseudo-tubes

[modifier |modifier le code]

Dans les systèmes d'exploitationmonotâches comme leMS-DOS, les processus chainés doivent être exécutés séquentiellement, c'est-à-dire l'un après l'autre. La sortie de chaque processus est alors enregistrée dans unfichier temporaire, qui est ensuite lu par le processus suivant. Dès lors d'une part la taille requise sur disque pour effectuer ces commandes peut être très importante et donc l'exécution très lente, d'autre part l'acquisition permanente est impossible puisqu'elle ne rendra jamais « la main » et enfin ces commandes ne peuvent pas permettre de traiter des acquisitions de données entemps réel puisque tout doit être écrit sur les disques avant que le second traitement soit effectué. Lasyntaxe en revanche est identique à celles des tubes des shell UNIX. Dès lors on parle de pseudo-tubes.

Le traitement de la commande « dir | sort | more » par l'interpréteur de commandes permet d'afficher par page la liste des fichiers durépertoire de manière triée. Pour ce faire, le système exécute :

  1. création d'un fichier temporaire 1.tmp dans le répertoire pointé par la variable %TEMP% ou dans le répertoire courant si %TEMP% n'est pas renseigné
  2. exécution de la commande « dir » et enregistrement des données dans le fichier 1.tmp
  3. création d'un fichier temporaire 2.tmp
  4. exécution de la commande « sort » avec en entrée le fichier 1.tmp et sortie dans le fichier 2.tmp
  5. exécution de la commande « more » avec pour entrée le fichier 2.tmp et sortie sur la sortie standard
  6. effacement de 1.tmp et 2.tmp

Windows PowerShell

[modifier |modifier le code]

Windows PowerShell, l'équivalent des shell pour les systèmes d'exploitationmultitâches deMicrosoft, met aussi en œuvre ce genre de mécanisme. Mais contrairement aux tubes UNIX qui permettent de manipuler un flux de données brut sous forme d'octet ou de bits, les tubes de PowerShell permettent de manipuler des objets.NET, méthode qui, implicitement par l'interpréteur de commande, vérifie la nature du flux.

Notes et références

[modifier |modifier le code]

Articles connexes

[modifier |modifier le code]
  • Il est possible sous Unix d'utiliser les mécanismes des internes du système pour effectuer ce type de manipulation, voirtube
  • flux standard
Ce document provient de « https://fr.wikipedia.org/w/index.php?title=Tube_(shell)&oldid=217142050 ».
Catégories :
Catégories cachées :

[8]ページ先頭

©2009-2026 Movatter.jp