Introduction
Linux organise les données sous forme d’arborescence de répertoires et de fichiers. Les commandes agissent sur des emplacements de cette arborescence. Pour manipuler les fichiers de manière fiable, commencez donc par répondre à trois questions : où suis-je ? Que contient cet emplacement ? Quel chemin identifie l’élément recherché ?
Dans ce laboratoire, vous allez construire progressivement ces notions dans /home/labex/project/file-basics. Vous utiliserez des chemins absolus et relatifs, inspecterez les entrées visibles et masquées, créerez des fichiers et des répertoires, sélectionnerez des noms à l’aide de caractères génériques, puis copierez, déplacerez et supprimerez des fichiers d’exercice en toute sécurité. La dernière étape présente des raccourcis du terminal qui accélèrent ces opérations sans en modifier le sens.
Localiser votre répertoire de travail
Dans cette étape, vous allez relier l’invite du terminal au répertoire dans lequel les commandes s’exécutent.
Le shell possède toujours un répertoire de travail courant. Les chemins relatifs partent de ce répertoire. Vérifier votre emplacement permet donc d’éviter de nombreuses erreurs de débutant. Accédez à l’espace de travail de ce laboratoire à l’aide de son chemin complet :
cd /home/labex/project/file-basics
Un chemin qui commence par / est un chemin absolu. Il part de la racine du système de fichiers et désigne le même emplacement, quel que soit le répertoire depuis lequel vous avez commencé.
Affichez le répertoire de travail :
pwd
Vous devriez voir :
/home/labex/project/file-basics
Enregistrez cet emplacement comme preuve. L’opérateur > redirige la sortie vers starting-location.txt. Comme la sortie est envoyée dans le fichier, rien ne s’affiche cette fois-ci :
pwd > starting-location.txt
Lisez le fichier pour vérifier ce qui a été enregistré :
cat starting-location.txt
L’écran du terminal et le fichier doivent afficher le même chemin absolu.
Naviguer avec des chemins relatifs
Dans cette étape, vous allez vous déplacer entre des répertoires voisins à l’aide de chemins relatifs et des noms spéciaux . et ...
Revenez à l’espace de travail si nécessaire :
cd /home/labex/project/file-basics
Affichez ses entrées visibles :
ls
Vous devriez voir path-map et starting-location.txt. Entrez dans path-map en utilisant un chemin relatif, c’est-à-dire un chemin interprété à partir du répertoire courant :
cd path-map
pwd
Entrez maintenant dans north et lisez son fichier de référence :
cd north
cat reference.txt
La sortie est north reference. Le nom .. désigne le répertoire parent, situé un niveau au-dessus de l’emplacement courant :
cd ..
Depuis path-map, entrez dans son sous-répertoire south :
cd south
cat reference.txt
Le nom . désigne le répertoire courant. En combinant pwd avec une destination relative qui remonte de deux niveaux, enregistrez l’emplacement absolu courant à la racine du laboratoire :
pwd > ../../relative-location.txt
Revenez directement à la racine du laboratoire avec son chemin absolu :
cd /home/labex/project/file-basics
cat relative-location.txt
Le chemin enregistré doit se terminer par /path-map/south. Vous avez utilisé à la fois un déplacement relatif et un chemin absolu pour revenir à la racine.
Inspecter le contenu des répertoires
Dans cette étape, vous allez utiliser les options de ls pour afficher les noms masqués et les détails des fichiers.
Exécutez un affichage simple à la racine du laboratoire :
cd /home/labex/project/file-basics
ls
Linux masque normalement les noms qui commencent par un point. L’option -a signifie « all » et inclut ces entrées :
ls -a
Vous devriez maintenant voir .practice-note, ainsi que . pour le répertoire courant et .. pour son répertoire parent.
L’option -l produit un affichage détaillé contenant les permissions, le propriétaire, la taille, la date et le nom :
ls -l
Combinez les options pour inspecter toutes les entrées sous forme détaillée :
ls -la
Chaque ligne de sortie commence par un champ indiquant le type et les permissions. Un d initial identifie un répertoire ; un - initial identifie un fichier ordinaire. Les permissions seront étudiées plus en détail ultérieurement.
Enregistrez les noms, y compris les entrées masquées. Dans cet espace de travail contrôlé, ls les affiche déjà par ordre alphabétique ; aucune commande de tri supplémentaire n’est donc nécessaire pour le moment :
ls -A > all-names.txt
Contrairement à -a, -A omet les entrées spéciales . et .. tout en conservant les autres noms masqués. Affichez le résultat :
cat all-names.txt
La liste doit inclure .practice-note, path-map et les fichiers créés lors des étapes précédentes.
Créer des répertoires et des fichiers
Dans cette étape, vous allez créer une petite arborescence de projet et placer du texte dans des fichiers ordinaires.
mkdir crée un répertoire. Son option -p crée également les répertoires parents manquants ; une seule commande peut donc construire un chemin imbriqué :
cd /home/labex/project/file-basics
mkdir -p workspace/docs workspace/logs
Cette commande crée workspace, ainsi que ses sous-répertoires docs et logs. Inspectez le résultat :
find workspace -maxdepth 2 -type d
touch crée un fichier vide lorsque le nom indiqué n’existe pas. Créez deux fichiers en une seule fois :
touch workspace/docs/guide.txt workspace/logs/app.log
Écrivez du contenu dans le guide. Un seul > remplace le contenu de la destination par la sortie de la commande :
echo "Linux file practice" > workspace/docs/guide.txt
Ajoutez une deuxième ligne avec >>, qui conserve le contenu existant :
echo "Paths make locations predictable" >> workspace/docs/guide.txt
Lisez le fichier complet :
cat workspace/docs/guide.txt
Vous devriez voir les deux lignes dans leur ordre d’origine. Le fichier vide app.log existe également et sera utilisé plus tard pour pratiquer les caractères génériques.
Sélectionner des noms avec des caractères génériques
Dans cette étape, vous allez créer des groupes de fichiers et les sélectionner à l’aide de motifs de noms.
Entrez dans le répertoire des journaux :
cd /home/labex/project/file-basics/workspace/logs
L’expansion des accolades génère plusieurs noms littéraux avant l’exécution de la commande. Créez des journaux numérotés :
touch app{1..3}.log worker{1..2}.log notes.txt
Le shell développe {1..3} en 1 2 3. Ainsi, app{1..3}.log devient trois arguments.
Un caractère générique est différent : il correspond à des noms qui existent déjà. * correspond à une séquence quelconque de caractères :
ls *.log
La sortie inclut tous les noms qui se terminent par .log, mais pas notes.txt.
Le caractère générique ? correspond à exactement un caractère. Affichez uniquement les journaux app numérotés :
ls app?.log
Le shell développe les motifs de noms de fichiers par ordre alphabétique. printf affiche chaque nom développé sur sa propre ligne, et > enregistre ces lignes :
printf '%s\n' *.log > matched-logs.txt
cat matched-logs.txt
La liste enregistrée doit contenir app.log, app1.log, app2.log, app3.log, worker1.log et worker2.log. Mettre *.log entre guillemets empêcherait l’expansion du caractère générique ; le motif est donc volontairement laissé sans guillemets ici.
Copier, déplacer et supprimer des fichiers en toute sécurité
Dans cette étape, vous allez comparer les effets de cp, mv et rm avant de les utiliser dans le défi suivant.
Revenez au répertoire de l’espace de travail :
cd /home/labex/project/file-basics/workspace
cp SOURCE DESTINATION crée un autre fichier tout en laissant la source à son emplacement. Créez une copie de sauvegarde du guide :
cp docs/guide.txt docs/guide-backup.txt
Vérifiez que les deux fichiers ont un contenu identique. cmp compare deux fichiers octet par octet. Il n’affiche rien lorsqu’ils correspondent ; un message d’erreur indiquerait qu’ils sont différents :
cmp docs/guide.txt docs/guide-backup.txt
mv SOURCE DESTINATION déplace ou renomme un élément. Déplacez la sauvegarde à la racine de l’espace de travail et donnez-lui un nom plus clair :
mv docs/guide-backup.txt archived-guide.txt
Affichez les deux emplacements :
ls docs
ls
Vous devriez voir guide.txt dans docs et archived-guide.txt dans le répertoire courant.
rm supprime définitivement un fichier indiqué ; le terminal ne dispose normalement d’aucune corbeille. Supprimez uniquement le fichier de notes destiné à être supprimé :
rm logs/notes.txt
Affichez à nouveau le répertoire pour rendre la suppression observable :
ls logs
notes.txt ne doit plus apparaître. Le guide original et sa copie déplacée sont toujours disponibles, tandis que le seul fichier explicitement désigné comme supprimable a disparu.
Travailler plus rapidement avec les raccourcis du terminal
Dans cette étape, vous allez pratiquer quatre commandes de contrôle du terminal qui réduisent la saisie et permettent de reprendre le contrôle lorsqu’une commande continue de s’exécuter.
Commencez par entrer dans le répertoire des documents :
cd /home/labex/project/file-basics/workspace/docs
Exécutez une commande que vous allez réutiliser :
cat guide.txt
Appuyez une fois sur la flèche vers le haut. La commande précédente cat guide.txt doit réapparaître à l’invite. Appuyez sur Entrée pour l’exécuter à nouveau. Le rappel de commande évite de la saisir de nouveau et vous permet toujours de modifier la ligne rappelée avant son exécution.
Saisissez ensuite cat g sans appuyer sur Entrée, puis appuyez sur Tabulation. Comme seul guide.txt correspond, le shell devrait compléter le nom du fichier. Appuyez sur Entrée pour exécuter la commande complétée.
Lancez maintenant une commande qui attend indéfiniment :
tail -f /dev/null
tail -f suit un fichier et attend l’arrivée de nouvelles données. /dev/null ne fournit jamais de lignes utiles ; la commande semble donc rester silencieuse. Appuyez sur Ctrl+C pour envoyer une interruption et revenir à l’invite. Il s’agit de la première réaction habituelle lorsqu’une commande au premier plan doit être arrêtée.
Appuyez sur Ctrl+L pour effacer l’ancienne sortie affichée à l’écran. Comme clear, cette combinaison ne supprime ni les fichiers ni l’historique des commandes.
Après être revenu à l’invite, créez un marqueur de fin :
echo "Shortcuts practiced" > /home/labex/project/file-basics/shortcuts-complete.txt
cat /home/labex/project/file-basics/shortcuts-complete.txt
Ce marqueur confirme que vous avez réussi à reprendre l’invite après la pratique interactive.
Résumé
Vous avez appris comment le répertoire de travail et les chemins contrôlent les opérations sur les fichiers. Vous avez navigué avec des chemins absolus et relatifs, inspecté les entrées masquées et les métadonnées, créé une arborescence de répertoires et des fichiers texte, sélectionné des noms avec des caractères génériques et comparé la copie, le déplacement et la suppression définitive. Vous avez également pratiqué le rappel de commandes, la complétion avec Tabulation, Ctrl+C et Ctrl+L. Le prochain laboratoire vous apprendra à trouver une aide fiable lorsqu’une commande ou une option inconnue se présente.



