1NSI : le Shell : Communication avec le noyau⚓︎
Terminal, Prompt, Shell⚓︎
Def
- le
Terminal est une interface en ligne de commande, ou Command Line Interface (souvent notée CLI). Lorsque le Terminal est prêt à recevoir une commande il l'indique par une invite de commande. - Un
Prompt ou invite de commande est la succession d'un ou de plusieurs caractères, placés usuellement en début de la ligne de commande, servant à signaler que le Terminal est prêt à recevoir une saisie au clavier. Il est souvent fini par un caractère spécial bien connu :]
,#
,$
,ou>
Les commandes Linux doivent être tapées dans un Terminal
\(\Longrightarrow\) Lancez un Terminal (combinaison de touches Ctrl+Alt+T
sur Manjaro):
[eleve@poste1 ~]$ # (commentaire) le symbole $ signifie que
# c'est l'utilisateur courant qui 'a la main' dans le Terminal
On reconnaît la partie [eleve@poste1 ~]$
qui est le prompt du Terminal.
Il se décompose de la manière suivante:
eleve
entre les [ ] est le nom de l'utilisateur courantposte1
entre les [ ] est le nom de l'hôte courant (=nom de l'ordi) donceleve@poste1
signifie que l'utilisateur courant esteleve
et qu'il travaille sur leposte1
(@
= at)- le
~
signifie que le dossier courant est/home/eleve
(=EMPLACEMENT PAR DÉFAUT LORSQU'ON LANCE LE TERMINAL)
du Prompt $
pour l'utilisateur courant, ou #
pour root
Dans ce cours, le prompt sera noté plus simplement :
$
pour l'utilisateur courant#
pour l'utilisateurroot
(le superadministrateur)
d'un SHELL
Lorsque vous avez le prompt dans un Terminal, vous avez donc la main pour lancer des commandes qui permettent de lancer, et quelquefois d'interagir avec, des logiciels, au moyen d'un
Il existe plusieurs Shells
Il existe en fait plusieurs interpréteurs de commandes (/shell) sous Linux, notamment:
B ourneSh ell (bsh ou sh) (1975): Shell développé par Steve Bourne (UK) en 1975 (Laboratoires Bell).B ourneA gainSH ell (BASH ) (1989): Un des plus puissants et surtout le plus fréquent sur les machines Unix/Linux. C'est l'interpréteur par défaut de nombreux systèmes Unix/GNU-Linux. C'est CE Shell (le deuxième shell de Steve Bourne) que nous utiliserons dans ce cours. Basé sur sh, il apporte de nombreuses améliorations, provenant du Korn Shell (ksh) et du C Shell (csh). Il a été le Shell par défaut sur les Systèmes BSD (jusqu'à MAC OS X v10.14), ensuite remplacé par zsh (mais bash toujours présent).C Sh ell (csh) (1978) : C shell. Evolution du Shell sh, utilisant une syntaxe plus proche du langage C. Un des avantages est la possibilité de réutilisation de l'Historique des commandes.K ornSh ell (ksh) (1983) : Shell développé par David Korn en 1983. Compatible avec le Bourne Shell (sh), et avec quelques fonctionnalités du C Shell (csh). Quelques améliorations par rapport au Bourne Shell (sh) : il supporte la rééxécution possible avec subsitution des commandes de l'historique, et l'usage des coprocessus. Depuis ksh93, les tableaux associatifs, l'arithmétique à virgule flottante. il supporte la programmation orientée objet.T enexC Sh ell (tcsh) (1981): version moderne du csh, et compatible avec celui-ci, il lui ajoute quelques améliorations : complétion des noms de fichiers et de commandes, ainsi que l'édition en ligne de commandes. Il a été le Shell par défaut sur les Systèmes BSD (jusqu'à MAC OS X v10.2), ensuite remplacé par bash (mais tcsh toujours présent), puis par zsh (depuis la version MAC OS X v 10.15)Z Sh ell (ZSH ) (1990) : puissant interpréteur : sorte de Bourne Shell étendu, reprenant les fonctions les plus pratiques de bash, ksh et tcsh. L'interpréteur par défaut sur MAC OS X (depuis la version 10.15) : voir cette page d'assistance sur les Shells Apple
Syntaxe Générale d'une Commande Linux⚓︎
Syntaxe Générale d'une Commande
macommande [-Options Facultatives] paramètres (Facultatifs, Ou Pas)
- une Syntaxe Longue avec
--
suivi d'un (ou plusieurs) mots en toutes lettres :macommande --help
montre l'aide pourmacommande
- une Syntaxe Courte avec
-
suivi d'une seule lettre :macommande -h
montre l'aide pourmacommande
-
Obtenir de l'aide avec l'Option
--help
pour une commande : Que fait cette commande? Quelles Options existent? Quelle syntaxe?Exp
$ macommande --help # affiche TOUTES les Options disponibles pour CETTE commande `ls` et sa Syntaxe, dans le Terminal # et/ou: $ macommande -h # affiche TOUTES les Options disponibles pour CETTE commande et sa Syntaxe, dans le Terminal
-
la commande
man
: affiche le **man**uel Linux pour une commande (encore plus complet quemacommande --help
)Exp
$ man ls # affiche le manuel pour la commande 'ls' dans le Terminal # Interactivité: # touche 'h' (help) affiche de l'aide sur TOUTES les (autres) touches et leur signification dans l'environnement 'man' # flèches 'Up' et 'Down' (resp. 'PageUp' et 'PageDown') pour faire défiler la page verticalement (resp. les pages) # '/' + taper un mot pour le rechercher dans le 'man' de la commande + 'n' (next) pour l'occurence suivante # touche 'q' pour quitter l'environnement 'man', et récupérer la main dans le Terminal