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

Créer, Supprimer, Copier et Déplacer des Fichiers et Répertoires
La gestion des fichiers et répertoires est une compétence critique que tout administrateur système doit posséder. Cela inclut la capacité 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 des fichiers et d’autres répertoires), et de découvrir le type de fichiers existants.
La commande touch peut être utilisée non seulement pour créer des fichiers vides, mais aussi pour mettre à jour les temps d’accès et de modification des fichiers existants.

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

et rm [nom_de_fichier]
pour le supprimer.

En ce qui concerne les répertoires, vous pouvez créer des répertoires à l’intérieur de chemins existants avec mkdir [répertoire]
ou créer un chemin complet avec mkdir -p [/chemin/complet/vers/répertoire]
.

Pour supprimer des répertoires, vous devez vous assurer qu’ils sont vides avant d’exécuter la commande rmdir [répertoire]
, ou utilisez l’option plus puissante (à utiliser avec précaution !) rm -rf [répertoire]
. Cette dernière option supprimera de force récursivement le [répertoire]
et tout son contenu – donc utilisez-la à vos risques et périls.
Redirection d’Entrée et de Sortie et Tuyautage
L’environnement de ligne de commande offre 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 vers une autre, appelées redirection et pipeline, respectivement.
Pour comprendre ces deux concepts importants, nous devons d’abord comprendre les trois types les plus importants de flux d’E/S (Entrée et Sortie) de caractères, qui sont en fait des fichiers spéciaux, dans le sens *nix du terme.
- L’entrée standard (alias stdin) est par défaut attachée au clavier. En d’autres termes, le clavier est le périphérique d’entrée standard pour saisir des commandes dans la ligne de commande.
- 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.
- 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 vers 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 se voit attribuer un descripteur de fichier, une représentation abstraite utilisée pour y accéder. L’essentiel à comprendre est que ces fichiers, tout comme les autres, peuvent être redirigés. Ce que cela signifie, c’est que vous pouvez capturer la sortie d’un fichier ou d’un script et l’envoyer en entrée vers un autre fichier, une commande ou un script. Cela vous permettra de stocker sur le disque, par exemple, la sortie des 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 | Effect |
> | Redirects standard output to a file containing standard output. If the destination file exists, it will be overwritten. |
>> | Appends standard output to a file. |
2> | Redirects standard error to a file containing standard output. If the destination file exists, it will be overwritten. |
2>> | Appends standard error to the existing file. |
&> | Redirects both standard output and standard error to a file; if the specified file exists, it will be overwritten. |
< | Uses the specified file as standard input. |
<> | The specified file is used for both standard input and standard output. |
Contrairement à la redirection, le pipelining est effectué en ajoutant une barre verticale (|)
après une commande et avant une autre.
Rappelez-vous :
- La redirection est utilisée pour envoyer la sortie d’une commande vers un fichier, ou pour envoyer un fichier en entrée vers une commande.
- Le pipelining est utilisé pour envoyer la sortie d’une commande vers une autre commande en tant qu’entrée.
Exemples de redirection et de pipelining
Exemple 1 : Rediriger la sortie d’une commande vers un fichier
Il y aura des moments où vous devrez itérer sur une liste de fichiers. Pour ce faire, vous pouvez d’abord enregistrer cette liste dans un fichier, puis lire ce fichier ligne par ligne. Bien qu’il soit vrai que vous pouvez itérer directement sur la sortie de ls, cet exemple sert à illustrer la redirection.
# ls -1 /var/mail > mail.txt

Exemple 2 : Rediriger à la fois stdout et stderr vers /dev/null
En cas de vouloir empêcher à la fois stdout et stderr d’être affichés à l’écran, nous pouvons rediriger les deux descripteurs de fichier vers /dev/null
. Notez comment la sortie change lorsque la redirection est mise en œuvre pour la même commande.
# ls /var /tecmint # ls /var/ /tecmint &> /dev/null

Exemple 3 : Utilisation d’un fichier comme entrée pour une commande
Alors que la syntaxe classique de la commande cat est la suivante.
# cat [file(s)]
Vous pouvez également envoyer un fichier en tant qu’entrée, en utilisant le bon opérateur de redirection.
# cat < mail.txt

Exemple 4 : Envoyer la sortie d’une commande en tant qu’entrée vers une autre
Si vous avez un répertoire ou une liste de processus volumineux et que vous souhaitez pouvoir localiser un fichier ou un processus spécifique en un coup d’œil, vous voudrez mettre en pipeline la liste vers grep.
Notez que nous utilisons deux 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

Source:
https://www.tecmint.com/file-and-directory-management-in-linux/