Général 13 min de lecture · 2 795 mots

Introduction à la ligne de commande (Terminal/Bash) pour développeurs

Le terminal est un outil indispensable pour tout développeur. Apprenez les commandes Bash essentielles pour naviguer, manipuler des fichiers, utiliser Git et automatiser vos tâches de développement.

Estimated reading time: 13 minutes

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.

Table of Contents

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, Shell, Bash, CLI : Quelle différence ?

  • 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
  • Accéder au terminal selon votre système

    Windows

    Windows propose plusieurs options :

    1. PowerShell (recommandé pour Windows)

  • Appuyez sur Windows + X
  • Sélectionnez « Windows PowerShell » ou « Windows Terminal »
  • 2. Git Bash (recommandé pour développeurs web)

  • Installé automatiquement avec Git for Windows
  • Émule un environnement Bash sur Windows
  • Commandes Linux/Unix standards
  • 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 Spotlight
  • Tapez « Terminal » et appuyez sur Entrée
  • Ou allez dans Applications > Utilitaires > Terminal
  • Le 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 :

  • Ubuntu/Debian : Ctrl + Alt + T
  • Ou : Menu Applications > Terminal
  • Le 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’utilisateur
  • hostname : Nom de votre ordinateur
  • ~/Documents : Répertoire actuel (~ = dossier personnel)
  • $ : Indique que vous êtes un utilisateur normal (pas administrateur)
  • # : Indiquerait un utilisateur root/administrateur
  • Commandes 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 :

  • Premier caractère : d = dossier, - = fichier
  • Permissions : rwx (read, write, execute) pour owner, group, others
  • Taille du fichier
  • Date de modification
  • Nom du fichier/dossier
  • cd – 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

  • Codecademy – Learn the Command Line : Cours interactif gratuit
  • The Linux Command Line (book) : Livre gratuit en ligne
  • Bash Academy : Guide complet sur Bash
  • 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 :

  • Pratiquez quotidiennement : Forcez-vous à utiliser le terminal au lieu du Finder/Explorateur
  • Commencez simple : Maîtrisez d’abord cd, ls, pwd
  • Utilisez l’aide intégrée : man commande ou commande --help
  • Créez des alias : Simplifiez vos commandes fréquentes
  • Expérimentez : Testez dans un dossier de test pour éviter les catastrophes
  • Lisez les erreurs : Les messages d’erreur sont souvent explicites
  • Exercice pratique pour aujourd’hui :

  • Créez un dossier de projet via le terminal
  • Naviguez dans ce dossier
  • Créez la structure de fichiers d’un site web (index.html, style.css, script.js)
  • Initialisez Git dans ce dossier
  • Faites votre premier commit
  • Créez un alias pour afficher vos fichiers
  • 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 !

    Une remarque, un retour ?

    Cet article est vivant — corrections, contre-arguments et retours de production sont les bienvenus. Trois canaux, choisissez celui qui vous convient.