Un Terminal pour piloter votre système
Pour beaucoup, le Terminal évoque des films d'action ou de science fiction où un·e génial·e hacker·euse intervient pour obtenir l'information convoitée avec des bruits de clavier.
Mine de rien, alors même que l'utilisation du Terminal est, depuis les années 1965-70, la seule manière de passer des commandes non ambiguës sur une machine, l'apparition des interfaces de bureau (les cliquodrômes) a transformé ce Terminal en une espèce de grimoire intimidant plein d'incantations mystérieuses. Pourtant, c’est avant tout l’outil le plus précis et le plus rapide pour manipuler des fichiers et installer des outils de travail.
À retenir
Le Terminal est la porte d'entrée principale dans le monde de l'automatisation de tâches : la fonction principale d'un ordinateur.
L'art du Bash¶
L'interface graphique (les fenêtres, les icônes) est limitée par ce que les développeurs ont prévu de vous montrer. Le Terminal, lui, est interface pour ligne de commande : vous parlez directement au système.
Sous Linux, le langage que vous utilisez dans ce terminal s'appelle Bash.
Bash est l'acronyme de Bourne Again Shell. En informatique, un Shell (coquille) est un programme qui entoure le cœur du système (le noyau ou Kernel) pour vous permettre d'interagir avec lui. Sans interface graphique, le noyau est quasiment silencieux. Bash est l'interprète qui traduit vos lignes de texte en instructions compréhensibles pour la machine.
Pourquoi « Bourne Again » ? C'est de l'humour informaticien. Bash est une version améliorée et libre du tout premier Shell d'Unix, créé par Stephen Bourne (le Bourne Shell). « Bourne Again » signifie à la fois « le Shell de Bourne, à nouveau » et « né de nouveau ».
Bash est un langage de script. Cela signifie que vous pouvez utiliser des variables ($valeur), des structures de commandes (for, while, if, fonctions…). Et un script Bash est un fichier texte dont l'extension est .sh, dans lequel on a placé des instructions et des commandes, qui s'exécute en lançant ./script.sh.
Ce que vous allez le plus souvent utiliser sous Linux n'est pas Bash au sens strict, mais si l'on peut dire, le premier niveau, c'est-à-dire des commandes Shell en une ligne dans le Terminal. Par exemple, enchaîner des ordres : cherche tous les fichiers .md, transforme-les en docx, puis déplace ces .docx dans mon dossier /Truc.
Mais une fois que vous aurez compris le principe, vous pourrez commencer à automatiser, c'est-à-dire créer un petit fichier (un script .sh) qui fait en une seconde un travail qui vous prendrait une heure à la souris, et que vous pouvez relancer plus tard au besoin sans avoir à retaper toute une ligne longue comme un jour sans pain. Vous pourrez aussi utiliser des variables, par exemple, stocker des noms de dossiers ou des dates pour les réutiliser dans un script.
Pour illustrer cela de manière fort simple, voici, en une ligne de commande, comment transformer plusieurs fichiers Markdown en un seul document .docx tout en ciblant des dossiers spécifiques :
Traduction littérale :
- utilise la commande
pandoc(un logiciel que nous verrons dans le chapitre suivant), - pour les fichiers dont voici les chemins (dans le dossier
/sources), - pour produire (
-osignifie output)... - un seul fichier
.docxqu'on situera dans le dossier/documents.
Si nous n'utilisions que la souris pour réaliser cela, il faudrait ouvrir chaque fichier Markdown, créer un nouveau fichier markdown en copiant-collant les contenus, et exporter ce fichier en choisissant le dossier de destination. Soit un risque d'erreur élevé (risque de mal copier un contenu) et beaucoup de manipulations souris. Évidemment, vous pouvez même copier seulement certaines parties à l'intérieur des fichiers pour créer un nouveau fichier contenant ces éléments, etc. À peu près tout est possible dès lors que vous utiliser des fichiers textes…
Je n'irai pas plus loin
Le monde de Bash est fascinant et vous l'utiliserez beaucoup par la suite. Si vous voulez en savoir plus sur Bash vous pouvez consulter gnu.org et le Bash Guide For Beginners par Machtelt Garrel (2004) que vous pouvez télécharger en anglais ou en français en plusieurs endroits sur Internet. Un excellent tutoriel d'apprentissage est fourni par le W3C : Bash Tutorial.
Note
Pour une présentation plus détaillée et néanmoins vulgarisée du Terminal, Bash et Shell, visitez cette page d'Arthur Perret (Univ. Jean Moulin, Lyon).
Ouvrir le Terminal¶
Il existe deux manières principales d'ouvrir le terminal sous Linux Mint :
- Le raccourci universel : appuyez simultanément sur
Ctrl+Alt+T. Une fenêtre s'ouvre : vous êtes dans votre dossier personnel/home(votre « Maison »). - L'astuce contextuelle : ouvrez votre gestionnaire de fichiers. Allez dans un dossier. Faites un clic droit dans le vide et choisissez « Ouvrir dans un terminal ». Ainsi, le terminal sera déjà situé dans ce dossier. Vous n'aurez pas besoin de naviguer pour trouver vos fichiers.
Naviguer en ligne de commande¶
Même si vous utilisez le clic droit, connaître ces trois commandes de base est essentiel pour ne pas se sentir perdu :
ls(list) : affiche la liste des fichiers et dossiers présents là où vous êtes.cd(change directory) : permet de se déplacer.cd Documents/articlespour entrer dans le dossier/Documents/articles.cd ..pour remonter d'un niveau (sortir du dossier).
pwd(print working directory) : répond à la question « Où suis-je ? » en affichant le chemin complet du dossier actuel.
Maintenir son système¶
Sous Linux, on ne cherche pas des installateurs .exe sur internet. On utilise un gestionnaire de paquets (le catalogue officiel de la distribution). Toutefois, il peut arriver de devoir aller chercher un paquet .deb (pour une distribution basée sur Debian comme Linux Mint) en dehors du magasin d'applications : faites-le en connaissance de cause et à vos risques et périls... en fait, évitez de le faire, il y a largement assez d'applications dans les dépôts (des milliers).
La première relation que vous aurez avec ces outils se fait via l'interface de bureau. Sous Linux Mint, un programme nommé Logithèque vous permet d'entrer dans le Magasin des dépôts et d'installer en un clic le logiciel de votre choix. La seconde relation se fait via le Gestionnaire de mise à jour qui vous permet d'installer des mises à jour régulières (faites le !).
Mais tout cela peut être réalisé dans le Terminal. Voici comment faire.
Avant d'installer quoi que ce soit, on s'assure que le catalogue est à jour. Tapez (et terminez par Entrée) :
sudo: signifie « super user Do ». C'est l'équivalent de « exécuter en tant qu'administrateur ». Votre mot de passe de session vous sera demandé (les caractères ne s'affichent pas pendant que vous tapez, c'est une sécurité normale).apt: c'est le nom de l'outil qui gère les logiciels.- et nous avons en fait lancé deux commandes à la suite,
updateetupgrade, séparées par&&(un opérateur logique signifiant « et » mais reste conditionnel : si une commande est fausse, l'ensemble est considéré faux). - Il faut lancer
updateen premier : le logicielaptlance la synchronisation des dépôts. Cela garantit que votre système dispose des informations les plus récentes sur les paquets disponibles et leurs versions. - la commande
upgradeprocède ensuite à la mise à jour du système.
L'installation de Pandoc¶
Une fois le système à jour, installez votre futur « convertisseur universel » nommé Pandoc :
Appuyez sur Entrée, confirmez par o (pour Oui) si on vous le demande, et c'est terminé. Pandoc est maintenant installé.
Pandoc est un outil qui s'utilise essentiellement en ligne de commande, même si nous verrons qu'il existe des moyens de l'utiliser avec une interface.