Beruflich Dokumente
Kultur Dokumente
L'interprteur de commandes est l'interface entre l'utilisateur et le systme d'exploitation, d'o son nom anglais
shell, qui signifie coquille.
Le shell est ainsi charg de faire l'intermdiaire le systme d'exploitation et l'utilisateur grce aux lignes de
commandes saisies par ce dernier. Son rle consiste ainsi lire la ligne de commande, interprter sa signification,
excuter la commande, puis retourner le rsultat sur les sorties.
Le shell est ainsi un fichier excutable charg d'interprter les commandes, de les transmettre au systme et de
retourner le rsultat. Il existe plusieurs shells, les plus courants tant sh (appel Bourne shell), bash (Bourne
again shell), csh (C Shell), Tcsh (Tenex C shell), ksh (Korn shell) et zsh (Zero shell). Leur nom
correspond gnralement au nom de l'excutable.
Chaque utilisateur possde un shell par dfaut, qui sera lanc l'ouverture d'une invite de commande. Le shell
par dfaut est prcis dans le fichier de configuration /etc/passwd dans le dernier champ de la ligne
correspondant l'utilisateur. Il est possible de changer de shell dans une session en excutant tout simplement le
fichier excutable correspondant, par exemple :
/bin/bash
Invite de commande (prompt)
Le shell s'initialise en lisant sa configuration globale (dans un fichier du rpertoire /etc/), puis en lisant la
configuration propre l'utilisateur (dans un fichier cach, dont le nom commence par un point, situ dans le
rpertoire de base de l'utilisateur, c'est--dire /home/nom_de_l_utilisateur/.fichier_de_configuration), puis il
affiche une invite de commande (en anglais prompt) comme suit :
machine:/repertoire/courant$
Par dfaut dans la plupart des shells le prompt est compos du nom de la machine, suivi de deux points (:), du
rpertoire courant, puis d'un caractre indiquant le type d'utilisateur connect :
ls -al /home/jf/
Dans la commande ci-dessus, ls est le nom de la commande, -al et /home/jean-francois/ sont des arguments. Les
arguments commenant par - sont appels options. Pour chaque commande il existe gnralement un certain
nombre d'options pouvant tre dtailles en tapant une des commandes suivantes :
commande --help
commande -?
man commande
Entres-sorties standard
Lors de l'excution d'une commande, un processus est cr. Celui-ci va alors ouvrir trois flux :
stdin, appele entre standard, dans lequel le processus va lire les donnes d'entre. Par dfaut stdin
correspond au clavier ; STDIN est identifi par le numro 0 ;
stdout, appele sortie standard, dans lequel le processus va crire les donnes de sortie. Par dfaut
stdin correspond l'cran ; STDOUT est identifi par le numro 1 ;
stderr, appele erreur standard, dans lequel le processus va crire les messages d'erreur. Par dfaut
stderr correspond l'cran. STDERR est identifi par le numro 2 ;
Par dfaut lorsque l'on excute un programme, les donnes sont donc lues partir du clavier et le programme
envoie sa sortie et ses erreurs sur l'cran, mais il est possible de lire les donnes partir de n'importe quel
priphrique d'entre, voire partir d'un fichier et d'envoyer la sortie sur un priphrique d'affichage, un fichier,
etc.
Redirections
Linux, comme tout systme de type Unix, possde des mcanismes permettant de rediriger les entres-sorties
standards vers des fichiers.
Ainsi, l'utilisation du caractre > permet de rediriger la sortie standard d'une commande situe gauche vers
le fichier situ droite :
> fichier
L'emploi d'un double caractre >> permet de concatner la sortie standard vers le fichier, c'est--dire ajouter
la sortie la suite du fichier, sans l'craser.
De manire analogue, le caractre < indique une redirection de l'entre standard. La commande suivante
envoie le contenu du fichier toto.txt en entre de la commande cat, dont le seul but est d'afficher le contenu sur
la sortie standard (exemple inutile mais formateur) :
ls -al | sort
Il est possible de cette faon de chaner un certain nombre de commandes par tubes successifs. Dans l'exemple
suivant la commande affiche tous les fichiers du rpertoire courant, slectionne les lignes contenant le mot "zip"
(grce la commande grep) et compte le nombre de lignes total :
ls -l | grep zip | wc -l
Ce document intitul Linux - Le shell issu de Comment a Marche (www.commentcamarche.net) est mis
disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette
page, dans les conditions fixes par la licence, tant que cette note apparat clairement.