Le Terminal et le Shell sous Linux Flashcards
1.Qu’est-ce qu’un terminal informatique ?
Un terminal informatique est un équipement d’entrée/sortie qui permet d’opérer un système. Les terminaux physiques ont été remplacés par des émulateurs de terminaux virtuels.
2.Quels sont les émulateurs de terminaux courants sous Linux ?
GNOME Terminal
Konsole
xfce-terminal
urxvt
- Qu’est-ce qu’un interpréteur de commandes (shell) ?
Un programme qui exécute des commandes saisies par l’utilisateur, facilitant les appels système vers le noyau.
4 l’histoire du terminal
1.Dans les années 60-70, un ordinateur occupait l’espace
d’une pièce entière
2.Avec l’évolution des technologies, le terminal s’est
rapproché de la machine, mais restait tout de même
un équipement dissocié
5Le terminal informatique
Désigne un équipement entrée/sortie
* Il permet d’opérer le système
* Il pouvait posséder un clavier, un écran avec un pointer, une imprimante
Les terminaux physiques ont laissé la place aux terminaux
virtuels, ou émulateurs de terminaux
6 Découvrir la virtualisation des terminaux
de commande
- L’idée, c’est de passer par le logiciel pour émuler (ou simuler)
l’équipement terminal physique et toutes ses fonctionnalités. - Ce logiciel est souvent un petit programme qui se lance sur un système
d’exploitation et qui permet de se connecter localement ou à distance sur
le serveur à administrer. Il devient donc possible de lancer plusieurs
terminaux simultanément depuis le même environnement !
La console
La console sous Linux est un périphérique gérant le clavier et
l’écran de l’ordinateur et propose d’interagir avec l’utilisateur
via un terminal en mode texte.
Les principaux émulateurs de terminal
*PuTTY sous Windows
*Terminal sous macOS
*xterm sous Linux
A quoi sert le terminal
- A se connecter avec un protocole réseau sur
le serveur distant autant de fois que souhaité - Y compris plusieurs fois sur le même serveur
avec des utilisateurs différents (dans la limite
de connexions simultanées configurées sur
chaque serveur).
Comprendre les interactions
entre les terminaux virtuels
et les hyperviseurs de type 1
et 2
L’hyperviseur de niveau 2
(dans l’exemple ci-dessous
Oracle Virtualbox) va
proposer l’affichage de la
console et des terminaux
physiques… de manière
virtuelle :
L’interpréteur de commandes «shell»
C’est un programme qui est exécuté lors de la connexion
de l’administrateur sur une console ou un terminal. Il
présente une interface en mode texte qui permet de
saisir des commandes
Et à quoi ça sert, cet interpréteur de
commandes ?
- Le rôle principal du shell est d’exécuter les commandes
saisies par l’administrateur lui permettant d’effectuer
des appels systèmes vers le noyau. - Mais l’interpréteur de commandes fournit également
d’autres fonctionnalités essentielles permettant de
faciliter la tâche de l’administrateur.
Histoire des shells sous Unix/Linux
- Ken Thompson, l’un des créateurs de Unix, invente son propre
shell en 1971 et le nomme Thompson shell. - Stephen Bourne écrit le Bourne shell en 1977 qui devient une
référence en matière d’interpréteur de commandes, avec des
fonctionnalités très intéressantes - le C Shell, qui dispose d’un langage très proche du langage C (le
langage natif des systèmes Unix/Linux) et donc très populaire
pour cette raison - le KornShell, développé plus tard, début des années 80, apporte
de son côté une amélioration du C Shell avec une intégration
d’autres langages comme le Perl, le TCL par exemple, le support
de tableaux associatifs, etc
Shell standard sous Linux
- Bash (pour Bourne Again Shell)
- Développé fin des années 80, cet interpréteur de
commandes est un peu un condensé du meilleur de tous
ses ancêtres.
Découvrez Bash, le shell standard de Linux
Le shell exécuté lors de la connexion d’un utilisateur sur
un terminal est configuré dans le fichier /etc/passwd
Fonctionnalités importantes
- command linecompletion : avec la touche TAB
- signal handling : CTRL-C pour interrompre
- exit code : code de sortie d’un programme dans une
variable nommée $?
Les commandes sous Bash
Nous allons explorer les différentes fonctionnalités de
Bash, directement depuis le terminal de commandes
Utiliser le prompt et consulter ses variables
- Cette interface, le prompt, affiche déjà quelques informations
intéressantes. - ~ répertoire personnel de l’utilisateur
- $ utilisateur non privilégié, # compte root
- Toutes ces configurations sont stockées dans un fichier et une variable
nommée $PS1
Vos premières commandes
- La commande echo vous permet d’afficher le contenu
des variables ($PS1 et $SHELL) - /bin/bash –version
Les commandes internes
- Ces commandes sont livrées avec l’interpréteur de
commandes directement, comme une primitive du shell. - Elles sont disponibles à tout moment par l’administrateur du
système. - Cependant, il est probable que toutes ne soient pas
forcément intégrées à l’interpréteur de commandes que vous
allez utiliser. - Il est également possible que leurs options ne soient pas
toutes identiques non plus.
Les commandes externes
- Ces commandes sont externes à l’interpréteur de
commandes, c’est-à-dire qu’elles ne sont pas fournies
par le shell. - Elles sont généralement présentes sur le système sous la
forme d’un fichier compilé binaire ou d’un fichier
disposant des droits d’exécution (comme un script Perl
par exemple).
Configurer l’accès aux commandes
- Si la commande id est externe au shell, comment Bash fait-il
pour savoir que id est le fichier/usr/bin/id? Autrement dit,
comment le shell Bash fait-il pour accéder aux commandes
externes ? - La réponse se situe dans une nouvelle variable
d’environnement PATH
Démo la variable d’environnement PATH
Je vous propose d’étudier la variable PATH. Nous verrons comment
afficher et interpréter son contenu, ce qui nous permettra de
découvrir trois répertoires importants sous Linux :
* /usr/local/bin
* /usr/bin
* /bin
Consulter la documentation des
commandes sous linux
Via le Web et les moteurs de recherches
* Via les commandes help et man
Profiter des fonctionnalités avancées de
Bash
- Commande history
- Les alias