Sie sind auf Seite 1von 2

Introduction au shell

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 :

$ indique qu'il s'agit d'un utilisateur normal

# indique qu'il s'agit de l'administrateur, appel root

Notion de ligne de commande


Une ligne de commande est une chane de caractre constitue d'une commande, correspondant un fichier
excutable du systme ou bien d'une commande du shell ainsi que des arguments (paramtres) optionnels :

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 :

ls -al /home/jf/ > toto.txt


echo "Toto" > /etc/monfichierdeconfiguration
La commande suivante est quivalente une copie de fichiers :

cat toto > toto2


La redirection > a pour but de crer un nouveau fichier. Ainsi, si un fichier du mme nom existait, celui-ci sera
cras. La commande suivante cre tout simplement un fichier vide :

> 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) :

cat < toto.txt


Enfin l'emploi de la redirection << permet de lire sur l'entre standard jusqu' ce que la chane situe droite
soit rencontre. Ainsi, l'exemple suivant va lire l'entre standard jusqu' ce que le mot STOP soit rencontr, puis
va afficher le rsultat :

cat << STOP


Tubes de communication (pipes)
Les tubes (en anglais pipes", littralement tuyaux) constituent un mcanisme de communication propre tous
les systmes UNIX. Un tube, symbolis par une barre verticale (caractre |), permet d'affecter la sortie
standard d'une commande l'entr standard d'une autre, comme un tuyau permettant de faire communiquer
l'entre standard d'une commande avec la sortie standard d'une autre.
Ainsi dans l'exemple suivant, la sortie standard de la commande ls -al est envoye sur le programme sort charg
de trier le rsultat par ordre alphabtique :

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.

Das könnte Ihnen auch gefallen