Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Les fichiers et le shell

Après cette leçon: Je peux travailler avec des fichiers et des dossiers depuis un shell.

Leçon de 50 min12 commandesLab Linux du quotidien : la trentaine de commandes que les ingénieurs tapent de tête

Retrouver une facture sans souris

Le serveur d’une boutique en ligne contient des milliers de fichiers. Une collègue vous demande de retrouver les factures du mois dernier.

Ce serveur n’a ni bureau ni souris. Vous avez une seule fenêtre et un curseur qui clignote.

La plupart des serveurs fonctionnent ainsi. On s’y déplace en tapant de courtes commandes.

À la fin de cette leçon

Remarque

Je peux travailler avec des fichiers et des dossiers depuis un shell.

Mots-clés

MotCe que ça veut direExemple
Shellle programme qui lit vos commandes et les exécute
Cheminl’adresse d’un fichier ou d’un dossier/home/student/projects
Répertoire courantle dossier où vous êtes en ce moment
Redirectionenvoyer la réponse d’une commande dans un fichier>>
Tube (pipe)passer la réponse d’une commande à la suivante|
Modeles lettres qui disent qui peut lire, écrire ou lancer un fichierrw-r--r--

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Un chemin est l’adresse d’un fichier

Le shell se trouve toujours « dans » un dossier. C’est le répertoire courant. Une commande agit sur lui, sauf indication contraire.

Un chemin qui commence par / est un chemin absolu. Il marche de partout.

Un chemin sans / au début est un chemin relatif. Le shell le cherche dans le répertoire courant. Deux points, .., désignent le dossier au-dessus.

Exemple travaillé : où mène cd

Vous êtes dansVous tapezVous arrivez dans
/home/studentcd projects/home/student/projects
/home/student/projectscd docs/home/student/projects/docs
/home/student/projects/docscd ../home/student/projects
/home/student/projectscd /var/log/var/log
/var/logcd projectsUne erreur : ce dossier n’existe pas ici

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Où suis-je ?

Commande
pwd

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Que contient ce dossier ?

Commande
ls

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Descendre de deux dossiers

Commande
cd projects/app

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Regarder dedans

Commande
ls

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Revenir au dossier personnel

Commande
cd

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Erreur fréquente

Attention

Beaucoup de gens pensent que cd projects marche depuis n’importe quel dossier. Il cherche seulement dans le dossier où vous êtes. Tapez d’abord pwd, ou donnez un chemin complet qui commence par /.

mkdir, cp et mv changent les choses

mkdir crée un dossier. cp copie un fichier, et l’original reste en place. mv déplace un fichier. Avec un nouveau nom dans le même dossier, il le renomme.

rm supprime un fichier. Un serveur n’a pas de corbeille : un fichier supprimé est perdu.

Lancez les quatre commandes suivantes dans l’ordre.

Créer un dossier

Commande
mkdir -p boutique

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Y copier un fichier

Commande
cp projects/docs/notes.txt boutique/notes.txt

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Renommer la copie

Commande
mv boutique/notes.txt boutique/a_faire.txt

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Vérifier le dossier

Commande
ls boutique

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Redirections et tubes relient les commandes

Une commande affiche sa réponse à l’écran. Une redirection l’envoie dans un fichier. > remplace le contenu du fichier : l’ancien texte disparaît. >> ajoute à la fin.

Un tube, |, passe la réponse à une autre commande. ls | wc -l liste les noms, puis compte les lignes.

Ajouter une ligne au fichier

Commande
echo "Colis 2043 parti" >> boutique/a_faire.txt

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Lire le fichier

Commande
cat boutique/a_faire.txt

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Compter les fichiers d’un dossier

Commande
ls projects/app | wc -l

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Exemple travaillé : un mode en trois chiffres

LettresPropriétaireGroupeAutresChiffres
rw-r--r--rw- = 4+2 = 6r-- = 4r-- = 4644
rwxr-xr--rwx = 4+2+1 = 7r-x = 4+1 = 5r-- = 4754
rwx------rwx = 7--- = 0--- = 0700

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Un groupe de lettres devient un chiffre

Code: python
# Un groupe de trois lettres, calculé pas à pas.
groupe = "r-x"
total = 0
if groupe[0] == "r":
    total = total + 4
if groupe[1] == "w":
    total = total + 2
if groupe[2] == "x":
    total = total + 1
print(total)
# Changez groupe en "rw-" puis relancez.

Pour aller plus loin

Tapez ces commandes vous-même. Créez un dossier factures dans boutique. Créez-y trois fichiers vides en une seule commande : touch accepte plusieurs noms.

Comptez-les ensuite avec un seul tube, et écrivez le résultat dans boutique/total.txt avec >. Dites ce que cat boutique/total.txt va afficher avant de le lancer.

À propos de ce labo et de sa source: Lab Linux du quotidien : la trentaine de commandes que les ingénieurs tapent de tête

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.