Préparation LPI
Exam 101
104.7. Rechercher les fichier
-Connaître l'arborescence Linux
Document sous licence Creative commons « byncsa » http://creativecommons.org/licenses/byncsa/2.0/fr/
104.7 – Domaines de connaissances
Poids : 2
Connaître la localisation des fichiers d'une arborescence Linux
fondée sur le standard FHS (Filesystem Hierarchy Standard)
Commandes pour rechercher fichiers et commandes
UPMC - FP – Préparation LPI - v 1.1
2
Sommaire
File system Hierachy Standard FHS
find
locate – updatedb
whereis
which
type
UPMC - FP – Préparation LPI - v 1.1
3
104.7 - FHS
Intérêt de la connaissance de l'arborescence unix
connaitre le contenu et l'utilité des répertoires
savoir configurer les PATH (utilisateur + root)
surveiller les répertoires susceptibles de grossir rapidement
Hiérarchie entre les différents unix (linux également) peu
homogène
Tentative de normalisation avec FHS (FileSystem Hierarchy
Standard)
http://www.pathname.com/fhs
La répartition des fichiers est basée sur 2 caractéristiques
indépendantes mais mixables:
statique / variable
partageable / non partageable
UPMC - FP – Préparation LPI - v 1.1
4
104.7 - FHS
fichiers statiques : fichiers qui ne changent pas sans
l'intervention de l'administrateur (binaires, librairies, pages de
manuel,...)
fichiers variables : fichiers qui sont modifiés de manière
naturelle au cours de l'activité du système (messagerie,
journaux, verrous,...)
fichiers partageables : fichiers stockés sur une machine et
utilisables depuis une autre machine (répertoire utilisateurs –
home, messagerie, binaires,...)
fichiers non partageable : fichiers stockés sur une machine et
inutilisable depuis une autre (fichiers de configuration, noyau,
verrous,...)
différences entre répertoires système et répertoires utilisateurs
UPMC - FP – Préparation LPI - v 1.1
5
104.7 - FHS
UPMC - FP – Préparation LPI - v 1.1
6
104.7 - FHS
Système de fichier root
doit contenir l'ensemble des fichiers permettant de démarrer,
restaurer et réparer le système
bin
commandes essentielles au système
boot
fichiers nécessaires au démarrage (noyau)
dev
fichiers de périphérique
etc
fichiers de configuration
librairies et modules essentiels au système
lib
media point de montage pour les périphériques amovibles
mnt
opt
sbin
srv
tmp
usr
var
point de montage pour les systèmes de fichiers temporaires
applications
binaires essentiels au système
données pour services proposés par le système
fichiers temporaires
Seconde hiérachie
Données variables
UPMC - FP – Préparation LPI - v 1.1
7
104.7 - FHS
/bin (binaries)
contient les commandes utilisables par l'administrateur ou
l'utilisateur qui doivent être disponibles quand aucun autre
système de fichier est monté (single mode)
exemples : chmod, chown, cp, login, mkdir, mknod, ps, ...
Advertisement
/sbin (system binaries)
contient les binaires système essentiels utilisés lors du
démarrage et utilisables par l'administrateur
les binaires systèmes qui ne nécessitent pas que / soit
monté se retrouvent dans /usr/sbin ou /usr/local/sbin
exemples : shutdown, init, fsck, halt, mkfs,...
UPMC - FP – Préparation LPI - v 1.1
8
104.7 - FHS
/boot
contient les fichiers nécessaires au démarrage du système :
les fichiers du noyau en particulier
on les retrouvent parfois dans /
/dev (devices)
les fichiers spéciaux de périphérique permettant d'accéder
aux ressources physiques de la machine
répertoire plus ou moins hiérarchisé en fonction des Unix
script de création des fichiers de périphériques :
/dev/MAKEDEV
remplacé aujourd'hui par des solutions plus souples et plus
proche de la dynamique du système (udev, devfs)
UPMC - FP – Préparation LPI - v 1.1
9
104.7 - FHS
pseudo filesystems (/proc /sysfs ...)
/proc : présente les informations variables sur l'état du
système (CPU,...), des périphériques...
/sysfs : (ou /sys) filesystem virtuel chargé de présenter la
configuration matérielle du système de manière plus
structurée de /proc
● possibilité d'accéder à tout ce qui se passe dans le
noyau, périphériques, pilotes
● plusieurs catégories : block, bus, class, devices,
firmware, fs, kernel, module, power
/srv
Contient des données mises à disposition par le système
(ftp, rsync, www, cvs)
UPMC - FP – Préparation LPI - v 1.1
10
104.7 - FHS
/etc
contient les fichiers de configuration
de plus en plus, regroupement des fichiers dans des sous
répertoires propres à chaque application ou service
/etc/opt, /etc/X11, /etc/sgml, /etc/xml
/home
contient habituellement les répertoires des utilisateurs
les fichiers de configuration liés à un utilisateur sont la
plupart du temps des fichiers ou des répertoires cachés
(commencent par un point « . »)
/lib
contient les librairies nécessaires au démarrage et aux
commandes localisées dans /bin et /sbin
UPMC - FP – Préparation LPI - v 1.1
11
104.7 - FHS
/media
contient les répertoires accueillant les points de montage
des périphériques amovibles (disques externes, clés USB,
cdrom)
/mnt
contient les répertoires accueillant les points de montage
temporaires
/opt
contient dans des répertoires spécifiques la (quasi)totalité
des fichiers lié à une application
fichiers de configuration et données variables peuvent se
trouver respectivement dans /etc/opt et /var/opt
UPMC - FP – Préparation LPI - v 1.1
12
104.7 - FHS
/root
le répertoire personnel de l'utilisateur root
/tmp
contient les fichiers temporaires
ne pas stocker dans ce répertoire de données que l'on
souhaite conserver
UPMC - FP – Préparation LPI - v 1.1
13
104.7 - FHS
hiérarchie /usr
doit contenir les fichiers qui sont partageables et en lecture
seule
commandes utilisateur
bin
include fichiers d'entêtes des programmes C
lib
librairies nécessaires aux commandes situées dans /usr/bin et
/usr/sbin
fichiers de configuration
hiérarchie destinée à accueillir les applications locale, spécifique
local
à la machine et à priori non partagées avec d'autres
Advertisement
machines
sbin
commandes utilisables par l'administrateur non essentielles au
système
share stocke habituellement les fichiers statiques des applications –
pages de manuels
code source de certaines application noyau
src
UPMC - FP – Préparation LPI - v 1.1
14
104.7 - FHS
hiérarchie /var
doit contenir l'ensemble des fichiers variables
cache données en cache
lib
lock
local
log
run
log
spool
informations d'état des applications
verrous sur les ressources partagées
données variables pour la hiérarchie /usr/local/
journaux du système
données du système depuis son démarrage . Ex : fichiers PID
code source de certaines application – noyau
données en attente de traitement ultérieur
ex : mail, impressions
fichiers temporaires qui doivent subsister à un redémarrage du
système
fichiers de boîtes à lettres des utilisateurs
se trouvent dans /var/spool/mail sur certains systèmes
tmp
UPMC - FP – Préparation LPI - v 1.1
15
104.7 – commande find
La recherche démarre à partir d'un répertoire de départ et sur la
base de critères définis par des expressions
UPMC - FP – Préparation LPI - v 1.1
16
104.7 – Commande find
Commande « find »
syntaxe : find répertoires expressions
répertoires indique le ou les répertoires à partir desquels
find démarre la recherche
Les expressions indiquent :
● des conditions
● des actions à réaliser sur les fichiers trouvés
Recherche d'un nom
« name nom » : nom spécifié avec les métacaractères du
shell
exemples
$ find . name '*.txt' print
$ find . name 'httpd.conf' print
UPMC - FP – Préparation LPI - v 1.1
17
104.7 – Commande find
Recherche sur les droits d'accès
« perm permissions » : les permissions (en octal ou
symbolique) doivent être strictement celles indiquées
« perm permissions » : tous les bits indiqués doivent
être positionnés
« perm /permissions » : au moins l'un des bits indiqués
doit être positionné
exemples
$ find . perm 664 print (fichiers avec rwrwr
exactement)
$ find / perm 664 print (fichiers rwxrwxrwx
correspondent également)
UPMC - FP – Préparation LPI - v 1.1
18
104.7 – Commande find
Recherche sur les propriétaires des objets
« user nomuser » : le propriétaire de l'objet doit être
« nomuser »
exemple
$ find /home user corsini print
Recherche sur les tailles d'objets
« size [+|]tailleunité » : les fichiers doivent avoir
pour taille exactement tailleunité (+ : plus de tailleunité; :
moins de tailleunité)
où taille est un nombre et unité = « c » pour octet, « k »
pour kilooctet, « M » pour megaoctet et « G » pour Gigaoctet
exemple (les fichiers de plus de 30 Mo)
$ find /home/toto size 30M print
UPMC - FP – Préparation LPI - v 1.1
19
104.7 – Commande find
Recherche sur les types d'objets
« type code » :
ou code =
Advertisement
● « f » : fichier régulier
● « d » : répertoire
● « l » : lien symbolique
● « c » : fichier mode caractère
● « b » : fichier mode bloc
exemples
$ find . type f exec file '{}' \;
UPMC - FP – Préparation LPI - v 1.1
20
104.7 – Commande find
Recherche sur les dates d'objets
« atime [+|]nombre » : fichiers accédés il y a
« nombre » jours (+ : plus de « nombre » jours, moins de
« nombre » jours)
« mtime [+|]nombre » : fichiers modifiés il y a
« nombre » jours
« ctime [+|]nombre » : fichiers crées il y a « nombre »
jours
ou n = 24 heures
exemples
$ find . mtime 3 print (fichiers modifiés il y a
moins de 3 jours)
$ find . mtime +3 print (fichiers modifiés il y a
plus de 3 jours)
UPMC - FP – Préparation LPI - v 1.1
21
104.7 – Commande find
Affichage des objets trouvés
« print »
« ls »
[aoi@test]$ find . mtime 2 type f print
./exemple2.txt
./exemple.txt
./exemple2.txt~
[aoi@test]$ find . mtime 2 type f ls
1666079 1 rwrr 1 franck franck 142 mar 26
15:21 ./exemple2.txt
1666077 1 rwrr 1 franck franck 40 mar 26
15:12 ./exemple.txt
1666078 1 rwrr 1 franck franck 77 mar 26
15:19 ./exemple2.txt~
UPMC - FP – Préparation LPI - v 1.1
22
104.7 – Commande find
Composition de critères de recherche
ou logique
« cond1 o cond2 »
et logique
« cond1 a cond2 » (a facultatif)
groupement d'expressions
« \( cond1 [ao] cond2 \) » (attention à la
protection des paranthèses avec « \ » )
Attention : il faut laisser un espace avant et après les
paranthèses
exemple
$ find . \( name " *.jpg " o name
" *.jpeg " \) a size +100M print
UPMC - FP – Préparation LPI - v 1.1
23
104.7 – Commande find
Execution d'une commande
« exec commande {} \; » (attention à la protection du
« ; » avec « \ » )
« {} » symbolise dans la commande le fichier trouvé
exemple : rechercher tous les fichiers de type régulier et les
effacer
[aoi@test]$ ls l
total 2
rwrr 1 franck franck 0 mar 27 15:32 a
rwrr 1 franck franck 0 mar 27 15:32 b
rwrr 1 franck franck 0 mar 27 15:32 c
drwxrxrx 2 franck franck 1024 mar 27 15:33 d/
drwxrxrx 2 franck franck 1024 mar 27 15:33 e/
[aoi@test]$ find . type f exec rm {} \;
[aoi@test]$ ls l
total 2
drwxrxrx 2 franck franck 1024 mar 27 15:33 d/
drwxrxrx 2 franck franck 1024 mar 27 15:33 e/
UPMC - FP – Préparation LPI - v 1.1
24
104.7 – Commande locate
Commande locate
locate [OPTION]... PATTERN...
Affiche la liste des fichiers qui satisfont un motif
Utilise soit le file globbing soit des regexp si l'option –
regexp est spécifiée
Récupère ses informations depuis une ou plusieurs bases
de données générée par la commande updatedb
Plus rapide que find mais pas forcément exhaustif
Options
i : ignore la casse
L : suit les liens symboliques
b : restreint la recherche au basename
Advertisement
UPMC - FP – Préparation LPI - v 1.1
25
104.7 – Commande locate
$ locate *conv
/usr/bin/iconv
/usr/bin/piconv
/usr/bin/preconv
/usr/lib/gconv
/usr/lib/mandb/manconv
/usr/lib/perl5/auto/Text/Iconv
/usr/sbin/grpconv
/usr/sbin/grpunconv
/usr/sbin/pwconv
/usr/sbin/pwunconv
UPMC - FP – Préparation LPI - v 1.1
26
104.7 – Commande locate
Implicitement, locate transforme le motif recherché
MOTIF est équivalent à MOTIF
Pour restreindre la recherche uniquement au nom recherché,
utilisation de \ devant le motif
locate b '\MOTIF'
$ locate a2ps | wc l
246
$ locate b a2ps | wc l
45
$ locate b '\a2ps'
/home/franck/cours/Archives/aoi/2006/unix/cours/AOI1/1050/a2ps
/usr/bin/a2ps
/usr/lib/emacsencommon/packages/install/a2ps
/usr/lib/emacsencommon/packages/remove/a2ps
/usr/share/a2ps
/usr/share/doc/a2ps
/usr/share/emacs/sitelisp/a2ps
UPMC - FP – Préparation LPI - v 1.1
27
104.7 – Commande updatedb
Commande updatedb
Commande qui crée la base de données utilisée par la
commande locate
Généralement, lancée par un cron prériodiquement
Conséquence : entre 2 exécution de updatedb, les
nouveaux fichiers n'existent pas dans la base !
S'appuie sur le fichier de configuration
/etc/updadatedb.conf
La base de données se trouve par défaut dans
/var/lib/mlocate/mlocate.db
UPMC - FP – Préparation LPI - v 1.1
28
104.7 – Commande whereis
Commande whereis
whereis [OPTION] NOMCOMMANDE
Recherche les binaires, les fichiers sources et les pages de
manuels
whereis sélectionne les répertoires habituellement utilisés
pour accueillir des binaires
/{bin,sbin,etc}
/usr/{lib,bin,old,new,local,games,include,etc,src,man,sbin,
X386,TeX,g++include}
/usr/local/{X386,TeX,X11,include,lib,man,etc,bin,games,emacs}
UPMC - FP – Préparation LPI - v 1.1
29
104.7 – Commande which
Commande which
which NOM DE FICHIER
Recherche un binaire dont le nom correspond exactement
au nom passé en argument et qui doit se trouver
exclusivement dans les chemins définis dans la varibles
PATH
Affiche le chemin absolu lorsque le binaire est trouvé
which a2ps
/usr/bin/a2ps
UPMC - FP – Préparation LPI - v 1.1
30
104.7 – Commande which
Commande type
type NOMCOMMANDE
Commande interne au shell
Indique comment le shell interprétera la commande
lorsqu'elle sera évaluée
Recherche dans les chemins de PATH
type echo
echo is a shell builtin
$ type ls
ls est un alias vers « ls color=auto »
$ type a2ps
a2ps est /usr/bin/a2ps
UPMC - FP – Préparation LPI - v 1.1
31
Quelques conseils LPI...
UPMC - FP – Préparation LPI - v 1.1
32