Ustensiles numériques

Bash

Bash est un interpréteur de ligne de commande utilisé dans les systèmes basés sur Unix (Linux et Mac). Sous Windows, Bash n'est pas l'interpréteur de ligne de commande par défaut, il faut installer un système Linux pour Windows (voir en bas de page).

Cet outil s'utilise dans un shell, ou terminal et permet de communiquer directement avec le système de son ordinateur en lui envoyant des commandes à exécuter. Pour exécuter une commande en Bash, il faut taper la commande dans un terminal, puis presser la touche Entrée. Une fenêtre de terminal est une interface texte qui ressemble à ceci :

Commandes de base

On peut avoir accès à une aide décrivant les commandes Bash avec la commande suivante :

info coreutils

Par exemple pour afficher tous les fichiers du dossier où l'on se trouve actuellement, il faut entrer la commande suivante :

ls -a

Pour se déplacer dans ses dossiers, on utilise la commande cd (pour Change Directory) :

cd mon_dossier

Pour savoir dans quel dossier on se trouve actuellement, il faut utiliser cette commande :

pwd

Pour afficher le contenu d'un fichier dans le terminal on peut utiliser la commande cat :

cat mon_fichier

Ou encore afficher tous les fichiers portant la même extension. Ici pour afficher tous les fichiers au format HTML d'un dossier :

cat *.html

Bash permet d'afficher du texte à l'aide de la commande echo. On peut l'associer à des variables que Bash peut interpréter. Par exemple la commande echo Je suis `whoami`. Nous sommes le `date` et nous sommes dans le dossier `pwd` va remplacer whoami par le nom de l'utilisateur.ice, date par la date et l'heure actuelle et pwd par le dossier où l'on se trouve.

Manipuler des fichiers

Bash permet de manipuler directement les contenus de son ordinateur. On peut par exemple créer des dossiers avec la commande mkdir :

mkdir mon_nouveau_dossier

On peut aussi créer des fichiers depuis le terminal. Par exemple pour créer un fichier test.txt :

touch test.txt

Pour modifier un fichier existant on peut l'ouvrir dans un éditeur de texte intégré au terminal avec la commande nano + le nom de son fichier. Par exemple, si on a un fichier nommé mon_fichier.txt, voilà ce qui se passe quand on entre la commande nano mon_fichier.txt :

On se retrouve alors dans Nano, où on peut modifier le contenu de son fichier, le sauvegarder et quitter. D'ailleurs avec cette commande, on peut directement ouvrir un nouveau fichier dans Nano puis l'enregistrer, ce qui aura pour conséquence de créer le fichier.

Bash permet aussi de combiner plusieurs commandes. Voici comment directement enregistrer du texte écrit dans le terminal dans un fichier :

echo "Bonjour tout le monde" > bonjour.txt

On se retrouve alors avec un fichier bonjour.txt dans son dossier. Si on l'ouvre, il contient ceci :

On peut aussi interagir avec le contenu d'un fichier en Bash. Si nous avons un fichier abecedaire.txt qui contient le texte « Bonjour tous les étudiant.e.s du cours Ustensiles numériques », on peut utiliser une commande qui va trier par ordre alphabétique les mots contenus dans le fichier et les afficher ligne par ligne dans le terminal :

cat abecedaire.txt | tr " " "\n"  | sort   

Utiliser des programmes en ligne de commande

Certains outils ne s'utilisent qu'à travers la ligne de commande. Pour les utiliser, il faut taper en premier dans le terminal le nom de l'outil, puis les commandes qu'on lui demande d'exécuter. Voici par exemple l'outil Figlet, qui permet de générer de l'ASCII art dans le terminal :

On peut aussi enregistrer le résultat de la commande envoyée à Figlet dans un fichier texte avec la commande :

figlet "Bonjour" > figlet.txt

L'outil Espeak est un outil de synthèse vocale en ligne de commande. On peut lui faire prononcer le contenu d'un fichier texte avec :

espeak -f mon_fichier.txt

Pour obtenir une documentation rapide des commandes disponibles pour un outil en ligne de commande, on peut utiliser la commande –help après le nom de l'outil. Par exemple pour obtenir de l'aide sur Espeak :

espeak --help

Lancer un script Bash

Il est aussi possible en Bash d'utiliser des scripts préalablement écrits (particulièrement utile si le script est long). Pour que ces scripts soient correctement exécutés, il faut qu'ils soient enregistrés avec l'extension .sh. Voici par exemple un script Bash test.sh qui nous demande notre prénom et nous répond :

#!/bin/bash
read -p "What is your name? " name
echo "Enjoy this tutorial, $name"

Pour lancer le script, il faut lancer la commande bash test.sh.

Ressources pour apprendre