Pourquoi apprendre le terminal en 2025 ?
Quand vous débutez en développement web, il peut sembler tentant d’éviter le terminal au profit d’interfaces graphiques. Mais en 2025, maîtriser la ligne de commande est devenu une compétence fondamentale pour tout développeur sérieux.
Les avantages du terminal
- Rapidité : Les commandes sont souvent plus rapides que de cliquer dans des interfaces
- Puissance : Accès à des outils et fonctionnalités que les interfaces graphiques ne proposent pas
- Automatisation : Créez des scripts pour automatiser des tâches répétitives
- Contrôle total : Compréhension précise de ce qui se passe sur votre système
- Serveurs : Les serveurs Linux n’ont généralement pas d’interface graphique
- Git : Plus puissant et flexible en ligne de commande
- Outils de développement : npm, Node.js, Docker, etc. sont optimisés pour le terminal
- Déploiement et CI/CD : Indispensable pour les pipelines de déploiement
- Terminal : L’application qui affiche l’interface (exemple : Terminal sur macOS, PowerShell sur Windows)
- Shell : Le programme qui interprète vos commandes (Bash, Zsh, Fish, PowerShell)
- Bash : « Bourne Again Shell », le shell le plus répandu sur Linux et macOS
- CLI : « Command Line Interface », terme générique pour toute interface en ligne de commande
- Appuyez sur
Windows + X - Sélectionnez « Windows PowerShell » ou « Windows Terminal »
- Installé automatiquement avec Git for Windows
- Émule un environnement Bash sur Windows
- Commandes Linux/Unix standards
Terminal, Shell, Bash, CLI : Quelle différence ?
Accéder au terminal selon votre système
Windows
Windows propose plusieurs options :
1. PowerShell (recommandé pour Windows)
2. Git Bash (recommandé pour développeurs web)
3. WSL (Windows Subsystem for Linux) – La meilleure option
WSL vous donne accès à un véritable Linux sous Windows :
# Installer WSL (PowerShell en tant qu'administrateur)
wsl --install
# Après redémarrage, WSL2 avec Ubuntu est installé
# Lancez Ubuntu depuis le menu Démarrer
macOS
Le terminal est natif sur macOS :
Cmd + Espace pour ouvrir SpotlightApplications > Utilitaires > TerminalLe shell par défaut est Zsh (depuis macOS Catalina), très similaire à Bash.
Alternative recommandée : iTerm2 – Terminal amélioré avec plus de fonctionnalités.
Linux
Selon votre distribution :
Ctrl + Alt + TLe shell par défaut est généralement Bash.
Comprendre l’invite de commande (prompt)
Quand vous ouvrez le terminal, vous voyez quelque chose comme :
username@hostname:~/Documents$
Décomposition :
username : Votre nom d’utilisateurhostname : Nom de votre ordinateur~/Documents : Répertoire actuel (~ = dossier personnel)$ : Indique que vous êtes un utilisateur normal (pas administrateur)# : Indiquerait un utilisateur root/administrateurCommandes de navigation essentielles
pwd – Afficher le répertoire actuel
pwd signifie « Print Working Directory » (afficher le répertoire de travail).
pwd
# Affiche : /home/username/Documents
Utilisez cette commande quand vous êtes perdu pour savoir où vous vous trouvez dans l’arborescence.
ls – Lister les fichiers et dossiers
ls signifie « list » (lister).
# Liste basique
ls
# Liste détaillée avec permissions, taille, date
ls -l
# Afficher les fichiers cachés (commencent par .)
ls -a
# Liste détaillée incluant les fichiers cachés
ls -la
# Trier par date de modification
ls -lt
# Afficher la taille en format lisible (Ko, Mo, Go)
ls -lh
Exemple de sortie de ls -lh :
drwxr-xr-x 5 user group 160B Jan 15 10:30 mon-projet
-rw-r--r-- 1 user group 2.3K Jan 14 14:22 index.html
-rw-r--r-- 1 user group 1.5K Jan 14 15:10 style.css
Lecture :
d = dossier, - = fichierrwx (read, write, execute) pour owner, group, otherscd – Changer de répertoire
cd signifie « Change Directory » (changer de répertoire).
# Aller dans un dossier
cd Documents
# Aller dans un sous-dossier
cd Documents/projets/mon-site
# Remonter d'un niveau
cd ..
# Remonter de deux niveaux
cd ../..
# Retourner au dossier personnel
cd
# ou
cd ~
# Aller directement à un chemin absolu
cd /var/www/html
# Revenir au dossier précédent
cd -
Astuce : Utilisez la touche Tab pour l’autocomplétion des noms de dossiers :
cd Doc[Tab] # Se complète en : cd Documents/
Manipulation de fichiers et dossiers
mkdir – Créer un dossier
# Créer un dossier
mkdir mon-projet
# Créer plusieurs dossiers
mkdir dossier1 dossier2 dossier3
# Créer des dossiers imbriqués
mkdir -p projets/site-web/css
# -p crée les dossiers parents s'ils n'existent pas
touch – Créer un fichier vide
# Créer un fichier
touch index.html
# Créer plusieurs fichiers
touch index.html style.css script.js
# Créer un fichier dans un sous-dossier
touch css/main.css
cp – Copier des fichiers
# Copier un fichier
cp source.txt destination.txt
# Copier un fichier dans un dossier
cp index.html backup/
# Copier un dossier entier (récursif)
cp -r mon-projet mon-projet-backup
# Copier plusieurs fichiers dans un dossier
cp .html backup/
mv – Déplacer ou renommer
# Renommer un fichier
mv ancien-nom.txt nouveau-nom.txt
# Déplacer un fichier
mv fichier.txt dossier/
# Déplacer un dossier
mv ancien-dossier nouveau-emplacement/
# Renommer un dossier
mv ancien-nom nouveau-nom
rm – Supprimer des fichiers
Attention : La suppression en ligne de commande est définitive (pas de corbeille) !
# Supprimer un fichier
rm fichier.txt
# Supprimer plusieurs fichiers
rm fichier1.txt fichier2.txt
# Supprimer tous les fichiers .log
rm .log
# Supprimer un dossier et tout son contenu (récursif)
rm -r dossier/
# Forcer la suppression sans confirmation
rm -rf dossier/
# ⚠️ DANGER : cette commande supprime tout sans demander confirmation !
Règle d’or : Toujours vérifier deux fois avant d’utiliser rm -rf !
cat – Afficher le contenu d’un fichier
# Afficher tout le contenu d'un fichier
cat index.html
# Afficher plusieurs fichiers
cat fichier1.txt fichier2.txt
# Créer un fichier avec du contenu
cat > nouveau.txt
# Tapez votre contenu
# Appuyez sur Ctrl+D pour terminer
less – Lire un fichier page par page
# Ouvrir un fichier en mode lecture
less fichier.txt
# Navigation :
# Espace : page suivante
# b : page précédente
# / : rechercher
# q : quitter
head et tail – Afficher le début ou la fin
# Afficher les 10 premières lignes
head fichier.txt
# Afficher les 5 premières lignes
head -n 5 fichier.txt
# Afficher les 10 dernières lignes
tail fichier.txt
# Suivre un fichier en temps réel (logs)
tail -f server.log
Commandes de recherche
find – Rechercher des fichiers
# Trouver tous les fichiers .html dans le dossier actuel
find . -name ".html"
# Trouver tous les dossiers nommés "nodemodules"
find . -type d -name "nodemodules"
# Trouver tous les fichiers modifiés dans les dernières 24h
find . -mtime -1
# Trouver et supprimer tous les fichiers .log
find . -name ".log" -delete
grep – Rechercher dans le contenu
# Rechercher un mot dans un fichier
grep "fonction" script.js
# Recherche insensible à la casse
grep -i "erreur" log.txt
# Rechercher dans tous les fichiers .js
grep "console.log" .js
# Recherche récursive dans tous les sous-dossiers
grep -r "TODO" .
# Afficher le numéro de ligne
grep -n "import" index.js
Commandes système utiles
clear – Nettoyer l’écran
clear
# ou raccourci : Ctrl+L
history – Historique des commandes
# Afficher les dernières commandes
history
# Rechercher dans l'historique
history | grep git
# Réexécuter la commande numéro 42
!42
# Réexécuter la dernière commande
!!
# Réexécuter la dernière commande commençant par "git"
!git
echo – Afficher du texte
# Afficher un message
echo "Hello World"
# Afficher une variable d'environnement
echo $PATH
# Créer un fichier avec du contenu
echo "console.log('test');" > test.js
# Ajouter du contenu à un fichier existant
echo "nouvelle ligne" >> fichier.txt
which – Localiser une commande
# Trouver où est installé Node.js
which node
# Retourne : /usr/local/bin/node
# Vérifier si une commande existe
which python3
Redirections et pipes
Redirections
# Rediriger la sortie vers un fichier (écrase le fichier)
ls -la > liste.txt
# Ajouter à la fin d'un fichier
ls -la >> liste.txt
# Rediriger les erreurs
npm install 2> errors.log
# Rediriger sortie et erreurs
npm install > output.log 2>&1
Pipes (|) – Chaîner des commandes
Le pipe | envoie la sortie d’une commande à l’entrée de la suivante :
# Lister les fichiers et compter les lignes
ls -la | wc -l
# Rechercher "error" dans tous les .log et compter
grep "error" .log | wc -l
# Afficher les processus Node.js
ps aux | grep node
# Trouver les plus gros fichiers
du -ah | sort -rh | head -n 10
Commandes pour développeurs web
npm – Gestionnaire de paquets Node.js
# Initialiser un projet Node.js
npm init
# ou version rapide (accepte toutes les valeurs par défaut)
npm init -y
# Installer un package
npm install express
# Installer en tant que dépendance de développement
npm install --save-dev eslint
# Installer globalement
npm install -g nodemon
# Désinstaller un package
npm uninstall package-name
# Mettre à jour les packages
npm update
# Lancer un script défini dans package.json
npm run dev
npm start
npm test
Git – Commandes essentielles
# Cloner un dépôt
git clone https://github.com/user/repo.git
# Statut du dépôt
git status
# Ajouter des fichiers
git add .
# Commit
git commit -m "Message du commit"
# Pousser vers GitHub
git push origin main
# Récupérer les modifications
git pull origin main
# Créer une branche
git checkout -b nouvelle-branche
# Voir l'historique
git log --oneline
Node.js et serveurs de développement
# Vérifier la version de Node.js
node --version
# Exécuter un fichier JavaScript
node script.js
# Démarrer un serveur de développement (si configuré)
npm run dev
# Créer une nouvelle app React
npx create-react-app mon-app
# Créer une nouvelle app Next.js
npx create-next-app@latest mon-app
# Lancer un serveur HTTP simple (Python)
python3 -m http.server 8000
Variables d’environnement
Afficher et définir des variables
# Afficher une variable
echo $PATH
echo $HOME
# Définir une variable temporaire
export APIKEY="votre-clé-secrète"
# Utiliser la variable
echo $APIKEY
# Lancer une commande avec une variable
NODEENV=production npm start
Fichier .env pour les projets
Créez un fichier .env à la racine du projet :
DATABASEURL=postgresql://localhost:5432/mydb
APIKEY=abc123xyz
PORT=3000
Chargez les variables avec un package comme dotenv :
npm install dotenv
Dans votre code JavaScript :
require('dotenv').config();
console.log(process.env.APIKEY);
Raccourcis clavier indispensables
| Raccourci | Action |
|---|---|
Tab |
Autocomplétion des commandes et chemins |
Ctrl + C |
Interrompre la commande en cours |
Ctrl + D |
Fermer le terminal (EOF) |
Ctrl + L |
Nettoyer l’écran (équivalent de clear) |
Ctrl + A |
Aller au début de la ligne |
Ctrl + E |
Aller à la fin de la ligne |
Ctrl + U |
Supprimer tout avant le curseur |
Ctrl + K |
Supprimer tout après le curseur |
Ctrl + R |
Rechercher dans l’historique |
↑ ↓ |
Naviguer dans l’historique des commandes |
Ctrl + Z |
Mettre le processus en arrière-plan |
Créer des alias pour gagner du temps
Les alias sont des raccourcis pour vos commandes fréquentes.
Définir des alias temporaires
# Créer un alias
alias ll="ls -lah"
alias gs="git status"
alias gp="git push"
# Utiliser l'alias
ll # Équivaut à : ls -lah
Alias permanents (Bash)
Ajoutez vos alias dans ~/.bashrc (Linux) ou ~/.bashprofile (macOS) :
# Ouvrir le fichier de configuration
nano ~/.bashrc
# Ajouter vos alias à la fin
alias ll="ls -lah"
alias ..="cd .."
alias gs="git status"
alias gaa="git add ."
alias gc="git commit -m"
alias gp="git push"
alias dev="npm run dev"
# Sauvegarder (Ctrl+O, Entrée, Ctrl+X)
# Recharger la configuration
source ~/.bashrc
Alias permanents (Zsh – macOS)
Sur macOS avec Zsh, modifiez ~/.zshrc de la même façon.
Scripts Bash basiques
Créer votre premier script
Un script Bash est un fichier contenant une série de commandes.
# Créer un fichier script
touch deploy.sh
# Éditer le fichier
nano deploy.sh
Contenu de deploy.sh :
#!/bin/bash
echo "Début du déploiement..."
# Pull les dernières modifications
git pull origin main
# Installer les dépendances
npm install
# Build du projet
npm run build
echo "Déploiement terminé !"
Rendre le script exécutable et le lancer :
# Rendre exécutable
chmod +x deploy.sh
# Exécuter le script
./deploy.sh
Script avec des variables
#!/bin/bash
PROJECTNAME="Mon Site Web"
VERSION="1.0.0"
echo "Projet : $PROJECT_NAME"
echo "Version : $VERSION"
# Demander une entrée utilisateur
read -p "Entrez votre nom : " USERNAME
echo "Bonjour, $USERNAME !"
Bonnes pratiques et astuces
1. Toujours vérifier avant de supprimer
# D'abord lister ce qui sera supprimé
ls .log
# Puis supprimer
rm .log
2. Utiliser Tab pour éviter les erreurs de frappe
L’autocomplétion vous évite de taper des noms de fichiers compliqués et réduit les erreurs.
3. Créer des sauvegardes avant des opérations risquées
# Sauvegarder avant de modifier
cp config.json config.json.backup
4. Documenter vos scripts
#!/bin/bash
# Script de déploiement automatique
# Auteur: Votre Nom
# Date: 2025-01-15
# Usage: ./deploy.sh
echo "Démarrage..."
5. Utiliser && pour chaîner des commandes
# Exécute la commande suivante seulement si la précédente réussit
npm install && npm run build && npm start
Ressources pour aller plus loin
Tutoriels interactifs
Aide-mémoire
# Navigation
pwd # Afficher le répertoire actuel
ls -lah # Lister les fichiers détaillés
cd chemin # Changer de dossier
cd .. # Remonter d'un niveau
# Fichiers
touch fichier.txt # Créer un fichier
mkdir dossier # Créer un dossier
cp source dest # Copier
mv ancien nouveau # Déplacer/renommer
rm fichier # Supprimer
cat fichier # Afficher le contenu
# Recherche
find . -name "*.js" # Trouver des fichiers
grep "text" fichier # Rechercher dans le contenu
# Système
history # Historique des commandes
clear # Nettoyer l'écran
which commande # Localiser une commande
# Git
git status # Statut
git add . # Ajouter tous les fichiers
git commit -m "msg" # Commit
git push # Pousser
# Node.js
npm install # Installer dépendances
npm run dev # Lancer script dev
node script.js # Exécuter un fichier
Conclusion : Le terminal, votre allié quotidien
Le terminal peut sembler intimidant au début, mais avec de la pratique, il deviendra votre meilleur ami. Voici comment progresser :
cd, ls, pwdman commande ou commande --helpExercice pratique pour aujourd’hui :
Le terminal est une compétence qui vous suivra tout au long de votre carrière. Plus vous l’utilisez, plus il devient naturel. Bonne exploration !