Aller au contenu

La prise en main de Shell Bash

1. Objectif du cours

Apprendre les notions de base du shell Bash et maîtriser les 10 commandes incontournables pour naviguer, manipuler des fichiers et gérer des processus. Préparer l'étudiant à utiliser Bash en ligne de commande avant d'aborder le scripting.

2. Notions et définitions essentielles

  • Bash : shell Unix et langage de scripting (Bourne Again Shell), permet d'exécuter des applications sous forme de commandes.
  • Commande : composée d'un nom, d'arguments (contexte, ex. noms de fichiers) et éventuellement d'options (modificateurs introduits par un tiret).
  • Arguments : séparés par des espaces, fournissent le contexte à la commande.
  • Options : ajoutées après les arguments, commencent par '-' et modifient le comportement de la commande.
  • Fonctions : regroupent plusieurs commandes pour les exécuter via un seul appel.
  • Emplacements système courants des commandes : /usr/bin et /bin.

3. Fonctionnement et principes

Bash recherche une commande dans les répertoires système (ex. /usr/bin, /bin) ; si la commande est trouvée, elle est exécutée, sinon Bash affiche un message d'erreur. Les commandes s'exécutent avec des arguments et des options qui précisent l'action à effectuer. Certaines commandes manipulent le système (changement d'utilisateur, suppression définitive), d'autres permettent d'explorer le contenu des fichiers ou de gérer les processus en cours. Les options courantes fournissent des modes d'affichage ou de confirmation (ex. afficher fichiers cachés, demander confirmation avant suppression).

4. Commandes et manipulations

Présente uniquement les commandes présentes dans le PDF, avec un court rôle :

  • su : se connecter en super utilisateur (root) — demande un mot de passe.
  • cd (avec usages associés) : changer de répertoire ; retours rapides vers le parent, le précédent ou le répertoire personnel.
  • usages présentés : revenir au parent, revenir au précédent, aller dans le répertoire personnel.
  • ls : afficher la liste des fichiers du répertoire courant. Options citées : voir fichiers cachés, affichage long.
  • touch : créer un fichier dans le répertoire courant ou spécifié.
  • rm : supprimer un fichier définitivement. Options pertinentes : confirmation interactive, suppression récursive.
  • mkdir : créer un répertoire.
  • more : faire défiler le contenu d’un fichier à l’écran sans le modifier.
  • grep : rechercher et afficher les lignes contenant une chaîne dans un fichier.
  • ps : afficher les processus en cours ; options pour plus d'infos ou pour voir les processus d'autres utilisateurs.
  • kill : arrêter un programme en fournissant son PID (numéro obtenu via ps).
  • tar : exploiter une archive (exemple d'extraction présenté).

Regroupements notables : ps → kill (obtenir PID puis arrêter processus) ; commandes d'exploration de fichiers → more / grep / ls.

5. Sécurité et bonnes pratiques

  • élévation de privilèges : l'utilisation de su nécessite un mot de passe et donne l'accès root — n'exécuter des commandes sensibles qu'avec une nécessité claire.
  • suppression : rm efface définitivement ; utiliser l'option de confirmation interactive citée dans le document pour éviter les suppressions accidentelles, et être prudent avec la suppression récursive.
  • arrêter des processus : vérifier le PID via l'affichage des processus avant d'envoyer un signal d'arrêt.
  • comportement en cas d'erreur : si Bash ne connaît pas une commande, il affiche un message d'erreur — vérifier l'orthographe ou l'emplacement de la commande.
  • emplacement des commandes : savoir que les commandes sont généralement stockées dans /usr/bin et /bin aide à diagnostiquer des problèmes d'exécution.

6. Points essentiels à retenir pour le TSSR

  • Bash est à la fois un shell interactif et un langage de scripting.
  • Structure d'une commande : nom + arguments (séparés par espaces) + options (introduites par un tiret).
  • Arguments fournissent le contexte (fichiers, chemins), options modifient le comportement.
  • Les commandes système se trouvent majoritairement dans /usr/bin et /bin ; Bash les recherche là.
  • Utiliser l'élévation de privilèges seulement quand nécessaire (su).
  • rm supprime définitivement : préférer une confirmation interactive pour les suppressions risquées.
  • Pour gérer un processus bloqué : identifier le PID via l'affichage des processus puis stopper le processus visé.
  • Pour consulter et rechercher dans des fichiers : distinguer l'affichage page par page et la recherche de chaîne.
  • Comprendre la navigation (chemins absolus vs relatifs) est indispensable pour manipuler correctement les fichiers.
  • Les fonctions permettent d'automatiser et regrouper des commandes répétitives.

7. Tableau récapitulatif

Concept Distinction / Remarque clé
Argument vs Option Arguments = valeurs (fichiers, chemins). Options = modificateurs commençant par '-'
Chemin absolu vs relatif Absolu commence à la racine (/...), relatif dépend du répertoire courant
Affichage fichier vs recherche Pagination (par ex. affichage page par page) ≠ extraction de lignes correspondant à une chaîne
Lister vs tuer processus Listing fournit PID et infos ; action d'arrêt nécessite le PID identifié
Suppression simple vs récursive Suppression d'un fichier ≠ suppression récursive d'un répertoire et de son contenu

8. Vérifications pratiques

  • Élève root : après élévation, accès aux privilèges root est demandé par mot de passe et se constate par le changement de contexte utilisateur.
  • Changement de répertoire : vérifiable en constatant le contenu attendu du répertoire cible (liste des fichiers).
  • Création de fichier/répertoire : le nouvel élément apparaît dans la liste du répertoire courant.
  • Suppression : un fichier supprimé n'apparaît plus dans la liste du répertoire ; en cas d'option de confirmation, la demande est affichée.
  • Lecture/recherche dans un fichier : le défilement montre le contenu ; la recherche affiche les lignes contenant la chaîne spécifiée.
  • Gestion de processus : ps affiche le PID ; envoyer l'arrêt est validé si le processus n'apparaît plus ensuite.
  • Extraction d'une archive : la présence des fichiers extraits dans le répertoire de destination confirme le succès.

9. Flashcards Anki

Qu'est-ce que Bash ? :: Un shell Unix et un langage de scripting (Bourne Again Shell)
Où Bash cherche-t-il généralement les commandes ? :: Dans des répertoires système comme /usr/bin et /bin
Que fournit un argument à une commande ? :: Le contexte (ex. nom de fichier ou emplacement)
Comment sont introduites les options d'une commande ? :: Par un tiret '-' suivi du nom ou d'une lettre initiale
Quel est l'effet principal de la commande su selon le document ? :: Se logger en tant que super utilisateur (root) après mot de passe
À quoi sert touch d'après le cours ? :: Créer un fichier dans le répertoire courant ou spécifié
Que fait rm et quelle précaution est mentionnée ? :: Supprime définitivement un fichier ; utiliser l'option de confirmation interactive si nécessaire
Que permet grep selon le PDF ? :: Afficher le texte associé à une chaîne de caractères spécifiée dans un fichier
Comment obtient-on le PID nécessaire pour kill ? :: En affichant les processus en cours avec la commande qui liste les processus (ps)
Quel exemple d'utilisation de tar est donné ? :: Extraction d'une archive via l'exemple d'option d'extraction présenté dans le document (ex. extraction d'une archive.tar)