next up previous contents
suivant: Historique, complétion, variables d'environnement, monter: L'interface de commande (shell) précédent: Choix du shell présenté   Table des matières

Notions principales

Le shell définit les notions suivantes:

répertoire par défaut
il s'agit du répertoire appartenant à l'utilisateur, accessible en tapant cd. Il correspond à la variable d'environnement $HOME et à l'abréviation ~/. Un tel répertoire est une propriété d'un utilisateur.

répertoire courant
le répertoire courant correspond à un dossier ouvert sur votre bureau. Pour connaître le répertoire courant, il faut taper pwd. Pour changer de répertoire courant, on utilise cd. Un répertoire courant est une propriété d'un processus.

variables
Les variables d'environnement contiennent des informations comme le type de terminal et sont modifiables avec env, set et peuvent être exportées aux sous-processus du shell à l'aide de export. On obtient la valeur d'une variable en la précédant d'un dollar ($). Les variables d'environnement sont une propriété du processus.

historique
Il est possible de voir les commandes tapées dans le passé avec la commande history. De plus les touches du curseur haut et bas permettent de se promener dans l'historique des commandes introduites. On peut également faire des recherches dans l'historique: par exemple à l'aide de CTRL-R puis en entrant du texte on fait une recherche inverse dans l'historique.

On peut rejouer de l'historique facilement à l'aide de !! pour répéter la dernière commande, !23 pour la 23 ${^{\scriptsize e}}$ commande ou !mor pour la dernière commande débutant par mor.

motifs du shell
Il est possible d'utiliser * et ?, entre autres, comme jokers remplaçant respectivement une suite de caractères quelconque ou un caractère. Enfin le caractère ~ sera remplacé par votre répertoire par défaut (typiquement:
/users/loginname
loginname est votre nom d'utilisateur). De même ~user sera remplacé par le répertoire par défaut de l'utilisateur user, bien souvent /users/user23. Notons que ces motifs, jokers ou anglais: wildcards du shell ne sont pas exactement ce que l'on nomme souvent sous UNIX les expressions régulières, regexps. Celles-ci sont plus complexes mais également plus puissantes.

complétion
La touche TAB permet de compléter le nom d'une commande ou d'un fichier en cours de saisie s'il n'y a pas de possibilité de confusion et que le répertoire courant est lisible.

raccourcis
La commande alias permet de définir des équivalents de commandes. Par exemple alias dir ls permet de taper dir à la place de ls. Pour supprimer un alias, on utilise unalias. On peut aussi précéder la commande dont on veut utiliser la version originale par un $\backslash$ (ou par le sentier absolu, p.ex. /bin/ls).

scripts
Il est possible de créer des fichiers de texte contenant une suite de commandes que l'on veut appeler (exécuter) de manière répétitive. On appelle ce genre de fichiers de commandes également des batches.

redirections
Pour sauvegarder la sortie des commandes, il est possible d'utiliser les symboles de redirection $>$, $>>$ et $<$, correspondant respectivement à la création, l'ajout à un fichier remplaçant la sortie standard écran et la lecture d'un fichier remplaçant l'entrée standard clavier. La notion de pipe (ou tuyau/tube) est aussi intéressante, permettant de connecter la sortie standard d'une commande à l'entrée d'une autre commande.

correction
Certains shells peuvent corriger de façon limitée la syntaxe des commandes et éventuellement des arguments. Il présente alors une possibilité, et demande y/n/e24

commandes multiples
On peut indiquer des séquences de commandes avec le séparateur ; ou à l'aide de scripts. On peut également exécuter conditionnellement des commandes avec les séparateurs && et ||: dans le premier cas, on n'exécute la deuxième commande que si la première a réussi. Dans le second, on n'exécute la deuxième commande que si la première n'a pas réussi (son code de retour est différent de zéro).

job control
Il est possible de gérer plus d'un seul processus ou job dans le même shell.
expansion
L'expansion des arguments des commandes, particulièrement en présence d'expressions régulières (regexp) est effectuée par le shell. Il faut donc précéder d'un $\backslash$ les éventuels caractères jokers à interpréter par la commande (p.ex. grep). On peut aussi entourer l'argument par des guillemets, voir plus bas.

code de résultat
Chaque commande offre un code de résultat qui peut être traité par l'appelant. Le code de retour est stocké dans la variable d'environnement spéciale $?. Lorsque cette valeur vaut zéro, la commande précédente a réussi.

guillemets
Le rôle des guillemets est multiple: les guillemets doubles " empêchent l'expansion des jokers et la séparation d'arguments par des espaces, les guillemets simples ' empêchent en plus les expansions de variables. Enfin, les guillemets inverses (`, anglais: backtick) exécutent la commande dans les guillemets et retournent la sortie standard comme expansion.
tuyaux
Les tuyaux (anglais: pipes) permettent de connecter la sortie d'un programme à l'entrée d'un autre, afin d'effectuer une opération de flot complexe.


next up previous contents
suivant: Historique, complétion, variables d'environnement, monter: L'interface de commande (shell) précédent: Choix du shell présenté   Table des matières
Marc SCHAEFER 2003-03-01