Opérations sur les fichiers et répertoires

LinuxBeginner
Pratiquer maintenant

Introduction

Bienvenue dans le laboratoire d'introduction aux opérations sur les fichiers et répertoires Linux ! Si vous débutez avec Linux, ne vous inquiétez pas : nous vous guiderons à chaque étape, en expliquant non seulement ce qu'il faut faire, mais aussi pourquoi nous le faisons. Ce laboratoire est conçu pour vous offrir une expérience pratique du système de fichiers Linux, qui est fondamental pour travailler sous Linux.

Avant de commencer, passons en revue quelques concepts de base :

  • Système de fichiers Linux : Imaginez-le comme une structure arborescente permettant d'organiser tous les fichiers de votre ordinateur. Contrairement à Windows avec ses lettres de lecteur (C:, D:, etc.), Linux possède un répertoire racine unique (/) à partir duquel tout le reste se ramifie.
  • Répertoire : C'est le terme Linux pour ce que vous connaissez peut-être sous le nom de "dossier" dans d'autres systèmes d'exploitation. Il s'agit d'un conteneur pour des fichiers et d'autres répertoires.
  • Fichier : Sous Linux, presque tout est un fichier ! Les documents classiques, les répertoires et même les périphériques matériels sont traités comme des fichiers. Cette approche unifiée simplifie de nombreuses opérations.
  • Chemin (Path) : C'est comme une adresse pour un fichier ou un répertoire. Nous apprendrons les chemins absolus (qui partent du répertoire racine) et les chemins relatifs (qui partent de votre emplacement actuel).
  • Terminal : C'est votre centre de commande pour interagir avec Linux. Il peut sembler intimidant au début, mais vous découvrirez vite que c'est un outil puissant pour gérer votre système.
  • Recherche de fichiers : Linux fournit des outils puissants pour trouver des fichiers dans tout le système. Nous explorerons des commandes comme find et which pour vous aider à localiser rapidement des fichiers et des exécutables.

Prêt à commencer ? Entamons notre voyage dans le système de fichiers Linux !

Exploration de la structure des répertoires Linux

Dans cette étape, nous allons faire le tour du système de fichiers Linux. Cela vous aidera à comprendre où sont stockés les différents types de fichiers et comment le système est organisé.

  1. Ouvrez votre terminal. Vous devriez voir une invite se terminant par un signe $. C'est ici que vous taperez vos commandes. Vous êtes actuellement dans votre répertoire de projet, qui est /home/labex/project. Confirmons cela :

    pwd
    

    pwd signifie "print working directory" (afficher le répertoire de travail). Il vous indique où vous vous trouvez dans le système de fichiers.

  2. Maintenant, visualisons le niveau supérieur de la structure des répertoires :

    tree -L 1 /
    

    La commande tree affiche la structure des répertoires sous forme d'arbre. L'option -L 1 limite la sortie au premier niveau sous le répertoire racine, ce qui rend le résultat lisible et évite d'inonder votre terminal. L'argument / lui indique de commencer à partir du répertoire racine. Ne vous souciez pas de tout comprendre pour l'instant, nous nous concentrerons sur les parties les plus importantes.

  3. Explorons quelques répertoires principaux :

    ls /home
    ls /etc
    ls /bin
    
    • /home est l'endroit où sont stockés les répertoires des utilisateurs. Chaque utilisateur possède généralement son propre répertoire ici.
    • /etc contient les fichiers de configuration du système.
    • /bin contient les binaires (programmes) essentiels qui doivent être disponibles pour tous les utilisateurs.
  4. Maintenant, naviguons vers le répertoire racine et listons son contenu :

    cd /
    ls -l
    

    cd signifie "change directory" (changer de répertoire). Le / vous emmène au répertoire racine. ls -l liste le contenu du répertoire dans un format détaillé. Le -l est appelé une option ou un drapeau (flag), qui modifie le comportement de la commande.

  5. Retournons à votre répertoire personnel :

    cd ~
    pwd
    

    Le ~ est un raccourci qui représente toujours votre répertoire personnel, quel que soit l'endroit où vous vous trouvez dans le système de fichiers.

Après cette étape, vous devriez avoir une compréhension de base de la structure des répertoires Linux et savoir comment y naviguer. N'oubliez pas, il n'est pas nécessaire de tout mémoriser immédiatement ; vous pourrez toujours utiliser ces commandes pour vous remémorer la structure.

Comprendre les chemins et la navigation

Maintenant que nous avons une vue d'ensemble du système de fichiers, apprenons à naviguer efficacement. Nous allons explorer les concepts de chemins absolus et relatifs, qui sont cruciaux pour se déplacer dans le système de fichiers.

  1. Tout d'abord, créons une structure de répertoire pour nous entraîner :

    mkdir -p ~/project/practice/subdirectory
    

    mkdir signifie "make directory" (créer un répertoire). L'option -p nous permet de créer des répertoires parents s'ils n'existent pas. Cette commande crée un répertoire practice à l'intérieur de votre répertoire project, et un subdirectory à l'intérieur de practice.

  2. Naviguez vers le nouveau sous-répertoire en utilisant un chemin relatif :

    cd ~/project/practice/subdirectory
    pwd
    

    Ce chemin est relatif à votre répertoire personnel (~). On l'appelle chemin relatif car il dépend de votre emplacement actuel.

  3. Maintenant, remontons d'un niveau dans la structure des répertoires :

    cd ..
    pwd
    

    .. fait toujours référence au répertoire parent. C'est un raccourci pratique pour remonter dans l'arborescence.

  4. Utilisons un chemin absolu pour retourner au sous-répertoire :

    cd /home/labex/project/practice/subdirectory
    pwd
    

    Il s'agit d'un chemin absolu car il part du répertoire racine (/) et donne le chemin complet vers la destination, quel que soit l'endroit où vous vous trouvez actuellement.

  5. Pratiquons maintenant quelques raccourcis de navigation :

    cd ~ ## Aller au répertoire personnel
    pwd
    cd - ## Aller au répertoire précédent
    pwd
    cd ## Une autre façon d'aller au répertoire personnel
    pwd
    

    Ces raccourcis peuvent vous éviter beaucoup de saisie !

À la fin de cette étape, vous devriez être à l'aise avec la navigation dans le système de fichiers en utilisant des chemins absolus et relatifs. N'oubliez pas que c'est en forgeant qu'on devient forgeron : n'hésitez pas à expérimenter avec ces commandes !

Création et gestion de fichiers et de répertoires

Maintenant que nous sommes à l'aise avec la navigation, apprenons à créer et gérer des fichiers et des répertoires. Ce sont des compétences fondamentales pour travailler sous Linux.

  1. Naviguez vers votre répertoire de projet :

    cd ~/project
    
  2. Créons plusieurs répertoires à la fois :

    mkdir dir1 dir2 dir3
    ls
    

    mkdir peut créer plusieurs répertoires en une seule commande. ls liste le contenu du répertoire actuel, afin que vous puissiez voir ce que vous avez créé.

  3. Créons maintenant un fichier vide :

    touch file1.txt
    ls -l file1.txt
    

    touch est utilisé pour créer des fichiers vides ou mettre à jour l'horodatage de fichiers existants. La commande ls -l affiche des informations détaillées sur le fichier, y compris sa taille (qui devrait être de 0 octet).

  4. Créons un fichier avec du contenu :

    echo "Hello, Linux" > file2.txt
    cat file2.txt
    

    echo affiche du texte, et > redirige ce texte vers un fichier, en créant le fichier s'il n'existe pas. cat est utilisé pour afficher le contenu du fichier.

  5. Ajoutons maintenant du contenu au fichier :

    echo "This is a new line." >> file2.txt
    cat file2.txt
    

    >> ajoute du contenu à la fin du fichier au lieu de l'écraser. Remarquez comment le fichier contient maintenant deux lignes.

  6. Enfin, créons une structure de répertoire imbriquée :

    mkdir -p nested/structure/example
    tree nested
    

    La commande tree nous donne une belle représentation visuelle de la structure de répertoire que nous venons de créer.

À la fin de cette étape, vous devriez être à l'aise avec la création de fichiers et de répertoires, l'ajout de contenu aux fichiers et la visualisation de leur contenu. Ces opérations constituent l'épine dorsale de la gestion de fichiers sous Linux.

Copier, déplacer et renommer des fichiers

Maintenant que nous savons créer des fichiers et des répertoires, apprenons à les manipuler. Nous allons couvrir la copie, le déplacement et le renommage de fichiers et de répertoires.

  1. Commençons par copier un fichier :

    cp file1.txt dir1/
    ls dir1
    

    cp est la commande de copie. Ici, nous copions file1.txt dans le répertoire dir1.

  2. Copions et renommons un fichier en une seule commande :

    cp file2.txt dir2/file2_copy.txt
    ls dir2
    

    Cela crée une copie de file2.txt dans dir2, mais avec un nouveau nom.

  3. Déplaçons un fichier :

    mv file1.txt dir3/
    ls
    ls dir3
    

    mv est utilisé pour déplacer des fichiers. Remarquez que file1.txt n'est plus dans le répertoire actuel, mais apparaît maintenant dans dir3.

  4. Nous pouvons également utiliser mv pour renommer un fichier :

    mv dir3/file1.txt dir3/renamed_file.txt
    ls dir3
    

    Cela renomme file1.txt en renamed_file.txt à l'intérieur de dir3.

  5. Enfin, copions un répertoire et son contenu :

    cp -r nested dir1/
    tree dir1
    

    L'option -r indique à cp de copier les répertoires de manière récursive (y compris tous les sous-répertoires et fichiers).

N'oubliez pas que lorsque vous déplacez ou copiez des fichiers, vous pouvez utiliser des chemins absolus ou relatifs. Choisissez celui qui est le plus pratique dans votre contexte actuel.

Visualisation et modification du contenu des fichiers

Dans cette dernière étape, nous apprendrons des méthodes plus avancées pour visualiser le contenu des fichiers et comment modifier des fichiers à l'aide d'un éditeur de texte simple.

  1. Créons un nouveau fichier avec plusieurs lignes en utilisant un "here-document" :

    cat << EOF > multiline.txt
    Line 1: Hello, Linux
    Line 2: This is a multiline file.
    Line 3: Created using a here-document.
    EOF
    

    Ceci utilise un "here-document" pour créer un fichier avec plusieurs lignes. C'est un moyen pratique de créer des fichiers avec un contenu prédéfini. L'opérateur << est suivi d'un délimiteur (dans ce cas, EOF). Le shell lit ensuite toutes les lignes suivantes comme entrée jusqu'à ce qu'il voie une ligne contenant uniquement le délimiteur. Tout ce bloc de texte est ensuite redirigé vers le fichier multiline.txt.

  2. Visualisez le contenu du fichier :

    cat multiline.txt
    

    Nous avons déjà utilisé cat, mais il est particulièrement utile pour une visualisation rapide du contenu d'un fichier.

  3. Visualisez le fichier avec des numéros de ligne :

    nl multiline.txt
    

    nl ajoute des numéros de ligne à la sortie, ce qui peut être utile pour référencer des lignes spécifiques.

  4. Visualisez les deux premières lignes du fichier :

    head -n 2 multiline.txt
    

    La commande head affiche le début d'un fichier. L'utilisation de -n 2 affiche les deux premières lignes. Il est important de noter que -n2 sans espace est également valide et fonctionne de manière identique.

  5. Visualisez la dernière ligne du fichier :

    tail -n 1 multiline.txt
    

    De même, tail est utilisé pour visualiser la fin d'un fichier. Encore une fois, -n 1 et -n1 sont équivalents.

  6. Modifions maintenant le fichier en utilisant nano :

    nano multiline.txt
    

    Nano est un éditeur de texte simple. Vous pouvez utiliser les touches fléchées pour naviguer, taper pour modifier, et suivre les commandes en bas de l'écran (^ signifie Ctrl).

    Ajoutez une quatrième ligne au fichier, puis enregistrez et quittez (Ctrl+X, puis Y, puis Entrée).

  7. Visualisez le fichier mis à jour :

    cat multiline.txt
    

    Vous devriez voir votre nouvelle ligne ajoutée au fichier.

Ces commandes vous offrent des outils puissants pour inspecter et modifier le contenu des fichiers directement depuis la ligne de commande.

Trouver des fichiers sous Linux

Trouver des fichiers rapidement est une compétence essentielle sous Linux. Apprenons quelques commandes courantes utilisées pour localiser des fichiers.

  1. Tout d'abord, utilisons la commande find pour rechercher tous les fichiers .txt dans le répertoire actuel et ses sous-répertoires :

    find . -name "*.txt"
    

    Cette commande devrait lister tous les fichiers .txt dans votre répertoire actuel et ses sous-répertoires. Si vous ne voyez aucune sortie, cela signifie qu'il n'y a pas de fichiers .txt dans votre structure de répertoire actuelle. Créons-en un :

    echo "This is a test file" > test.txt
    find . -name "*.txt"
    

    Maintenant, vous devriez voir ./test.txt dans la sortie.

  2. Recherchons maintenant un fichier spécifique dans tout le système :

    sudo find / -name "passwd"
    

    Cette commande recherchera les fichiers nommés "passwd" dans tout le système de fichiers. Nous utilisons sudo ici car la recherche dans tout le système de fichiers (en commençant par le répertoire racine /) nécessite des autorisations élevées. De nombreux répertoires système ne sont pas lisibles par les utilisateurs ordinaires, donc sudo nous permet de rechercher dans ces zones protégées.

    Vous devriez voir une sortie similaire à :

    /etc/pam.d/passwd
    /etc/passwd
    /usr/bin/passwd
    /usr/share/doc/passwd
    /usr/share/lintian/overrides/passwd
    
  3. La commande find est très puissante. Nous pouvons également effectuer des recherches en fonction de la taille du fichier. Par exemple, trouvons les fichiers de plus de 1 Mo dans votre répertoire personnel :

    find ~ -size +1M
    

    Cela devrait lister tous les fichiers de plus de 1 Mo dans votre répertoire personnel.

  4. Nous pouvons également utiliser find pour rechercher des fichiers modifiés dans un certain laps de temps. Trouvons les fichiers de votre répertoire personnel qui ont été modifiés au cours des dernières 24 heures :

    find ~ -mtime -1
    
  5. Enfin, utilisons la commande which pour trouver l'emplacement des fichiers exécutables :

    which python
    

    Vous devriez voir une sortie comme :

    /usr/bin/python
    

    Si vous ne voyez pas cette sortie, essayez :

    which python3
    

Avec ces commandes, vous devriez être en mesure de localiser facilement des fichiers dans un système Linux. N'oubliez pas que la commande find est très puissante avec de nombreuses options qui peuvent être combinées, ce qui en fait un outil polyvalent pour trouver des fichiers selon divers critères.

Résumé

Félicitations ! Vous avez terminé le laboratoire d'introduction aux opérations sur les fichiers et répertoires Linux. Récapitulons ce que vous avez appris :

  1. Vous avez exploré la structure des répertoires Linux, en comprenant l'objectif des répertoires clés comme /home, /etc et /bin.
  2. Vous avez appris les chemins absolus et relatifs, et comment naviguer efficacement dans le système de fichiers en utilisant des commandes comme cd et des raccourcis comme ~ et ...
  3. Vous vous êtes entraîné à créer des fichiers et des répertoires, et avez appris à ajouter du contenu aux fichiers en utilisant des commandes comme mkdir, touch et echo.
  4. Vous avez maîtrisé la manipulation de fichiers, y compris la copie, le déplacement et le renommage de fichiers et de répertoires avec cp et mv.
  5. Vous avez appris diverses façons de visualiser le contenu des fichiers avec cat, head et tail, et comment modifier des fichiers à l'aide de l'éditeur de texte nano.
  6. Enfin, vous avez exploré des techniques de recherche de fichiers puissantes en utilisant des commandes comme find et which, vous permettant de localiser rapidement des fichiers et des exécutables dans tout le système Linux.

Ces compétences constituent la base du travail sous Linux. Au fur et à mesure que vous poursuivrez votre apprentissage de Linux, vous développerez ces bases pour effectuer des opérations plus complexes et des tâches d'administration système.

N'oubliez pas que la clé pour maîtriser ces compétences est la pratique. N'ayez pas peur d'expérimenter avec ces commandes dans votre environnement Linux. Essayez de créer vos propres structures de répertoires, de déplacer des fichiers, de modifier le contenu des fichiers et de rechercher des fichiers en utilisant différents critères. Plus vous pratiquerez, plus vous serez à l'aise avec la ligne de commande Linux.

Grâce à ces compétences en gestion et en recherche de fichiers, vous êtes bien équipé pour naviguer et manipuler efficacement le système de fichiers Linux. Continuez à explorer et bon apprentissage !