24.06.2013 Views

Debuter sous Linux

Debuter sous Linux

Debuter sous Linux

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Les descripteurs<br />

À chaque processus sont associés trois descripteurs standards :<br />

L’entrée standard, ou STDIN, est le canal par lequel parviennent au processus<br />

les données qu’il doit traiter (il s’agit souvent du clavier).<br />

La sortie standard, ou STDOUT, est le canal sur lequel le processus doit<br />

produire les résultats de son traitement (il s’agit souvent du terminal<br />

auquel il est rattaché).<br />

La sortie d’erreur standard, ou STDERR, est le canal sur lequel le processus<br />

affiche les avertissements ou erreurs qui se produisent lors de son exécution<br />

(il s’agit souvent du terminal également, mais on peut choisir de<br />

diriger ce flux ailleurs).<br />

Le shell permet de rediriger ces flux. Par exemple :<br />

perrine@mamachine:~$ rev < /etc/motd<br />

nwonknu 686i 2002 TSE 11:91:31 41 rpA nuS 1# 7k-81.4.2 enihcam xuniL<br />

(lignes coupées)<br />

applique la commande rev (qui renverse les lignes de droite à gauche) au<br />

contenu du fichier /etc/motd, dont le contenu s’affiche sur chaque terminal<br />

de connexion.<br />

Le caractère < permet donc de rediriger l’entrée standard depuis un fichier,<br />

mais pour de nombreuses commandes simples c’est équivalent à préciser le<br />

nom de ce fichier en argument de la commande.<br />

perrine@mamachine:~$ grep perrine /etc/passwd > /tmp/perrine<br />

perrine@mamachine:~$<br />

applique la commande grep perrine au fichier /etc/passwd et en redirige<br />

la sortie dans le fichier /tmp/perrine. Rien ne s’affiche donc sur le terminal,<br />

et l’invite de ligne de commande revient immédiatement.<br />

Le caractère > permet ainsi de rediriger la sortie standard.<br />

perrine@mamachine:~$ find / > /dev/null<br />

find: /root/.gconfd: Permission non accordée<br />

find: /root/.gphoto: Permission non accordée<br />

find: /root/.w3m: Permission non accordée<br />

find: /root/.ssh: Permission non accordée<br />

Quand un simple utilisateur tel que perrine tente d’exécuter la commande<br />

find sur l’argument /, il essuie de nombreux refus, car cette commande, qui<br />

explore récursivement toute l’arborescence du système de fichiers, se heurte<br />

à de nombreuses fins de non recevoir. En effet, le processus find ainsi<br />

évoqué ne dispose que des droits du simple utilisateur perrine et ne peut<br />

explorer certains répertoires système contenant des données sensibles, et<br />

réservés à root.<br />

FICHIER SPÉCIAL /dev/null<br />

/dev/null est un fichier spécial qui joue le rôle<br />

de « trou noir » : toute tentative de lecture finit<br />

immédiatement après avoir renvoyé zéro octet,<br />

mais toute écriture dans ce fichier n’a aucun effet.<br />

Ainsi, rediriger un flux (comme une sortie d’erreur<br />

standard) dans ce fichier a pour effet d’abandonner<br />

ces informations sans se laisser la possibilité de les<br />

consulter plus tard. Elles sont immédiatement<br />

détruites et n’occupent aucun espace sur le disque.<br />

ATTENTION<br />

La commande find pouvant mettre de longues<br />

minutes à s’exécuter, on y mettra fin après quelques<br />

secondes par la combinaison de touches<br />

Ctrl + C.<br />

© Groupe Eyrolles, 2004 273<br />

11 – Commander son système grâce au shell

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!