31  Utiliser le terminal et le shell Bash

31.1 Quoi ?

  • Un terminal permet d’écrire des commandes pour lancer des programmes de base pour gérer les fichiers de votre ordinateur.
  • Le shell Bash est le langage de programmation de ces commande, fonctionnant dans tous les systèmes d’exploitation classiques (Windows, Mac, Linux).

31.2 Pourquoi ? Le contenu de ce chapitre a été rédigé selon les principes et bonnes pratiques enseignés dans les ateliers « Débugue tes humanités » de l’UdeM.

  • Pour avoir plus de contrôle sur ce que l’on peut faire avec les fichiers : les renommer en lot, créer des listes, lancer des sauvegardes des nouveaux fichiers, etc.
  • Pour gagner du temps de qualité :
    • Pour construire des commandes adaptées à nos besoins, plus ou moins complexes, plus ou moins courantes.
    • Pour lancer automatiquement des programmes et des traitements de fichiers de manières répétitives.
    • Par exemple : « va dans tous les dossiers et sous-dossiers de tel emplacement, chaque fois que tu trouves un PDF lance un programme de reconnaissance de texte et créer à côté du fichier PDF un fichier texte de même nom contenant le résultat de la reconnaissance de texte. Si il existe déjà un fichier texte de même nom (sous entendu, une reconnaissance de texte à déjà été faite), alors ignore cette opération. Créé-moi au passage une liste de tous les fichiers texte créés ainsi et leurs emplacements. »
  • Pour faire plein de choses que l’interface graphique classique (boutons, souris, clics) des systèmes d’exploitation ne permet pas de faire habituellement.

31.3 Comment installer un programme BASH qui pilote le terminal ?

  • Installer Git BASH, qui est un peu moins complet que le BASH natif.
  • La syntaxe est presque la même pour tous les terminaux BASH et tous les systèmes d’exploitation (Windows, Mac, Linux).

31.4 Comment utiliser le terminal ?

  • Quelques commandes de base :
    • pwd : nom du chemin du dossier actuel.
    • ls : liste les fichiers du dossier actuel.
    • clear : efface le terminal.
    • mkdir NomDuDossier : créé un dossier NomDuDossier.
      • cd NomDuDossier : va dans le dossier nommé NomDuDossier.
      • cd ..: remonte d’un niveau dans l’arborescence des dossiers.
    • history : historique de toutes les commandes lancées.
    • mv : déplace un fichier.
    • rm : supprime un fichier.
      • rm -R : supprime un dossier et tout ce qu’il contient.
    • cat : affiche le contenu d’un fichier.
    • touch : créé un fichier.
  • Astuces :
    • tabulation = autocomplétion.
    • flèche du haut = historique des commandes.
    • CTRL+R : rechercher dans l’historique.
    • Écrire une séquence de commandes dans un fichier texte qui se termine par .sh, par exemple nommé prog.sh, puis exécuter ce fichier avec bash prog.sh
    • Autres commandes.

31.5 ATTENTION : « Avec de grands pouvoirs viennent de grandes responsabilités »

  • Il existe des commandes en lot qui peuvent tout effacer sur votre ordinateur (ou tout renommer ou tout déplacer)
  • Il n’y a pas de message qui vous avertit du danger.
  • Il n’y a pas de fonction Annuler ou undo.

31.6 Pour aller plus loin

  • Les ateliers « Débogue tes humanités » de l’UdeM : parcours en ligne, séminaires enregistrés, documentation en libre accès. Remerciements particuliers à Giulia Ferretti et Louis-Olivier Brassard qui m’ont enseigné le BASH.
  • Cours en ligne « Maîtriser le shell Bash » par Fun MOOC.