All guides
Intermediate-AdvancedSelf-pacedFree GuideSection 1/33

Terminal et ligne de commande

Learn to build and check a web application with development tools and AI assistants. Practise design, coding and validation.

The full lessons for this course are currently available in French. Use the section menu to navigate the French course.

💡

Free content, available without an account. Tools and models change: use the current model guide to check their versions. Models and sources

Section 13.1.1 : Terminal et ligne de commande

🎯 Objectif pédagogique

Maîtriser le terminal comme outil principal de développement. À la fin de cette section, vous naviguerez dans votre système de fichiers, manipulerez des fichiers et exécuterez des commandes complexes avec confiance.


Le terminal : votre cockpit de développeur

Tout développeur professionnel passe une partie significative de son temps dans le terminal. C'est l'interface textuelle qui vous donne un contrôle total sur votre machine, vos fichiers, vos programmes et vos serveurs. Si l'interface graphique est le volant d'une voiture, le terminal est le cockpit d'un avion : plus complexe, mais infiniment plus puissant.

Le terminal (aussi appelé shell, console ou CLI — Command Line Interface) est un interpréteur qui exécute des commandes textuelles. Sur macOS et Linux, vous utiliserez principalement Bash ou Zsh. Sur Windows, PowerShell ou le Windows Terminal avec WSL (Windows Subsystem for Linux).

Anatomie d'une commande

Une commande suit toujours la même structure :

commande [options] [arguments]

# Exemples :
ls -la Documents/
#  │  │    └── argument (le dossier cible)
#  │  └── options (-l pour détaillé, -a pour fichiers cachés)
#  └── commande (lister les fichiers)

Le système de fichiers est organisé en arborescence. Votre position actuelle est le répertoire courant (working directory). Toute commande s'exécute relativement à cette position.

# Où suis-je ?
pwd                          # Print Working Directory

# Que contient ce dossier ?
ls                           # Liste simple
ls -l                        # Détaillé (permissions, taille, date)
ls -la                       # Avec fichiers cachés (.gitignore, .env)
ls -lah                      # Avec tailles lisibles (Ko, Mo, Go)

# Se déplacer
cd Documents                 # Entrer dans Documents
cd ..                        # Remonter d'un niveau
cd ../..                     # Remonter de deux niveaux
cd ~                         # Aller au répertoire home
cd -                         # Retourner au dernier répertoire

Astuce productivité

Utilisez la touche Tab pour l'autocomplétion. Tapez les premières lettres d'un nom de fichier ou dossier, puis appuyez sur Tab. Le terminal complète automatiquement. En cas d'ambiguïté, appuyez deux fois sur Tab pour voir les options.

Manipulation de fichiers et dossiers

# Créer
touch index.html             # Créer un fichier vide
mkdir mon-projet             # Créer un dossier
mkdir -p src/components/ui   # Créer une arborescence complète

# Copier
cp fichier.txt copie.txt     # Copier un fichier
cp -r dossier/ backup/       # Copier un dossier récursivement

# Déplacer / Renommer
mv ancien.txt nouveau.txt    # Renommer
mv fichier.txt Documents/    # Déplacer

# Supprimer (ATTENTION : pas de corbeille !)
rm fichier.txt               # Supprimer un fichier
rm -r dossier/               # Supprimer un dossier
rm -ri dossier/              # Supprimer avec confirmation

# Lire le contenu
cat fichier.txt              # Afficher tout le contenu
head -20 fichier.txt         # Les 20 premières lignes
tail -20 fichier.txt         # Les 20 dernières lignes
less fichier.txt             # Navigation pagée (q pour quitter)

Recherche et filtrage

# Chercher du texte dans des fichiers
grep 'def initialize' app/models/*.rb    # Chercher dans les fichiers Ruby
grep -r 'TODO' src/                      # Recherche récursive
grep -rn 'function' --include='*.js'     # Avec numéros de ligne

# Trouver des fichiers
find . -name '*.rb'                      # Tous les fichiers .rb
find . -type d -name 'node_modules'      # Trouver des dossiers

# Compter
wc -l fichier.txt                        # Nombre de lignes
wc -w fichier.txt                        # Nombre de mots

Le pipe : la puissance de la composition

Le pipe (|) connecte la sortie d'une commande à l'entrée de la suivante, permettant de créer des pipelines de traitement de données :

# Compter les erreurs dans un log
cat server.log | grep 'ERROR' | wc -l

# Extraire les emails uniques d'un CSV
cut -d',' -f3 contacts.csv | sort | uniq | grep '@'

# Top 5 des plus gros fichiers
find . -type f -exec ls -la {} \; | sort -k5 -rn | head -5
Loading diagram…

Variables d'environnement

Les variables d'environnement sont des valeurs globales accessibles par tous les programmes :

echo $HOME                   # Votre répertoire home
echo $PATH                   # Dossiers où chercher les commandes
echo $USER                   # Votre nom d'utilisateur

# Définir une variable
export API_KEY='sk-abc123'

# Persistance dans .zshrc
echo 'export API_KEY="sk-abc123"' >> ~/.zshrc
source ~/.zshrc

Exercice pratique : créer un projet web

# 1. Créer la structure
mkdir -p mon-site/css mon-site/js mon-site/images
touch mon-site/index.html mon-site/css/style.css mon-site/js/app.js

# 2. Vérifier
find mon-site -type f

# 3. Archiver
tar -czf mon-site.tar.gz mon-site/
ls -lh mon-site.tar.gz
Quick Check

Quelle commande recherche récursivement le mot ERROR dans les fichiers .log ?

Quick Check

Que fait la commande mkdir -p src/components/ui ?

Learn AI, from prompts to agents

15 free guidesQuizzes, diagrams and workshopsNo account needed

Your progress

Progress is self-reported and stored in your browser. The final completion record is not a qualification or an independent assessment.

View progress and completion record

Learn AI, from prompts to agents

15 free guidesQuizzes, diagrams and workshopsNo account needed

One practical AI workflow in your inbox

Methods, resources and new exercises. Free, unsubscribe at any time.