Module 1
Chapitre 2 - Etayage du shell
1. Les terminaux
Les systèmes Unix/Linux furent à l'origine conçus pour fonctionner en mode texte, sans interface graphique.
Bien qu'aujourd'hui de nombreuses interfaces graphiques permettant de configurer le système ont été développées, il demeure totalement administrable en ligne de commande (CLI - Command Line Interface), cette méthode restant la plus simple et la plus puissante.
Cette ligne de commande est accessible via les terminaux qui jouent le rôle d'interface utilisateur/machine et fonctionnent avec un interpréteur de commandes : le shell.
Il est possible de se connecter sur plusieurs terminaux via la combinaison des touches Alt+Fn où Fn est une touche de fonction (Ex : F1,F2...).
Note : Depuis un
environnement graphique, il est possible de revenir sur un terminal via
la combinaison des touches Ctrl+Alt+Fn. Pour revenir au mode graphique,
il faut en général utiliser la combinaison Alt+F7.
2. Le shell
Le rôle du Shell est d'assurer la correspondance entre ce que l'utilisateur tape et le système. Il en existe de nombreuses versions. Le plus connus d'entre eux, bash est celui que nous utiliserons pendant ce cours.
Chacun des shells existant dispose de ses propres avantages et points faible. L'intérêt d'avoir un shell plutôt qu'un autre dépend des fonctionnalités offertes par celui-ci, et donc de l'utilisation que l'on souhaite en avoir.
Le tableau suivant vous présente les principaux shells ainsi que leurs caractéristiques.
Nom | Description |
bash | (Bourne Again Shell) offre l'édition de la ligne de commande et le rappel des commandes précédentes |
csh | (C Shell) développé à Berkeley, compatible avec le shell Bourne. Pas d'édition de la ligne de commande ni d'historique des commandes |
ksh | (Korn Shell) offre l'édition de la ligne de commande (touches compatibles Emacs) |
sh | le shell original, pas d'édition de la ligne de commande. |
tcsh | version améliorée du csh, avec un support de l'édition de la ligne de commande avec correction des commandes tapées |
zsh | shell similaire au Korn shell, avec plus de dynamisme lors des affichages et gère la non redondance des commandes. |
Un système Unix / Linux fonctionne à l'aide d'une multitude de programmes qui assurent, en général, chacun une fonction bien distincte et sont capables de communiquer au sein du shell.
Afin de pouvoir accéder au terminal, vous devez au préalable vous identifier grâce à un couple login/mot de passe. En fonction de cela, vous aurez accès à plus ou moins de programmes sur le système.
On distingue principalement 2 types de comptes utilisables sur le système :
Le compte utilisateur classique
Le compte root (Administrateur)
Un symbole de l'invite de commande vous permet de determiner le type de compte que vous utilisez.
Accés simple utilisateur :
user@localhost $
Accés root :
root@localhost #
3. Utilisation de l'aide
3.1 Les pages de manuel ou man pages
Sur un système Unix / Linux, la plupart des logiciels sont installés avec un manuel accessible par la commande man.
La syntaxe est la suivante :
man fonction_ou_commande
La commande : man man donne des informations sur l'utilisation du manuel en général.
La commande man peut également être utilisée pour rechercher un terme dans l'ensemble des pages de manuel, grâce à l'option -K
user@localhost $ man -K "disk space"
Celle-ci me retourne :
/usr/share/man/man1p/df.1p.gz? [ynq]
Correspondant à une occurrence de "disk space" dans la liste des manuels disponibles sur le système.
Afin de se déplacer dans les résultats, les commandes suivantes sont disponibles :
Commande | Description |
y | Afficher le manuel du résultat |
n | L'occurrence continue d'être recherchée dans la liste des manuels |
q | Retour au shell |
Il peut arriver que plusieurs manuels soient disponibles pour une même commande. Il suffit alors de préciser en paramètre de la commande man la section à rechercher.
Il suffit alors de saisir man 2 ex_prog ou man 7 ex_prog pour avoir l'aide souhaitée.
Afin de naviguer dans le manuel, il convient d'utiliser les touches haut et bas mais aussi les commandes suivantes :
Commande | Description |
Espace | Avance dans le manuel d'une page entière |
Entrée | Avance dans le manuel d'une ligne |
b | Recule dans le manuel d'une page |
/mot | Recherche mot dans le manuel. Ce peut être un nom ou une expression régulière |
q | Quitte le manuel |
3.2 Aide simplifiée
Nous venons de voir qu'il était possible de connaître la définition d'une commande par le manuel de celle-ci, mais il est aussi possible d'en avoir un résumé via l'option -help.
user@localhost $ df --help
Usage: df [OPTION]... [FILE]...
Show information about the filesystem on which each FILE resides,
or all filesystems by default.
Mandatory arguments to long options are mandatory for short options too.
-a, --all include filesystems having 0 blocks
-B, --block-size=SIZE use SIZE-byte blocks
-h, --human-readable print sizes in human readable format (e.g., 1K 234M 2G)
-H, --si likewise, but use powers of 1000 not 1024
-i, --inodes list inode information instead of block usage
-k like --block-size=1K
Celle-ci permet donc de voir rapidement ou encore de vérifier l'existence d'une option.