Objectifs
- Distinguer clairement un terminal d’un shell.
- Identifier les outils que vous utilisez au quotidien : émulateur, prompt.
- Maîtriser l’historique des commandes pour gagner en efficacité.
- Personnaliser son environnement de base, comme l’invite de commandes.
Explications détaillées
Notions clés
Terminal vs Shell : Quelle est la différence ?
C’est une confusion fréquente. Retenez cette analogie simple : le terminal est la fenêtre du navigateur, et le shell (Bash) est le site web que vous utilisez à l’intérieur (comme Google).
- Le Terminal (ou Émulateur de Terminal) : C’est l’application graphique que vous lancez. Elle dessine la fenêtre, gère les polices de caractères, les couleurs, le copier-coller et les onglets. C’est une émulation des anciens terminaux physiques. Exemples courants :
GNOME Terminal(sur Ubuntu),Konsole(sur KDE),Terminal.app(sur macOS),Windows Terminal. - Le Shell : C’est le programme qui tourne à l’intérieur du terminal. Il interprète vos commandes (
ls,pwd,echo), exécute des scripts et gère la logique de la ligne de commande. Bash est votre shell.
Le Prompt (Invite de Commandes)
Le prompt est la courte ligne de texte qui s’affiche avant que vous ne tapiez une commande. Il vous indique que le shell est prêt à recevoir une instruction.
Un prompt classique ressemble à ceci : utilisateur@machine:~$
utilisateur: Votre nom d’utilisateur.machine: Le nom de l’ordinateur (hostname).~: Le répertoire courant (le tilde~est un raccourci pour votre dossier personnel, ex:/home/utilisateur).$: Indique que vous êtes un utilisateur standard (un prompt#signale l’utilisateur root/administrateur).
Cette invite est entièrement personnalisable grâce à une variable spéciale nommée $PS1.
L’Historique des commandes
Le shell se souvient de toutes les commandes que vous avez tapées. C’est une fonctionnalité extrêmement utile pour ne pas avoir à retaper de longues commandes.
- Naviguer : Utilisez les flèches
HautetBasde votre clavier pour faire défiler les commandes précédentes. - Rechercher : Appuyez sur
Ctrl+R, puis commencez à taper une partie de la commande que vous cherchez. Le shell vous montrera la correspondance la plus récente. Appuyez à nouveau surCtrl+Rpour trouver des correspondances plus anciennes. - Afficher la liste : La commande
historyaffiche une liste numérotée de vos dernières commandes.
Syntaxe / Usages
Présentation des commandes et raccourcis liés aux outils du terminal.
# Afficher les 15 dernières commandes de l'historique
history 15
# Exécuter à nouveau la dernière commande tapée
!!
# Exécuter la commande numéro 42 de la liste 'history'
!42
# Exécuter la dernière commande qui commençait par 'mkdir'
!mkdir
# Afficher le contenu de la variable qui définit le prompt
echo $PS1
# Changer le prompt pour la session actuelle (il sera réinitialisé à la fermeture)
# Le prompt deviendra "Mon Shell > "
export PS1="Mon Shell > "
Exemples
# 1. Voir quelles commandes vous avez récemment utilisées
history 5
# 2. Imaginons que la sortie était :
# 501 ls -l
# 502 cd ..
# 503 mkdir mon_projet
# 504 cd mon_projet
# 505 history 5
# Pour relancer la création du dossier (sans la retaper) :
!503
# 3. Changer temporairement votre invite pour quelque chose de plus simple
export PS1="-> "
# Votre terminal affichera maintenant "-> " au lieu de "user@host:~$"
Pour rechercher interactivement, appuyez sur Ctrl+R et tapez mkdir. La commande mkdir mon_projet devrait apparaître.
Bonnes pratiques
- Personnalisez votre prompt (
$PS1) pour y afficher des informations utiles, comme la branche Git actuelle. Cela vous donne un contexte visuel permanent. - Utilisez
Ctrl+Rsystématiquement. C’est souvent plus rapide que de chercher avec la flèche du haut ouhistory | grep. - Ne stockez pas d’informations sensibles (mots de passe, clés d’API) dans l’historique. Préfixez la commande d’une espace (
<espace>ma_commande --password=...) pour que la plupart des shells ne l’enregistrent pas.
Pièges courants
- Exécuter à la hâte avec
!!ou!n: Soyez très prudent en ré-exécutant des commandes, surtout celles qui modifient ou suppriment des fichiers (rm,mv). Vérifiez toujours la commande avant de la valider. - Mauvaise configuration de
$PS1: Une erreur dans la variable$PS1peut rendre votre prompt illisible ou cacher des informations importantes. Modifiez-la toujours de manière temporaire avant de la rendre permanente. - Oublier de nettoyer l’historique : Si vous avez tapé un mot de passe par erreur en clair, il est dans
~/.bash_history. Pensez à éditer ce fichier pour le supprimer.
Exercices
-
Explorez votre environnement :
- Tapez
echo $SHELLpour confirmer que vous utilisez bien Bash. - Tapez
echo $PS1pour voir la configuration actuelle de votre prompt. - Changez votre prompt pour qu’il affiche “Yes, master? ”. Exécutez quelques commandes (
ls,pwd) pour voir le résultat.
- Tapez
-
Devenez un pro de l’historique :
- Tapez la commande
historypour voir votre liste de commandes. - Repérez le numéro d’une commande simple que vous avez tapée précédemment (par exemple, un
ls). - Exécutez-la à nouveau en utilisant sa référence
!numero. - Maintenant, utilisez
Ctrl+Rpour retrouver la commandeecho $PS1que vous avez tapée plus tôt.
- Tapez la commande
-
Créer un mini-script d’information :
- Créez un script
info.shqui affiche les informations suivantes :- “Mon shell est : [résultat de
echo $SHELL]” - “Mon terminal est : [résultat de
echo $TERM]” - “Les 5 dernières commandes étaient :”
- [Les 5 dernières lignes de la commande
history]
- “Mon shell est : [résultat de
- Rendez le script exécutable et lancez-le.
- Créez un script