Recherche de site Web

Série RHCSA : Comment effectuer la gestion des fichiers et des répertoires - Partie 2


Dans cet article, RHCSA Partie 2 : Gestion des fichiers et des répertoires, nous passerons en revue certaines compétences essentielles requises dans les tâches quotidiennes d'un administrateur système.

Créer, supprimer, copier et déplacer des fichiers et des répertoires

La gestion des fichiers et des répertoires est une compétence essentielle que tout administrateur système doit posséder. Cela inclut la possibilité de créer/supprimer des fichiers texte à partir de zéro (le cœur de la configuration de chaque programme) et des répertoires (où vous organiserez les fichiers et autres répertoires), et de connaître le type de fichiers existants.

La commande touch peut être utilisée non seulement pour créer des fichiers vides, mais également pour mettre à jour les heures d'accès et de modification des fichiers existants.

Vous pouvez utiliser file [filename] pour déterminer le type d'un fichier (cela vous sera utile avant de lancer votre éditeur de texte préféré pour le modifier).

et rm [filename] pour le supprimer.

En ce qui concerne les répertoires, vous pouvez créer des répertoires dans des chemins existants avec mkdir [directory] ou créer un chemin complet avec mkdir -p [/full/path/to/directory].

Lorsqu'il s'agit de supprimer des répertoires, vous devez vous assurer qu'ils sont vides avant d'émettre la commande rmdir [directory], ou utiliser la commande plus puissante (à manipuler avec précaution !) rm -rf [répertoire]. Cette dernière option forcera la suppression récursive du [répertoire] et de tout son contenu – utilisez-le donc à vos propres risques.

Redirection et pipeline d'entrée et de sortie

L'environnement de ligne de commande fournit deux fonctionnalités très utiles qui permettent de rediriger l'entrée et la sortie des commandes depuis et vers des fichiers, et d'envoyer la sortie d'une commande à une autre, appelée redirection et pipeline, respectivement.

Pour comprendre ces deux concepts importants, nous devons d'abord comprendre les trois types les plus importants de flux (ou séquences) de caractères d'E/S (entrée et sortie), qui sont en fait des fichiers spéciaux, au sens *nix du terme.

  1. L'Entrée standard (alias stdin) est attachée par défaut au clavier. En d’autres termes, le clavier est le périphérique de saisie standard pour saisir des commandes sur la ligne de commande.
  2. La sortie standard (alias stdout) est par défaut attachée à l'écran, le périphérique qui « reçoit » la sortie des commandes et les affiche à l'écran.
  3. L'Erreur standard (alias stderr) est l'endroit où les messages d'état d'une commande sont envoyés par défaut, qui est également l'écran.

Dans l'exemple suivant, la sortie de ls /var est envoyée à stdout (l'écran), ainsi que le résultat de ls /tecmint . Mais dans ce dernier cas, c'est stderr qui est affiché.

Pour identifier plus facilement ces fichiers spéciaux, chacun d'entre eux se voit attribuer un descripteur de fichier, une représentation abstraite utilisée pour y accéder. L’essentiel à comprendre est que ces fichiers, comme d’autres, peuvent être redirigés. Cela signifie que vous pouvez capturer la sortie d'un fichier ou d'un script et l'envoyer en entrée à un autre fichier, commande ou script. Cela vous permettra de stocker sur disque, par exemple, la sortie de commandes pour un traitement ou une analyse ultérieure.

Pour rediriger stdin (fd 0), stdout (fd 1) ou stderr (fd 2), les opérateurs suivants sont disponibles.

Redirection Operator

Effet

>

Redirige la sortie standard vers un fichier contenant la sortie standard. Si le fichier de destination existe, il sera écrasé.

>>

Ajoute la sortie standard à un fichier.

2>

Redirige l'erreur standard vers un fichier contenant la sortie standard. Si le fichier de destination existe, il sera écrasé.

2>>

Ajoute une erreur standard au fichier existant.

&>

Redirige à la fois la sortie standard et l'erreur standard vers un fichier ; si le fichier spécifié existe, il sera écrasé.

<

Utilise le fichier spécifié comme entrée standard.

<>

Le fichier spécifié est utilisé à la fois pour l'entrée standard et la sortie standard.

Contrairement à la redirection, le pipelining s'effectue en ajoutant une barre verticale (|) après une commande et avant une autre.

Souviens-toi:

  1. La Redirection est utilisée pour envoyer la sortie d'une commande vers un fichier, ou pour envoyer un fichier en entrée d'une commande.
  2. Le Pipelining est utilisé pour envoyer la sortie d'une commande à une autre commande en entrée.

Exemples de redirection et de pipeline

Exemple 1 : Redirection de la sortie d'une commande vers un fichier

Il y aura des moments où vous devrez parcourir une liste de fichiers. Pour ce faire, vous pouvez d'abord enregistrer cette liste dans un fichier, puis lire ce fichier ligne par ligne. S'il est vrai que vous pouvez parcourir directement la sortie de ls, cet exemple sert à illustrer la redirection.

ls -1 /var/mail > mail.txt

Exemple 2 : redirection de stdout et stderr vers /dev/null

Si nous souhaitons empêcher l'affichage de stdout et stderr à l'écran, nous pouvons rediriger les deux descripteurs de fichiers vers /dev/null. Notez comment la sortie change lorsque la redirection est implémentée pour la même commande.

ls /var /tecmint
ls /var/ /tecmint &> /dev/null

Exemple 3 : Utiliser un fichier comme entrée d'une commande

Alors que la syntaxe classique de la commande cat est la suivante.

cat [file(s)]

Vous pouvez également envoyer un fichier en entrée, en utilisant le bon opérateur de redirection.

cat < mail.txt

Exemple 4 : Envoi de la sortie d'une commande en entrée à une autre

Si vous disposez d'un grand répertoire ou d'une liste de processus et que vous souhaitez pouvoir localiser un certain fichier ou processus en un coup d'œil, vous souhaiterez acheminer la liste vers grep.

Notez que nous utilisons des pipelines dans l'exemple suivant. Le premier recherche le mot-clé requis, tandis que le second éliminera la commande grep réelle des résultats. Cet exemple répertorie tous les processus associés à l'utilisateur Apache.

ps -ef | grep apache | grep -v grep