Qu’est-ce qu’un terminal ?
Un terminal est une interface qui permet d’interagir avec une machine (ordinateur ou serveur distant) en saisissant des commandes. Il donne accès aux fichiers, aux programmes et aux outils de développement sans passer par une interface graphique.
Pour ce cours, nous utiliserons Git Bash sous Windows (cf. section pré-requis pour installer Git for Windows si ce n’est pas déjà fait) et Terminal sous macOS ou Linux.
Découverte du terminal
Lorsque le terminal attend une commande, il affiche un prompt. Il contient généralement le nom de l’utilisateur, celui de la machine ainsi que le dossier courant.
utilisateur@machine:~/mon-projet$
Le symbole $ n’est pas une partie de la commande : il indique simplement que la commande doit être saisie après le prompt.
Dans cet exemple, l’utilisateur est alanna, le nom de la machine est ordi-alanna et le terminal est dans le dossier Documents.
La touche
tabulation(outab) complète souvent le nom d’un fichier ou d’une commande. Les flèches haut et bas permettent de retrouver les commandes précédentes.
Commandes de base
Identifier l’utilisateur courant
Connaître l’utilisateur courant est particulièrement utile lorsque l’on se connecte à divers serveurs et savoir quelle identité on a. Pour cela, la commande whoami (who am I) indique le nom de l’utilisateur courant.
Identifier le dossier courant
Le terminal travaille toujours depuis un dossier courant. Pour connaître ce dossier, écrire pwd (pour print work directory) dans le terminal.
pwd
Ici le terminal indique qu’il le situe dans le dossier /Users/alanna/Documents.
Lister le contenu d’un dossier
Il est souvent utile de connaître le contenu d’un dossier, sans passer par l’explorateur de fichiers. Pour cela, la commande ls permet d’en lire le contenu. La majorité des commandes shell permettent d’ajouter des options. Ces options sont préfixées par un tiret.
Dans le cas de la commande ls, deux options sont particulièrement utiles en termes d’affichage : -a affiche les fichiers cachés (ceux dont le nom commencent par un point) et -l affiche les fichiers sous forme de liste. Il est possible de les concaténer comme une seule option -al (au lieu d’ajouter deux options -a et -l).
# affiche les fichiers
ls
# affiche tous les fichiers (dont ceux cachés)
ls -a
# affiche tous les fichiers (dont ceux cachés) sous forme de liste
ls -al
ls -la affiche également les fichiers cachés et leurs informations détaillées.
drwxr-xr-x décrit le type et les permissions d’un fichier ou dossier :
-
r(read) : lire le contenu ; -
w(write) : modifier le contenu ; -
x(execute) : exécuter un fichier ou, pour un dossier, y entrer et accéder à son contenu ; -
-: permission absente.
| Utilisateur | Permissions | Signification |
|---|---|---|
| Propriétaire | rwx | lire, modifier et accéder au dossier |
| Groupe | r-x | lire et accéder au dossier, sans le modifier |
| Autres | r-x | lire et accéder au dossier, sans le modifier |
Se déplacer dans les dossiers
La commande cd (change directory) permet de changer de dossier.
# se déplacer dans le dossier "nom-du-dossier"
cd nom-du-dossier
# se déplacer dans le dossier parent
cd ..
# se déplacer dans le dossier personnel
cd ~
-
Dans Git Bash, un chemin Windows s’écrit avec des
/. Voici un exemple pour changer de disque.cd /d/Users/monutilisateur/Documents cd "/d/Users/monutilisateur/Documents/Documents personnels"Les guillemets permettent de gérer les chemins contenant des espaces. Dans la pratique, il est conseillé de ne pas utiliser d’espaces dans le nom des fichiers et dossiers.
-
Sous Linux et macOS, un chemin ressemble à ceci :
cd /Users/monutilisateur/Documents/ cd "/Users/monutilisateur/Documents/Documents personnels"Les guillemets permettent de gérer les chemins contenant des espaces. Dans la pratique, il est conseillé de ne pas utiliser d’espaces dans le nom des fichiers et dossiers.
Chemins relatifs et absolus
Un chemin relatif part du dossier courant :
exercices/notes.txt
Un chemin absolu indique l’emplacement complet du fichier.
-
Il commence généralement par une lettre de lecteur sous Windows :
Windows : C:\Users\utilisateur\Documents\exercices\notes.txt -
Il commence généralement par
/sous Linux et macOS :Linux : /home/utilisateur/Documents/exercices/notes.txt -
Il commence généralement par
/sous Linux et macOS :macOS : /Users/utilisateur/Documents/exercices/notes.txt
Il est recommandé d’utiliser des noms de fichiers simples, sans caractères spéciaux ni espaces. Sinon, il faut ajouter des guillemets autour du chemin vers le fichier
Créer des dossiers et des fichiers
Lors que l’on est connecté à un serveur, il est nécessaire de créer des dossiers ou des fichiers de configuration. Dans ces cas-là, on n’a pas accès à un explorateur de fichier. Il est donc nécessaire de savoir créer un dossier ou un fichier via le terminal.
Créer un dossier
La commande mkdir pour make directory permet de créer un dossier.
mkdir exercices
Créer et modifier un fichier
Pour créer un fichier vide, la commande touch permet de créer le fichier s’il n’existe pas. S’il existe déjà, elle actualise sa date de dernière modification sans modifier son contenu.
touch notes.txt
# Ouvre le fichier avec l'éditeur vi
vi notes.txt
# Ouvre le fichier avec l'éditeur vim, une version améliorée de vi
vim notes.txt
# Ouvre le fichier avec l'éditeur nano, plus simple pour débuter
nano notes.txt
La commande ouvre le fichier dans l’éditeur choisi. Si le fichier n’existe pas, l’éditeur le crée lorsqu’il est enregistré.
Installer un éditeur de texte
Pour vérifier si un éditeur est installé, il faut utiliser la commande command -v :
command -v nano
command -v vim
command -v vi
Si la commande affiche un chemin, l’éditeur est installé. Sinon, le terminal affiche généralement une erreur ou ne renvoie aucun résultat.
-
Git Bash contient généralement
vietvim.L’éditeur
nanopeut également être disponible selon la version de Git for Windows installée. -
Sur Ubuntu ou Debian :
sudo apt update sudo apt install nano vimSur Fedora :
sudo dnf install nano vim -
Sur macOS,
vietnanosont généralement déjà installés. Via Homebrew, il est possible d’installer ou mettre à jour Vim :# installer Homebrew /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" # installer Vim brew install vim
Après l’installation, il suffit de vérifier que l’éditeur est bien installé.
command -v nano
command -v vim
Modifier un fichier avec vi ou vim
vi et vim sont des éditeurs modaux : le clavier ne sert pas toujours à saisir du texte.
vim notes.txt
Au démarrage, le terminal est en mode commande. Pour commencer à écrire :
- Appuyer sur
ipour passer en mode insertion. - Saisir ou modifier le texte.
- Appuyer sur
Échappour revenir au mode commande. - Saisir
:wq, puis appuyer surEntréepour enregistrer et quitter.
Pour quitter sans enregistrer, utiliser :q!, puis appuyer sur Entrée.
Pour débuter,
nanoest plus simple à prendre en main : ses commandes sont affichées en bas de l’écran.
Modifier un fichier avec nano
Pour débuter, utiliser nano :
nano notes.txt
- Déplacer le curseur avec les flèches.
- Saisir ou modifier le texte directement.
- Appuyer sur
Ctrl + Opour enregistrer le fichier (Write Out). - Appuyer sur
Entréepour confirmer le nom du fichier. - Appuyer sur
Ctrl + Xpour quitternano.
Dans nano, le symbole ^ signifie la touche Ctrl. Par exemple, ^X signifie Ctrl + X. En quittant nano sans enregistrer, une confirmation permet de sauvegarder ou non les modifications.
Lire le contenu d’un fichier
cat notes.txt
Pour lire un long fichier page par page, en utilisant le curseur de la souris ou le pad pour faire défiler le texte. Pour quitter l’affichage du texte, il faut appuyer sur la touche q.
less notes.txt
Copier, déplacer et supprimer
Pour manipuler des fichiers et dossiers, de nombreuses commandes sont pertinentes : cp, mv et rm.
- La commande
cppour copy permet de copier un fichier d’un dossier vers un autre dossier. - La commande
mvpour mv permet de déplacer un fichier d’un dossier vers un autre dossier. Il n’existe pas de commande pour renommer un fichier, pour cela on utilise la commande move. - Enfin, la commande
rmpour remove permet de supprimer un fichier ou un dossier avec l’option-rpour itérer de manière récursive sur le dossier.
# Copie d'un fichier
cp path/to/old/folder/notes.txt path/to/old/folder/copie.txt
# Déplacement d'un fichier
mv copie.txt exercices/
# Renommage d'un fichier
mv old_name.txt new_name.txt
# Suppression d'un fichier
rm exercices/copie.txt
# Suppression d'un dossier
rm -r exercices/
Il est fortement conseillé de vérifier avec
pwdetlsle fichier/dossier à supprimer avant d’exécuter la commande de suppression. En effet, la suppression est irréversible.
Utiliser l’aide
Il est normal de ne pas connaître toutes les options d’une commande. Pour cela, deux options existent :
- utiliser l’option
--help, qui affiche une aide synthétique directement dans le terminal ; - utiliser le manuel avec
man. Il est généralement exhaustif. Pour le quitter, appuyez sur la toucheq.
ls --help
man ls
Variables d’environnement
Les variables d’environnement configurent le comportement des programmes. Par exemple, PATH indique où rechercher les exécutables. Les commandes ci-dessous permettent d’afficher la valeur de la variable d’environnement.
echo $PATH
Place à la pratique
Réaliser les opérations suivantes dans un dossier de travail :
- Afficher le dossier courant.
- Créer un dossier
boutique. - Entrer dans ce dossier et créer
fruits.txt. - Ajouter une liste de fruits dans le fichier :
pomme,poireetcerise. - Renommer le fichier en
fruits-locaux.txt. - Afficher son contenu.
- Créer une copie nommée
fruits-exotiques.txtcontenant les fruits suivants :ananas,papaye,mangueetbanane. - Créer un sous-dossier
archiveet y déplacer la copie. - Lister le contenu du dossier et de
archive. - Supprimer le fichier dans
archiveuniquement après avoir vérifié son chemin.