table

introduction

c'est quoi, Unix?

les Unix d'aujourd'hui

la console

accéder à la console

la ligne de commande

à la découverte du système de fichier

les attributs des fichiers

à propos du noyau

les processus

shell et ligne de commande

les variables d'environnement

les "pipes"

redirections et descripteurs de fichiers

un exemple

allons plus loin

les "pipes"

modifié le 02/09/2007 00:26:31

les pipes anglo-saxons sont des tuyaux français, en voici un premier exemple:

ps aux | sort

ps aux envoie sur la sortie standard la liste des processus en cours avec le nom du propriétaire en première colonne, sort trie l'entrée standard pour l'envoyer à la sortie standard, le | permet de rediriger la sortie du programme précédent vers l'entrée du suivant

on obtient donc la liste des processus triés dans l'ordre alphabétique de leur propriétaire respectif

voici un autre exemple plus consistant:

sudo grep "Failed password" /var/log/auth.log | \
         grep "invalid"  | \
         cut -d ':' -f 4 | \
         cut -d ' ' -f 7 | \
         sort -n | \
         uniq

le fichier auth.log contient toutes les tentatives de connexion, les bonnes comme les mauvaises

grep "Failed password" /var/log/auth.log permet de filtrer les mauvais mots de passe, grep "invalid" filtre les utilisateurs invalides, cut -d ':' -f 4 découpe chaque ligne en colonnes séparées par les : et affiche la quatrième colonne, cut -d ' ' -f 7 découpe chaque ligne en colonnes séparées par des espaces et affiche la septième, sort -n fait un tri dans l'ordre numérique et uniq supprime les doublons: résultat, on obtient les IP de toutes les machines ayant tentées de se connecter avec un mauvais mot de passe

on doit pouvoir simplifier, non?