L'environnement de travail : le terminal et un premier fichier de code

Objectifs de la leçon
  • Faire la différence entre un terminal, un shell et une commande
  • Décomposer une commande en ses parties — nom, arguments et options
  • Expliquer pourquoi on écrit le code dans un fichier, et ce que signifie l’extension .py
  • Connaître une structure de dossiers ordonnée pour le cours et les règles de nommage des fichiers et des dossiers

Dans cette leçon

Cette leçon se compose de deux chapitres courts, dans le même ordre que les diapositives. Les outils eux-mêmes (Python, VS Code, Git et Docker) ont déjà été installés dans le thème Installations.

  1. Chapitre 1 — le terminal, le shell et les commandes de base (PowerShell / Bash)
  2. Chapitre 2 — le dossier de travail et un premier fichier Python

Chapitre 1 : Le terminal, le shell et les commandes de base (PowerShell / Bash)

Qu’allons-nous apprendre ?

  • La différence entre un terminal et un shell.
  • Comment une commande est construite.
  • Les commandes de base que chaque développeur utilise tous les jours : naviguer, lister, créer, copier, déplacer, supprimer.
  • PowerShell (Windows) face à Bash/Zsh (Mac/Linux).

Pourquoi en avons-nous besoin ?

  • Git, l’installation de paquets avec pip et le lancement d’un serveur (les thèmes backend et bases de données) se font tous depuis le terminal.
  • Les vrais serveurs dans le cloud n’ont pas d’interface graphique — seulement un terminal.
  • Une fois qu’on s’y est habitué, le terminal est plus rapide que la souris : une seule commande peut créer 5 dossiers d’un coup.

Explication à partir des bases

Terminal, shell, commande

Trois termes qui prêtent à confusion au début :

TermeCe que c’estExemple
TerminalLa fenêtre : le programme qui affiche du texte et reçoit la saisie du clavier.Windows Terminal, le terminal de VS Code, Terminal.app sur Mac
ShellL’interpréteur : le programme qui tourne dans la fenêtre, lit ce que vous avez tapé et l’exécute.PowerShell, Bash, Zsh, cmd
CommandeL’instruction elle-même.cd week-1
Analogie

Le terminal est le téléphone, le shell est la personne au bout du fil qui comprend la langue et fait ce que vous demandez, et la commande est la phrase que vous prononcez. On peut tenir le même téléphone (terminal) et parler à différentes personnes qui comprennent différentes langues (PowerShell ou Bash).

  • PowerShell — le shell moderne de Windows.
  • Bash — le shell courant sous Linux. Zsh — celui par défaut sur Mac, presque identique à Bash pour les commandes de base.
  • cmd — l’ancien shell de Windows. Nous ne l’utiliserons pas.

L’invite de commande (prompt)

L’invite (prompt) est le texte que le shell affiche pendant qu’il attend une commande :

PS C:\Users\dana\dev\kodkod6>        ← PowerShell: "PS" + current directory
dana@laptop:~/dev/kodkod6$           ← Bash: user@computer:directory$

~ (tilde) dans Bash = le dossier personnel de l’utilisateur.

Comment une commande est construite

command   argument(s)    flag(s)/option(s)
  cp      notes.txt  backup.txt
  ls      -la
  mkdir   week-2
  • Commande — quoi faire.
  • Argument — sur quoi le faire (un fichier, un dossier).
  • Option (flag) — comment le faire. Dans Bash : -a ou --all. Dans PowerShell : -Recurse, -Force.
  • Un espace sépare les parties. C’est pourquoi les noms contenant des espaces ont besoin de guillemets : cd "My Folder". Et c’est une raison de plus de ne pas mettre d’espaces dans les noms.

Syntaxe

Le tableau des commandes principales

ActionPowerShellBash / Zsh
Où suis-je ?pwdpwd
Qu’y a-t-il ici ?ls (ou dir)ls
Y compris les fichiers cachésls -Forcels -a
Entrer dans un dossiercd week-1cd week-1
Remonter d’un dossiercd ..cd ..
Aller au dossier personnelcd ~cd ~ (ou simplement cd)
Créer un dossiermkdir week-2mkdir week-2
Créer un fichier videNew-Item notes.txttouch notes.txt
Afficher le contenu d’un fichiercat notes.txtcat notes.txt
Copiercp a.txt b.txtcp a.txt b.txt
Déplacer / renommermv a.txt b.txtmv a.txt b.txt
Supprimer un fichierrm notes.txtrm notes.txt
Supprimer un dossier et son contenurm -r folderrm -r folder
Effacer l’écrancls (ou clear)clear
Aide sur une commandeGet-Help cpman cp (sortir : q)

Dans PowerShell, ls, cat, cp, mv, rm sont des alias de commandes plus longues (Get-ChildItem, Get-Content, Copy-Item…). Ainsi, les mêmes commandes de base fonctionnent dans les deux environnements.

Des raccourcis clavier qui font gagner des heures

ToucheCe qu’elle fait
TabAutocomplétion des noms de fichiers et de dossiers. Tapez cd we + Tab et vous obtenez cd week-1.
↑ / ↓Parcourir les commandes précédentes.
Ctrl + CArrêter la commande en cours.
Ctrl + LEffacer l’écran.

Premier exemple de code

Naviguer et vérifier. Au passage, nous verrons l’invite changer :

pwd
cd ~
pwd
cd dev\kodkod6
ls

Exemple de sortie :

Path
----
C:\Users\dana\dev\kodkod6\week-1

Path
----
C:\Users\dana

    Directory: C:\Users\dana\dev\kodkod6

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d----          06/10/2026     09:12                sandbox
d----          06/10/2026     08:40                week-1

Analyse du code ligne par ligne

CommandeCe qui s’est passé
pwdprint working directory : affiche où nous sommes.
cd ~Saut vers le dossier personnel.
pwdConfirme que nous nous sommes bien déplacés.
cd dev\kodkod6Un chemin relatif, du dossier personnel vers dev, puis vers kodkod6.
lsAffiche le contenu. Dans PowerShell, d dans la colonne Mode indique un répertoire (dossier).

Un autre exemple

Nous construisons la structure de dossiers du thème Python uniquement avec des commandes : créer des fichiers, copier, renommer et supprimer :

cd ~\dev\kodkod6
mkdir week-2
cd week-2
mkdir day-1, day-2, day-3
New-Item day-1\notes.txt
ls
cp day-1\notes.txt day-2\notes.txt
mv day-2\notes.txt day-2\summary.txt
ls day-2
rm day-1\notes.txt
cd ..

Dans Bash/Zsh (Mac / Linux), la même chose :

cd ~/dev/kodkod6
mkdir week-2
cd week-2
mkdir day-1 day-2 day-3
touch day-1/notes.txt
ls
cp day-1/notes.txt day-2/notes.txt
mv day-2/notes.txt day-2/summary.txt
ls day-2
rm day-1/notes.txt
cd ..

Analyse :

  • mkdir day-1, day-2, day-3 — dans PowerShell, on peut créer plusieurs dossiers d’un coup avec des virgules. Dans Bash — avec des espaces.
  • New-Item / touch — créent un fichier vide.
  • cp source destination — copier : la source reste, et une copie est créée.
  • mv source destination — déplacer. Si la destination est dans le même dossier avec un autre nom, c’est en fait un renommage.
  • rm — supprimer.
  • cd .. — retour à kodkod6.

Erreur courante

L’erreur : croire que rm est comme « supprimer » dans l’explorateur de fichiers.

rm n’envoie pas à la corbeille !

Un fichier supprimé avec rm est supprimé définitivement. Il n’y a ni annulation ni corbeille. En particulier : ne lancez jamais rm -r sur un chemin dont vous n’êtes pas sûr, et ne copiez jamais depuis Internet des commandes contenant rm -rf / ou sudo rm.

Une habitude sûre : avant rm, lancez ls sur exactement le même chemin et vérifiez ce que vous allez supprimer.

Deuxième erreur — des espaces dans les noms :

cd My Projects
Set-Location: A positional parameter cannot be found that accepts argument 'Projects'.

Le shell a vu deux arguments : My et Projects. La correction : cd "My Projects". Et mieux dès le départ : my-projects.

Troisième erreur — exécuter du code Python dans le shell :

PS> print("hi")

print est une commande Python, pas PowerShell. Elle s’exécute dans Python : python -c "print('hi')", ou dans un fichier .py. Et inversement : cd ne fonctionne pas dans un fichier Python.

Résumé

  • Terminal = la fenêtre. Shell = l’interpréteur (PowerShell / Bash / Zsh). Commande = l’instruction.
  • Une commande = nom + arguments + options, séparés par des espaces.
  • Naviguer : pwd, ls, cd, cd .., cd ~.
  • Fichiers : mkdir, New-Item / touch, cp, mv, rm. Et rm n’envoie pas à la corbeille.
  • Tab pour l’autocomplétion, ↑ pour la commande précédente, Ctrl + C pour arrêter.

Documentation officielle

Chapitre 2 : Le dossier de travail et un premier fichier Python

Qu’allons-nous apprendre ?

  • Pourquoi on écrit le code dans un fichier, et ce qu’est vraiment un fichier de code.
  • Comment construire un dossier de travail (workspace folder) ordonné pour tout le cours.
  • Ce qui se passe quand on exécute un fichier : l’interpréteur le lit de haut en bas.
  • Ce qu’est le répertoire courant, et pourquoi il provoque l’erreur de débutant la plus fréquente.

Pourquoi en avons-nous besoin ?

  • Une ligne tapée dans le terminal disparaît dès que l’on ferme la fenêtre. Un vrai programme fait des dizaines et des centaines de lignes — il faut les enregistrer.
  • Dans le cours, nous écrirons des dizaines de fichiers : exercices, projets, serveurs. Sans ordre, au bout d’une semaine vous ne retrouverez plus rien. Les développeurs professionnels gardent chaque projet dans son propre dossier — et c’est aussi ainsi que Git et VS Code s’attendent à travailler : projet = dossier.
  • Beaucoup d’erreurs de débutants (« le fichier est introuvable ») arrivent parce que le terminal se trouve dans un autre dossier que le fichier.

Explication à partir des bases

Fichier et dossier

  • Fichier — une unité d’information enregistrée sur le disque : un document, une image ou un fichier de code.
  • Dossier / répertoire — un « tiroir » qui contient des fichiers et d’autres dossiers.
  • Chemin — l’adresse complète d’un fichier, depuis la racine jusqu’à lui. Par exemple : C:\dev\kodkod6\week-1\hello.py.

Ce qu’est vraiment un fichier de code

TexteUn fichier de code est un fichier texte ordinaire — on peut l’ouvrir dans n’importe quel éditeur de texte.
.pyL’extension dit au système d’exploitation et à VS Code : « ceci est du code Python ». VS Code le voit et active la coloration syntaxique et un bouton d’exécution.
InterpréteurLe programme Python lit le fichier et l’exécute. Sans lui, le fichier n’est que du texte.
De haut en basL’exécution commence à la première ligne et continue ligne après ligne jusqu’à la fin.

Le répertoire courant

Le terminal « se tient » toujours dans un dossier — il apparaît à gauche du curseur (l’invite) :

PS C:\dev\kodkod6\week-1>

Quand vous tapez python hello.py, Python cherche hello.py uniquement dans le répertoire courant. Si le fichier est dans un autre dossier — il ne le trouvera pas.

Analogie

Le terminal est comme une personne qui se tient dans une pièce précise d’une maison. Si vous lui demandez « d’apporter le livre de l’étagère », elle ne cherchera que sur l’étagère de la pièce où elle se trouve. Si le livre est dans une autre pièce, il faut d’abord lui dire de changer de pièce (la commande cd), ou lui donner l’adresse complète.

Structure de dossiers recommandée pour le cours

C:\dev\kodkod6\          (Mac: ~/dev/kodkod6/)
├── week-1\
│   └── hello.py
├── week-2\
├── week-3\
└── week-4\
  • Un seul dossier pour tout le cours (kodkod6), avec un dossier pour chaque semaine à l’intérieur.
  • Règles de nommage : lettres anglaises minuscules, sans espaces et sans hébreu. À la place d’un espace, utilisez un tiret - pour les dossiers et un tiret bas _ pour les fichiers Python (my_file.py). Les espaces et les caractères non anglais dans un chemin posent problème à de nombreux outils.
  • Dans VS Code, ouvrez tout le dossier kodkod6 (File → Open Folder), pas un seul fichier.

Comment exécuter un fichier

Supposons que le dossier week-1 contienne un fichier hello.py avec une seule ligne qui affiche Hello, World!. Le formateur montrera son exécution à l’écran :

cd week-1
python hello.py

Sortie :

Hello, World!
CommandeCe qu’elle fait
cd week-1change directory — déplace le terminal vers le dossier où se trouve le fichier.
python hello.pyLance l’interpréteur et lui passe le fichier. Il le lit de haut en bas et exécute chaque ligne.

Une deuxième façon d’exécuter : le bouton Run. Dans VS Code, quand un fichier .py est ouvert, il y a un triangle ▷ en haut à droite (Run Python File). Un clic ouvre un terminal et exécute le fichier avec son chemin complet — pas besoin de cd.

Erreur courante

L’erreur : exécuter depuis le mauvais dossier.

PS C:\dev\kodkod6> python hello.py
can't open file '...hello.py':
[Errno 2] No such file or directory
  • Le terminal se trouve dans kodkod6, et le fichier est dans kodkod6\week-1.
  • Python cherche le fichier uniquement dans le répertoire courant.
  • La correction : d’abord cd week-1, et seulement ensuite exécuter. Ou exécuter avec le chemin : python week-1\hello.py.

Deuxième erreur : ne pas enregistrer avant d’exécuter. Si l’onglet du fichier affiche un rond ⚪ au lieu de ✕, le fichier n’a pas été enregistré, et Python exécutera l’ancienne version. Il est conseillé d’activer File → Auto Save.

Résumé

  • Un fichier de code est un fichier texte. L’extension .py indique que c’est du code Python.
  • Projet = dossier. Des noms anglais, sans espaces : kodkod6/week-1/hello.py.
  • L’interpréteur lit le fichier et l’exécute de haut en bas.
  • Le répertoire courant est l’endroit où se tient le terminal — et c’est là que Python cherche le fichier.
  • Exécutez avec cd vers le dossier puis python file.py, ou avec le bouton ▷ de VS Code.

Documentation officielle

Exercices

Questions de compréhension sur le contenu de la leçon — sans code.

Exercice 1: Terminal, shell ou commande ?

Pour chaque phrase, indiquez si elle décrit un terminal, un shell ou une commande :

  1. La fenêtre où l’on tape et où l’on voit la sortie.
  2. mkdir week-2
  3. PowerShell sous Windows, ou Bash sur Mac et Linux.
  4. Le programme qui comprend ce que nous avons tapé et l’exécute.
  5. cd ..
Afficher la solution
  1. Terminal — la fenêtre.
  2. Commande — une instruction : créer un dossier.
  3. Shell — ce sont les noms de différents shells.
  4. Shell — le « cerveau » qui interprète et exécute les commandes.
  5. Commande — une instruction : remonter d’un dossier.

La règle : le terminal est la fenêtre, le shell est le programme qui tourne à l’intérieur, et la commande est ce que vous tapez.

Exercice 2: Quel est le chemin complet ?

La structure de dossiers du cours :

C:\dev\kodkod6\
├── week-1\
│   └── hello.py
└── week-2\
  1. Quel est le chemin complet du fichier hello.py ?
  2. Le terminal se trouve dans C:\dev\kodkod6\week-2. Quelle commande le ramène à kodkod6 ?
  3. Pourquoi est-il conseillé de garder tous les fichiers du cours dans un seul dossier, et pas sur le bureau ?
Afficher la solution
  1. C:\dev\kodkod6\week-1\hello.py
  2. cd .. — deux points = remonter d’un dossier.
  3. Quand tout est sous kodkod6, il est facile de retrouver n’importe quel fichier même un mois plus tard, les chemins sont courts et sans espaces, et on peut ouvrir tout le cours dans VS Code d’un coup.

Exercice 3: Comment une commande est construite

Dans chacune des commandes suivantes — quel est le nom de la commande, quel est l’argument et quelle est l’option (s’il y en a) ?

git --version
cp notes.txt backup.txt
ls -la
mkdir week-2
Afficher la solution
CommandeNom de la commandeArgumentsOption
git --versiongit—--version
cp notes.txt backup.txtcpnotes.txt, backup.txt—
ls -lals—-la
mkdir week-2mkdirweek-2—

La règle : commande = quoi faire, argument = sur quoi le faire, option = comment (un changement de comportement, commence par un tiret).

Exercice 4: Naviguer dans les dossiers

Le terminal se trouve dans C:\dev\kodkod6. Écrivez la suite de commandes qui fait ce qui suit, dans l’ordre :

  1. Crée un dossier nommé week-1.
  2. Y entre.
  3. Affiche où se trouve maintenant le terminal.
  4. Remonte d’un dossier.
Afficher la solution
mkdir week-1
cd week-1
pwd
cd ..
  • mkdir — crée un dossier.
  • cd week-1 — entre dans le dossier.
  • pwd — affiche le chemin courant : C:\dev\kodkod6\week-1.
  • cd .. — deux points = remonter d’un dossier.

Exercice 5: « No such file or directory »

Le fichier hello.py se trouve dans C:\dev\kodkod6\week-1. Un étudiant lance :

PS C:\dev\kodkod6> python hello.py
can't open file '...hello.py': [Errno 2] No such file or directory
  1. Pourquoi Python ne trouve-t-il pas le fichier, s’il existe ?
  2. Donnez deux façons de corriger le problème.
Afficher la solution
  1. Python cherche le fichier uniquement dans le répertoire courant — le dossier où se trouve le terminal (kodkod6). Le fichier est dans le sous-dossier week-1, il n’est donc pas trouvé.
  2. Deux façons :
    • Entrer d’abord dans le dossier : cd week-1, puis python hello.py.
    • L’exécuter avec le chemin : python week-1\hello.py.

(Une troisième option : le bouton ▷ Run de VS Code, qui exécute le fichier avec son chemin complet.)