TD 1b — Les fichiers du TD 1a en ligne de commande#

Note

Les fichiers des TD de la séance sont dans l’archive info01-cours1_v2.zip.

Version 2 du cours 1 : proposition de travail pour 2027-2028. Ce TD est nouveau : il reprend en ligne de commande une partie du TD 1a de 2026 (renommer une extension, un espace dans un nom).

Le TD refait au clavier, dans un terminal, ce que le TD 1a a fait à la souris : se déplacer dans les dossiers, copier, renommer et ouvrir des fichiers. Il dure une quinzaine de minutes.

Le terminal du module est Git Bash, installé avec git sur les postes de la salle. Les commandes de ce guide sont celles de bash : elles se tapent à l’identique dans le terminal de macOS et de Linux.

Étape

Objectif

Ce qu’on fait

1

situer le terminal dans l’arborescence

ouvrir Git Bash dans le dossier du TD, et lire l’invite

2

se déplacer par des chemins relatifs

se déplacer et lister le contenu des dossiers

3

manipuler des fichiers par des commandes

copier, renommer et ouvrir des fichiers

4

écrire un chemin qui contient un espace

écrire un nom de fichier qui contient un espace

5

agir sur plusieurs fichiers en une commande

copier plusieurs fichiers d’un coup, supprimer un fichier

Rappels avant de commencer#

Un terminal, plusieurs fenêtres. Le poste a plusieurs terminaux : l’invite de commandes (cmd), PowerShell, Git Bash. Chacun a son langage. Les commandes du guide sont celles de Git Bash, et la dernière annexe donne leurs équivalents dans les deux autres. L’invite, au début de chaque ligne, indique le terminal employé :

Git Bash

Invite de commandes

PowerShell

Git Bash

Invite de commandes

PowerShell

utilisateur@machine MINGW64 ~/…, puis $

C:\Users\…>

PS C:\Users\…>

La capture de Git Bash date de 2011 (MINGW32). Sources et licences : images/terminaux/CREDITS.md dans le dépôt du cours.

Taper une commande. Une commande se tape après le $, puis se valide par Entrée. Deux touches font gagner du temps :

Touche

Ce qu’elle fait

flèche vers le haut

rappelle la commande précédente, à modifier ou relancer

Tab

complète le nom de fichier ou de dossier commencé

Ctrl + C

interrompt la commande en cours

Sur un clavier français : ~ se tape AltGr + 2, puis espace ; |, AltGr + 6. Coller dans Git Bash : clic droit, puis « Paste », ou Maj + Inser ; Ctrl + V ne colle pas.

Une commande qui réussit n’affiche souvent rien. cp, mv, mkdir, rm n’affichent rien quand tout se passe bien. Un message après une de ces commandes est un message d’erreur : le lire.

1 · Ouvrir Git Bash dans le dossier du TD#

À faire : ouvrir cours1\1b_terminal\ dans l’explorateur ; y ouvrir Git Bash par le clic droit ; lire l’invite.

À obtenir : une fenêtre Git Bash dont l’invite se termine par ~/Desktop/info01/cours1/1b_terminal.

Dossier de départ : cours1/1b_terminal/, tel que décompressé au TD 1a.

1b_terminal/
├── depart/        les fichiers du TD 1a : raven.odt, raven_brut.html…
├── travail/       vide
└── td_1b_terminal.pdf

Ouvrir Git Bash par le clic droit#

  1. Dans l’explorateur, ouvrir Bureau\info01\cours1\1b_terminal.

  2. Clic droit sur un endroit vide de la fenêtre (pas sur un fichier).

  3. Sous Windows 11, choisir « Afficher d’autres options », en bas du menu.

  4. Choisir « Open Git Bash here ».

Ouvrir Git Bash dans un dossier

Git Bash s’ouvre, et son dossier courant est le dossier où l’on a cliqué.

Autre façon : menu Démarrer, « Git Bash », puis taper

cd ~/Desktop/info01/cours1/1b_terminal

Lire l’invite#

L'invite de Git Bash, annotée

Sur la capture, la ligne (base) n’est pas encore là : elle apparaît au début du TD 1c.

Vérification :

pwd

affiche le chemin absolu du dossier courant :

/c/Users/eleve/Desktop/info01/cours1/1b_terminal

Git Bash écrit les chemins à la façon de Linux : des barres obliques /, et le disque C: devient /c. Le même dossier s’écrit C:\Users\eleve\Desktop\info01\cours1\1b_terminal dans l’explorateur.

2 · Se déplacer et lister#

À faire : lister le dossier courant et depart/ ; afficher les entrées cachées ; descendre dans depart/ et remonter ; lister un dossier d’un autre TD.

À obtenir : l’invite suit chaque cd ; ls ../1a_formats/travail montre les exports du TD 1a.

Lister#

ls

ls liste le contenu du dossier courant : depart/, travail/ et les fichiers du TD. Le / à la fin d’un nom marque un dossier.

ls depart
auld_lang_syne.odt                raven_brut.html
auld_lang_syne_brut.html          raven_style.html
auld_lang_syne_style.html         raven_une_ligne.donnees
auld_lang_syne_une_ligne.donnees  raven_une_ligne.txt
auld_lang_syne_une_ligne.txt      style.css
raven.odt

depart est un argument : le dossier à lister. Sans argument, ls liste le dossier courant.

Les entrées cachées#

ls travail
ls -a travail

ls travail n’affiche rien : le dossier est vide. ls -a travail affiche deux entrées :

./  ../

-a est une option : elle modifie ce que fait la commande (« all », tout afficher). . désigne le dossier lui-même, .. son dossier parent. Tout dossier les contient ; ls ne les affiche pas, parce que leur nom commence par un point, la marque d’un fichier caché.

Se déplacer#

cd depart
pwd

L’invite et pwd se terminent maintenant par 1b_terminal/depart. cd (« change directory ») change le dossier courant.

cd ..
pwd

retour dans 1b_terminal. Les chemins relatifs partent du dossier courant :

Les chemins relatifs depuis 1b_terminal

ls ../1a_formats/travail

liste les fichiers exportés au TD 1a (raven.pdf, raven.png), sans quitter 1b_terminal.

Vérification : l’invite se termine par 1b_terminal.

Si cd affiche No such file or directory, le chemin tapé n’existe pas depuis le dossier courant : lire l’invite, puis ls pour voir les noms disponibles. Tab complète un nom commencé et évite les fautes de frappe.

3 · Copier, renommer, ouvrir#

À faire : copier raven.odt dans travail/, le renommer en raven_odt.pdf, l’ouvrir par start ; refaire avec deux autres noms.

À obtenir : trois copies de raven.odt dans travail/, et, pour chacune, le logiciel que Windows a lancé.

Copier#

cp depart/raven.odt travail/
ls travail
raven.odt

cp source destination copie ; la destination est ici un dossier, et la copie garde son nom.

Renommer#

mv travail/raven.odt travail/raven_odt.pdf
ls travail
raven_odt.pdf

mv déplace ou renomme : ici, le fichier reste dans travail/ et change de nom. Windows demandait une confirmation quand on changeait l’extension à la souris ; mv n’en affiche pas.

Ouvrir#

start travail/raven_odt.pdf

start ouvre un fichier avec le logiciel que Windows associe à son extension, comme un double-clic dans l’explorateur.

À noter : le logiciel lancé, et ce qu’il affiche.

Deux autres copies, et leur ouverture :

cp depart/raven.odt travail/riri.fifi.loulou.odt
start travail/riri.fifi.loulou.odt
cp depart/raven.odt travail/raven.loulou
start travail/raven.loulou

Pour raven.loulou, une fenêtre de Windows demande avec quel logiciel ouvrir le fichier : choisir LibreOffice Writer.

À noter : pour chaque copie, le logiciel lancé et ce qu’il affiche.

Vérification :

ls travail
raven.loulou  raven_odt.pdf  riri.fifi.loulou.odt

Si start ne fait rien, essayer explorer.exe, qui ouvre aussi un fichier avec son logiciel associé ; les barres du chemin s’écrivent alors à la façon de Windows : explorer.exe travail\\raven_odt.pdf.

4 · Un espace dans un nom de fichier#

À faire : copier raven_brut.html sous le nom raven brut.html, sans puis avec guillemets ; l’ouvrir.

À obtenir : la copie raven brut.html dans travail/, ouverte dans le navigateur.

cp depart/raven_brut.html travail/raven brut.html

Git Bash affiche un message d’erreur, par exemple :

cp: target 'brut.html': No such file or directory

Git Bash découpe la ligne aux espaces : cp a reçu trois noms, depart/raven_brut.html, travail/raven et brut.html, et il copie les deux premiers dans le troisième, qu’il prend pour un dossier. Entre guillemets, le nom reste un seul argument :

cp depart/raven_brut.html "travail/raven brut.html"
ls travail
start "" "travail/raven brut.html"

La page s’ouvre dans le navigateur. start prend le premier argument entre guillemets pour le titre d’une fenêtre : d’où les guillemets vides "" avant le nom du fichier.

À noter : la mise en forme de la page, et la raison, d’après le TD 1a.

La page s’affiche sans mise en forme : son chemin relatif style.css ne trouve pas de feuille de style dans travail/. Copier la feuille, puis recharger la page par F5 dans le navigateur :

cp depart/style.css travail/

Les noms de fichiers du module n’ont pas d’espace : _ le remplace.

5 · Copier plusieurs fichiers d’un coup#

À faire : créer travail/pages/ ; y copier les quatre pages web par un motif ; supprimer l’une d’elles.

À obtenir : trois pages dans travail/pages/.

mkdir travail/pages
cp depart/*.html travail/pages/
ls travail/pages

mkdir crée un dossier. Dans depart/*.html, * remplace n’importe quelle suite de caractères : Git Bash remplace le motif par la liste des noms qui correspondent, puis lance cp avec ces quatre noms.

ls depart/*.txt
depart/auld_lang_syne_une_ligne.txt  depart/raven_une_ligne.txt
rm travail/pages/auld_lang_syne_brut.html
ls travail/pages

rm supprime le fichier, sans passer par la corbeille : il ne se récupère pas. Relire la commande avant de valider.

Vérification : ls travail/pages affiche trois pages.

Ce que le TD fait constater#

À lire après avoir fait les étapes.

Les mêmes opérations, au clavier. cp, mv, mkdir, rm et start font ce que font Ctrl + C, F2, « Nouveau dossier », Suppr et le double-clic dans l’explorateur. Le terminal les fait sans confirmation, et rm sans corbeille.

L’extension décide du logiciel. mv a changé le nom du fichier, et aucun octet de son contenu. Windows choisit le logiciel d’après la fin du nom : un lecteur PDF pour raven_odt.pdf, qui ne peut pas l’ouvrir ; LibreOffice pour riri.fifi.loulou.odt, qui l’ouvre ; aucun pour raven.loulou, dont l’extension est inconnue : une fenêtre demande lequel employer. Même constat qu’au TD 1a de 2026, où le renommage se faisait à la souris.

Le dossier courant. Chaque commande part du dossier courant, affiché dans l’invite et par pwd. Un chemin relatif (depart, ../1a_formats/travail) part de lui ; un chemin absolu (/c/Users/…) ou qui commence par ~ part d’ailleurs, et vaut depuis n’importe quel dossier.

Une ligne découpée aux espaces. Git Bash découpe la ligne en mots avant de lancer la commande : le premier est le programme, les suivants ses options et ses arguments. Un nom qui contient un espace s’écrit donc entre guillemets. Le motif * est remplacé par Git Bash, lui aussi, avant que la commande ne démarre.

Annexe · Les commandes du TD#

Commande

Ce qu’elle fait

Dans l’explorateur

pwd

affiche le dossier courant

la barre d’adresse

ls, ls dossier

liste le contenu d’un dossier

la fenêtre ouverte

ls -a

liste aussi les entrées cachées

Affichage, Éléments masqués

cd dossier, cd ..

change de dossier courant

double-clic ; dossier parent

cp source destination

copie

Ctrl + C, Ctrl + V

mv source destination

déplace ou renomme

glisser ; F2

mkdir nom

crée un dossier

Nouveau dossier

rm fichier

supprime, sans corbeille

Suppr

start fichier

ouvre avec le logiciel associé

double-clic

commande --help

l’aide de la commande

Annexe · Les mêmes commandes dans PowerShell et l’invite de commandes#

Le TD se fait dans Git Bash. Les mêmes opérations se font dans PowerShell et dans l’invite de commandes (cmd), avec d’autres commandes ou d’autres options. Le tableau les donne pour les commandes du TD, tapées depuis le dossier 1b_terminal. [À vérifier sur un poste de la salle : les colonnes PowerShell et invite de commandes sont tirées de la documentation de Microsoft, et n’ont pas été exécutées.]

Opération

Git Bash

PowerShell

Invite de commandes

afficher le dossier courant

pwd

pwd

cd

lister un dossier

ls depart

ls depart

dir depart

lister aussi les entrées cachées

ls -a travail

ls -Force travail

dir /a travail

descendre dans un dossier

cd depart

cd depart

cd depart

remonter au dossier parent

cd ..

cd ..

cd ..

copier un fichier

cp depart/raven.odt travail/

cp depart/raven.odt travail/

copy depart\raven.odt travail\

renommer un fichier

mv travail/raven.odt travail/raven_odt.pdf

mv travail/raven.odt travail/raven_odt.pdf

ren travail\raven.odt raven_odt.pdf

ouvrir avec le logiciel associé

start travail/raven_odt.pdf

start travail/raven_odt.pdf

start travail\raven_odt.pdf

ouvrir un fichier dont le nom a un espace

start "" "travail/raven brut.html"

start "travail/raven brut.html"

start "" "travail\raven brut.html"

créer un dossier

mkdir travail/pages

mkdir travail/pages

mkdir travail\pages

copier plusieurs fichiers

cp depart/*.html travail/pages/

cp depart/*.html travail/pages/

copy depart\*.html travail\pages\

supprimer un fichier, sans corbeille

rm travail/raven.loulou

rm travail/raven.loulou

del travail\raven.loulou

afficher l’aide d’une commande

ls --help

help ls

dir /?

Dans PowerShell, ls, cp, mv, rm et mkdir sont d’autres noms des commandes de PowerShell : Get-ChildItem, Copy-Item, Move-Item, Remove-Item et New-Item. Ils prennent les options des commandes de PowerShell. Ainsi ls -a échoue, et ls -Force affiche les entrées cachées. PowerShell accepte / et \ dans les chemins. Son start n’attend pas de titre de fenêtre, et s’écrit donc sans "".

Dans l’invite de commandes, les chemins s’écrivent avec \, car / introduit une option (dir /a). ren prend le nouveau nom seul, sans dossier. start lit le premier argument entre guillemets comme le titre de la fenêtre, d’où le "" devant un nom entre guillemets.

Les listes n’ont pas la même présentation. PowerShell affiche pour chaque entrée sa date et sa taille, et l’invite de commandes ajoute le nom du disque et le total des tailles. Les noms sont les mêmes.

Python. Dans l’invite de commandes, python est disponible dans l’invite de commandes d’Anaconda, au menu Démarrer. Dans PowerShell, il faut ouvrir l’invite PowerShell d’Anaconda, si elle est installée sur le poste [à vérifier]. Le réglage fait au début du TD 1c ne vaut que pour Git Bash.