Opérations de base sur les fichiers

LinuxBeginner
Pratiquer maintenant

Introduction

Bienvenue dans le laboratoire sur les opérations de base sur les fichiers sous Linux ! Sous Linux, presque tout est traité comme un fichier, ce qui rend les opérations sur les fichiers fondamentales pour l'utilisation du système. Ce laboratoire vous guidera à travers les commandes les plus courantes pour gérer les fichiers et les répertoires, vous aidant ainsi à devenir plus efficace dans la navigation et l'organisation de votre système Linux.

Comprendre votre environnement de travail

Sous Linux, chaque utilisateur possède généralement un « répertoire personnel » (home directory), représenté par ~. Cependant, dans cet environnement de laboratoire, nous commencerons dans le répertoire /home/labex/project, qui est notre répertoire de travail par défaut.

Tout d'abord, veuillez ouvrir un terminal sur le bureau OU basculer vers l'onglet du terminal dans l'environnement du laboratoire.

Capture d'écran de l'interface du terminal

Commençons par comprendre notre emplacement actuel :

pwd

pwd signifie « print working directory » (afficher le répertoire de travail). Il affiche votre emplacement actuel dans le système de fichiers. Cette commande est cruciale pour vous orienter dans la structure des fichiers Linux. Vous devriez voir /home/labex/project comme résultat.

Maintenant, explorons la relation entre le répertoire actuel et le répertoire personnel :

echo ~

Remarque : Si vous ne pouvez pas taper le symbole ~ dans le terminal du bureau en raison de différences de disposition du clavier dans certains pays, vous pouvez essayer de basculer vers l'onglet Terminal autonome dans le coin supérieur gauche de l'interface de la machine virtuelle.

Cette commande affichera le chemin vers votre répertoire personnel, qui devrait être /home/labex.

Pour voir le contenu de votre répertoire actuel, utilisez :

ls

Cela listera les fichiers et les répertoires dans votre répertoire de travail actuel (/home/labex/project).

Vérifions également le contenu de votre répertoire personnel :

ls ~

Cette commande liste le contenu de votre répertoire personnel, qui peut être différent de votre répertoire de travail actuel.

Comprendre la distinction entre votre répertoire de travail actuel et votre répertoire personnel est important pour naviguer efficacement dans le système de fichiers Linux.

Linux utilise ce que nous appelons un « système de fichiers hiérarchique ». Imaginez-le comme un grand arbre avec des branches. Le tronc principal est appelé le « répertoire racine » (root directory), représenté par une simple barre oblique /. Tous les autres répertoires et fichiers se ramifient à partir de cette racine.

Explorons comment se déplacer dans cette structure arborescente :

  1. Vérifiez votre emplacement actuel :
pwd

Cela devrait afficher /home/labex/project. Si ce n'est pas le cas, vous êtes peut-être dans un répertoire différent. Utilisez cd /home/labex/project pour revenir au point de départ.

  1. Affichez le contenu de votre répertoire actuel :
ls

Cela liste tous les fichiers et dossiers à votre emplacement actuel. /home/labex/project est vide, vous ne verrez donc rien.

  1. Remontez d'un niveau vers le répertoire parent :
cd ..

.. signifie « le répertoire au-dessus ». Après cette commande, faites à nouveau pwd. Vous devriez maintenant être dans /home/labex.

  1. Retournez dans votre répertoire de projet :
cd project

Cela vous ramène à /home/labex/project.

  1. Allez dans votre répertoire personnel :
cd ~

Le ~ est un raccourci pour votre répertoire personnel. Faites pwd pour confirmer que vous êtes dans /home/labex.

  1. Retournez dans le répertoire du projet en utilisant un chemin absolu :
cd /home/labex/project

Ceci est appelé un « chemin absolu » car il commence à partir de la racine (/) et donne l'emplacement complet.

Créer des fichiers et lister le contenu d'un répertoire

Maintenant que nous savons comment naviguer, créons quelques fichiers et explorons comment lister le contenu d'un répertoire.

Tout d'abord, assurez-vous d'être dans le répertoire /home/labex/project :

cd /home/labex/project
  1. Créons quelques fichiers :
touch file1.txt

La commande touch est utilisée pour créer un fichier vide. Si le fichier existe déjà, elle met à jour l'horodatage du fichier sans modifier son contenu. C'est un moyen simple de créer de nouveaux fichiers vides.

echo "Hello, Linux" > file2.txt

Cette commande fait deux choses :

  • echo est une commande qui affiche du texte.
  • Le symbole > redirige la sortie de echo vers un fichier nommé file2.txt. Si le fichier n'existe pas, il est créé. S'il existe, son contenu est remplacé.
echo "Hidden file" > .hiddenfile

Ceci crée un fichier caché. Sous Linux, tout nom de fichier ou de répertoire commençant par un point (.) est considéré comme caché.

  1. Maintenant, créons un répertoire :
mkdir testdir

La commande mkdir (abréviation de « make directory ») crée un nouveau répertoire nommé testdir.

  1. Liste de base :
ls

Sortie de la liste du contenu du répertoire

Cela affiche le contenu de votre répertoire actuel. Vous devriez voir file1.txt, file2.txt et testdir.

  1. Liste détaillée :
ls -l

L'option -l (c'est un L minuscule, pas le chiffre 1) fournit une liste au format « long ». Vous verrez des détails supplémentaires comme les permissions du fichier, le propriétaire, la taille et la date de modification.

  1. Afficher les fichiers cachés :
ls -a

Cela affichera tous les fichiers, y compris le fichier caché .hiddenfile que nous avons créé.

  1. Combiner les options :
ls -la

Cela combine le format long (-l) avec l'affichage de tous les fichiers (-a).

  1. Lister le contenu d'un répertoire spécifique :
ls -l testdir

Cela liste le contenu du répertoire testdir (qui devrait être vide à ce stade).

Les commandes de liste de cette étape sont destinées à la pratique pratique et à la confirmation visuelle. Votre progression est évaluée en vérifiant que les fichiers et le répertoire requis ont été créés correctement.

Copier des fichiers et des répertoires

Maintenant que nous avons des fichiers avec lesquels travailler, apprenons à les copier :

  1. Copier un fichier :
cp file1.txt file1_copy.txt

Cela crée une copie de file1.txt nommée file1_copy.txt dans le répertoire actuel.

Vérifions la copie :

ls
  1. Copier un fichier vers un autre répertoire :
cp file2.txt testdir/

Cela copie file2.txt dans le répertoire testdir.

  1. Copier un répertoire :
cp -r testdir testdir_copy

L'option -r signifie « récursif ». Elle est nécessaire lors de la copie de répertoires pour s'assurer que tout le contenu est copié.

  1. Vérifions nos copies :
ls
ls testdir
ls testdir_copy

Terminal montrant les fichiers copiés

Déplacer et renommer des fichiers et des répertoires

La commande mv est utilisée à la fois pour déplacer et renommer sous Linux :

  1. Renommer un fichier :
mv file1.txt newname.txt

Cela renomme file1.txt en newname.txt.

  1. Déplacer un fichier vers un répertoire :
mv newname.txt testdir/

Cela déplace newname.txt dans le répertoire testdir.

  1. Renommer un répertoire :
mv testdir_copy new_testdir

Cela renomme testdir_copy en new_testdir.

  1. Déplacer et renommer en une seule commande :
mv testdir/newname.txt ./original_file1.txt

Cela déplace newname.txt hors de testdir et le renomme en original_file1.txt dans le répertoire actuel.

  1. Vérifions nos changements :
ls
ls testdir

Affichage des résultats de l'exécution de la commande

Supprimer des fichiers et des répertoires

La suppression de fichiers et de répertoires est une opération puissante. Contrairement aux interfaces graphiques, la ligne de commande n'a souvent pas de « Corbeille ». Les suppressions effectuées avec rm sont généralement permanentes. Vérifiez toujours vos commandes avant de les exécuter !

Nettoyons les fichiers et les répertoires que nous avons créés. Assurez-vous d'être dans le répertoire /home/labex/project.

pwd
ls -a

Vous devriez voir des fichiers comme original_file1.txt, .hiddenfile, file2.txt et des répertoires comme testdir, new_testdir.

-rw-rw-r-- 1 labex labex   12 May  3 08:44 .hiddenfile
-rw-rw-r-- 1 labex labex    0 May  3 08:45 file1_copy.txt
-rw-rw-r-- 1 labex labex   13 May  3 08:44 file2.txt
drwxrwxr-x 2 labex labex   23 May  3 08:45 new_testdir
-rw-rw-r-- 1 labex labex    0 May  3 08:44 original_file1.txt
drwxrwxr-x 2 labex labex   23 May  3 08:45 testdir
  1. Supprimer un seul fichier :

    rm original_file1.txt
    

    La commande rm (abréviation de « remove ») supprime les fichiers. Vérifions :

    ls
    

    original_file1.txt devrait avoir disparu.

  2. Supprimer de manière interactive (plus sûr) :

    Essayons de supprimer file2.txt, mais cette fois en utilisant l'indicateur interactif -i :

    rm -i file2.txt
    

    L'option -i vous demande une confirmation avant de supprimer chaque fichier. Tapez y (pour yes) et appuyez sur Entrée pour confirmer la suppression. Si vous tapez n ou toute autre chose, le fichier ne sera pas supprimé.

    ls
    

    Si vous avez confirmé, file2.txt aura disparu.

  3. Supprimer un répertoire vide :

    Vous vous souvenez du new_testdir que nous avons créé en renommant testdir_copy ? Vérifions s'il est vide :

    ls new_testdir
    

    S'il est vide (n'affiche aucun fichier), nous pouvons le supprimer en utilisant rmdir :

    rmdir new_testdir
    

    rmdir (remove directory) ne fonctionne que sur les répertoires vides.

    ls
    

    new_testdir ne peut pas être supprimé car il n'est pas vide.

  4. Tenter de supprimer un répertoire non vide :

    Maintenant, essayons rmdir sur testdir, qui contient toujours file2.txt (copié à l'étape 4) :

    ls testdir
    rmdir testdir
    

    Vous verrez probablement un message d'erreur comme rmdir: failed to remove 'testdir': Directory not empty. C'est normal car rmdir ne peut pas supprimer des répertoires qui contiennent des fichiers ou d'autres répertoires.

  5. Supprimer un répertoire et son contenu (récursivement) :

    Pour supprimer un répertoire qui n'est pas vide, nous devons utiliser rm avec l'option -r (récursive) :

    rm -r testdir
    

    Cette commande supprime le répertoire testdir et tout ce qu'il contient. Utilisez cette commande avec prudence.

    ls
    

    testdir devrait maintenant avoir disparu.

  6. Suppression forcée (à utiliser avec une extrême prudence) :

    Parfois, vous voudrez peut-être supprimer des fichiers sans y être invité, même s'ils sont protégés en écriture (bien que nous n'en ayons pas ici). L'option -f (force) le permet.

    Supprimons notre fichier caché :

    rm .hiddenfile
    ls -a
    

    Maintenant, combinons -r et -f. La commande rm -rf est extrêmement puissante et potentiellement dangereuse. Elle supprime les répertoires de manière récursive (-r) et force la suppression sans demander de confirmation (-f).

    !!! ZONE DE DANGER !!! Soyez ABSOLUMENT SÛR de savoir ce que vous supprimez avant d'exécuter rm -rf. Une petite erreur de frappe pourrait supprimer des fichiers système critiques ou vos données personnelles. Il n'y a pas d'annulation possible. Par exemple, rm -rf / pourrait tenter de supprimer tout votre système (si vous avez les autorisations). Vérifiez toujours le chemin.

    Créons un répertoire et un fichier temporaires pour démontrer (en toute sécurité) :

    mkdir temp_dir
    touch temp_dir/temp_file.txt
    ls -R temp_dir
    

    Remarque : Vous remarquerez peut-être que nous avons utilisé -R (majuscule) avec ls au lieu de -r (minuscule) comme nous l'avons fait avec cp et rm. Ce n'est pas juste une différence de casse - ce sont des options complètement différentes ! Pour ls, -R signifie « liste récursive » (lister les sous-répertoires), tandis que -r signifie « ordre de tri inversé ». Pour cp et rm, l'option récursive est -r (minuscule). Consultez toujours le manuel (man command) pour comprendre les options spécifiques de chaque commande.

    Maintenant, supprimons-le de force :

    rm -rf temp_dir
    

    Vérifiez la suppression :

    ls
    

    temp_dir devrait avoir disparu.

N'oubliez pas : dans la ligne de commande Linux, les fichiers supprimés sont généralement perdus pour toujours. Utilisez rm avec précaution !

Résumé

Félicitations ! Vous avez appris les opérations essentielles sur les fichiers sous Linux :

  • Naviguer dans le système de fichiers avec cd et pwd
  • Créer des fichiers et des répertoires avec touch et mkdir
  • Lister le contenu avec ls et ses options
  • Copier des fichiers et des répertoires avec cp
  • Déplacer et renommer avec mv
  • Supprimer des fichiers et des répertoires avec rm et rmdir

Ces commandes constituent la base de la gestion des fichiers sous Linux. Avec de la pratique, vous deviendrez compétent dans la gestion de vos fichiers et répertoires à partir de la ligne de commande.

N'oubliez pas d'utiliser ces commandes avec précaution, en particulier rm, car elle supprime définitivement les fichiers et les répertoires sans possibilité de récupération.

Alors que vous poursuivez votre aventure Linux, explorez les pages de manuel (par exemple, man ls) pour en savoir plus sur chaque commande et ses options. Bonne exploration !