Manipuler des fichiers sous Linux Flashcards
Comprendre l’arborescence Linux
1.La fondation Linux est l’organisme responsable du maintien de la
norme définissant l’arborescence des systèmes Unix/Linux.
1.1. Cette norme est appelée FHS pour Filesystem
Hierarchy Standard et est disponible sous plusieurs
formats
Prenons quelques exemples pour illustrer
cette notion :
Les répertoires contenant des informations stockées sur un équipement mais
utilisées par d’autres équipements seront identifiés par le mot-clé “shareable”
Les répertoires contenant des fichiers qui ne peuvent pas ou ne doivent pas être
partagés entre plusieurs équipements seront marqués “unshareable” (non
partageables en français).
Les répertoires contenant des données qui ne peuvent pas changer d’elles-
mêmes, ou sans l’intervention de l’administrateur, avec nécessité d’une
élévation de privilèges sont marqués “static”.
Les répertoires qui ne sont pas marqués statiques sont marqués “variable”
(variables)
Répertoires adressés de manière absolue
ou relative:
Tous les exemples de répertoires cités ici sont adressés de manière
absolue, c’est-à-dire à partir de la racine du système /
La norme FHS adresse ces recommandations à partir d’un système monté
sur la racine /. L’administrateur peut quant à lui adresser les répertoires et
les fichiers de manière relative à un emplacement courant. Pour cela,
chaque répertoire sous la racine / possède deux fichiers spéciaux nommés
. pour se désigner soi-même, et .. pour désigner son parent dans
l’arborescence
Répertoires adressés de manière relative:
Ainsi, la commande suivante permet de vous déplacer :
dans /home
puis dans ..(donc retour à /)
puis à nouveau dans /home
puis dans . (c’est-à-dire /home à ce moment-là) ;
puis dans .. (donc retour à /)
et finalement dans /home.
Découvrir les principaux répertoires de
l’arborescence
- Le répertoire /root
- Le répertoire /home
- Le répertoire /usr
- Le répertoire /var
/root
- La norme ne stipule pas de répertoire /root. Or celui-ci est présent sur quasiment
toutes les distributions Linux ! - Le répertoire /root est créé pour stocker “les données personnelles de
l’administrateur”, mais il n’est pas indispensable pour faire démarrer le système et
l’exploiter. Et stocker dans ce répertoire des données critiques pour le système est
effectivement une erreur. - Le compte root est le compte privilégié de Linux, il doit être réservé exclusivement
aux tâches administratives sur le système.
/home
- En fait, il l’est, mais de manière facultative également.
- Le répertoire /home est, par définition, très contextuel, ce qui le rend impossible à
normaliser. Ainsi, sur tel serveur, vous n’aurez peut-être tout simplement pas de
compte utilisateur… Du moins pas de compte nécessitant un répertoire personnel de
stockage de données. Sur tel autre serveur à objectif de partage de fichier, au
contraire, vous en aurez une multitude. - FHS précise néanmoins que les fichiers de configuration nécessaires aux utilisateurs
qui souhaitent exploiter des applications et des programmes doivent être stockés
dans un sous-répertoire de /home désigné par le login du compte utilisateur, préfixé
d’un point
/usr
- Ce répertoire est devenu avec le temps une arborescence majeure des distributions
Linux. Il contient lui-même des répertoires bin et sbin dans lesquels se situent
également des commandes ! - /bin: ce sont les commandes critiques pour le bon fonctionnement du système, quel
que soit son objectif. Elles sont lancées par le système et par l’administrateur - /sbin: ce sont les commandes uniquement à destination de l’administrateur pour la
gestion du système. - /usr/bin: ce répertoire contient majoritairement les commandes à destination de
tous les utilisateurs du système, privilégiés ou non. - /usr/sbin: ce sont des commandes à nouveau à destination unique de
l’administrateur, mais non critiques pour le bon fonctionnement du système
/var
- L’objectif de ce répertoire est simple : stocker toutes les informations utilisateurs,
administrateurs et systèmes variables. - Normalement, avec une utilisation classique de /var, /usr devrait pouvoir être utilisé
en lecture seule ! Ce qui est un gage de sécurité très important.
Sous répertoire important dans /var
- /var/log: répertoire contenant l’arborescence de toutes les traces systèmes et
applicatives. C’est dans ce répertoire qu’il est possible de consulter les traces des
historiques de démarrage du système, de connexion des comptes utilisateurs,
d’activité des services réseaux (SSH, HTTPD, SMTP, etc.) ainsi que les traces du noyau. - /var/run: répertoire contenant toutes les données relatives aux processus en cours
d’exécution, les sémaphores, les données applicatives, les fichiers numéro de
processus, etc. - /var/spool: répertoire contenant des données stockées de manière temporaire entre
processus. Souvent, ce répertoire est utilisé pour stocker des données relatives à des
actions ou tâches à effectuer dans un futur proche par les processus en cours
d’exécution. - /var/mail: c’est le répertoire de stockage des messageries électroniques locales des
comptes utilisateurs du système.
Le répertoire /proc
- Cette arborescence contient toutes les informations concernant le processus ! Et il y
en a beaucoup… Pour lister le contenu de cette arborescence, lancez la commande
suivante : ls /proc
Exemple /proc/1
- Observons par exemple le contenu du répertoire /proc/1 qui est le premier
processus du noyau : - Lance la commande initsplash qui lui va lancer à son tour le processus systemd
Le répertoire /sys
Cette arborescence contient les informations sur les périphériques gérés par le noyau,
notamment :
* les périphériques de type bloc ou caractères dans les répertoires /sys/block ou
/sys/dev
* les drivers dans /sys/devices
* les différents systèmes de fichiers dans /sys/fs
* les modules du noyau dans /sys/module.
* Le répertoire /sys/kernel contient une arborescence de fichiers représentant des
variables du noyau accessibles en écriture et permettant de modifier le
comportement à chaud du système.
Visualiser des fichiers
Nous aborderons dans ce chapitre les commandes cat et le couple infernal more et
less.
Nous verrons également les trois canaux permettant de manipuler les flux de données,
mais aussi les commandes grep, sed et awk qui ajoutent des fonctionnalités de filtrage
et de transformation de ces flux.
Enfin nous terminerons par la fonctionnalité favorite de tout administrateur : la
possibilité de chaîner des commandes avec les pipes Linux !
Afficher le contenu des fichiers
La commande cat est une commande externe
* Elle est très connue des administrateurs Linux et Unix. En effet c’est une commande
historique qui permet de prendre un ou plusieurs flux de données en paramètre
d’entrée, et de les afficher à l’écran sur le terminal.
* Le terme “cat” provient de l’abréviation de “catenate” en anglais, qui signifie
“concaténer” (autrement dit : “mettre bout à bout”)