Certification Linux LPI/Administrateur système débutant/Examen 101/GNU et commandes Unix/Gestion de base des fichiers
Une page de Wikiversité.
| Chapitre 3 | |||
| Leçon : Certification Linux LPI | |||
|---|---|---|---|
| Chap. préc. : | Gérer des flux de textes en utilisant les filtres | ||
| Chap. suiv. : | Utiliser les flux, les tuyeaux (pipes) et les re-directions | ||
En raison de limitations techniques, la typographie souhaitable du titre, « Certification Linux LPI : Gestion de base des fichiers
Certification Linux LPI/Administrateur système débutant/Examen 101/GNU et commandes Unix/Gestion de base des fichiers », n'a pu être restituée correctement ci-dessus.
Sommaire |
[modifier] Objectifs
Description: Les candidats devraient être en mesure d'utiliser les commandes de base UNIX pour copier, déplacer, et retirer des fichiers et des répertoires. Ces taches regroupent les opérations avancées de gestion de fichier tel que la copie récursive de fichiers multiples, retirer des répertoires récursivement, et déplacer des fichiers qui rencontrent " a wildcard pattern". Cela inclus d'utiliser les spécifications simples et avancés de "wildcard" pour se référer aux fichiers, aussi bien que d'utiliser find pour localiser et agir sur les fichiers en se basant sur le type, la taille, et le temps(time).
Key files terms and utilities include:
cp
find
mkdir
mv
ls
rm
rmdir
touch
file globbing
cp: Copy files and directories. ls: List directory contents.
[modifier] Créer et supprimer des répertoires
Pour créer un répertoire, utiliser mkdir.
mkdir [options] dir
Options courantes:
- -m mode: set permission mode. Default use umask.
- -p parent: créer le répertoire parent si c'est nécessaire.
Exemples:
mkdir -m 0700 bin mkdir -p bin/system/x86
Pour supprimer un répertoire vide, utiliser rmdir.
rmdir [options] dir
Options courantes:
- -p parent: supprimer les sous-répertoires vides.
Exemples:
rmdir tmp rmdir -p bin/system/x86
[modifier] Copier des fichiers et des répertoires
Pour copier une fichier en un autre, ou vers un répertoire, utiliser la commande cp.
cp [options] source target
Source et target peuvent être un fichier ou un répertoire.
Options courantes:
- -i interactif: demande confirmation pour écraser
- -r recursif: copie les sous répertoires et leur contenu. Utiliser -R pour les fichiers spéciaux.
- -f forcer: forcer l'écrasement
The default is to silently clobber the target file. Does not alter the source.
Exemples:
cp *.[a-z] /tmp cp readme readme.orig cp ls /bin cp -ri bin/* /bin
[modifier] Déplacer et renommer des fichiers
Pour renommer un fichier, un répertoire ou pour déplacer un fichier ou un répertoire vers un autre endroit, utilisez mv.
mv [options] source target
Source et target peuvent être un fichier ou un répertoire.
Options courantes:
- -i interactive: prompt to overwrite
- -f force: force the overwriting
- -v verbose
The default is to silently clobber the target file. Does not alter the srcfile.
Exemples:
mv *.[a-z] /tmp mv readme readme.orig mv ls /bin mv -fi bin/* /bin
[modifier] Afficher une liste de fichiers et des informations
La commande pour lister les fichiers dans le répertoire courant est ls.
ls [options] [filenames]
Options courantes:
- -l pour le format long
- -F Append a file type character
- -a Tous les fichiers, y compris les fichiers cachés
- -R Listage récursif des sous-répertoires
- -d Do not descend into directory
La commande ls est l'équivalent de la commande dir sur DOS.
Exemple de sortie de ls:
ls -l /bin/ls -rwxr-xr-x 1 root root 46784 mar 23 2002 /bin/ls ls -ld /bin drwxr-xr-x 2 root root 2144 nov 5 11:55 /bin ls -a . .bash_history .bash_profile .bashrc ... ls -dF /etc .bashrc /bin/ls .bashrc /bin/ls* /etc/
[modifier] Types de fichiers
Le format long signifie:
ls -l /etc/hosts #Lister sous le format long le fichier hosts -rw-r—r-- 1 root root 677 Jul 5 22:18 /etc/hosts
[modifier] Contenu des fichiers et emplacement
Linux/Unix ne distingue pas un type de fichier par son extension, comme Windows. Pour déterminer le contenu d'un fichier, utiliser file.
file /etc .bashrc /bin/ls /dev/cdrom /etc: directory .bashrc: ASCII English text /bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), stripped /dev/cdrom: symbolic link to /dev/hdc
Pour déterminer si une commande est un commande interne du shell ou un programme, utilisez type, et utilisez which pour trouver sa position.
type cp cd ls which type cp is /bin/cp cd is a shell builtin ls is aliased to `ls $LS_OPTIONS' which is aliased to `type -p' type is a shell builtin which cut /usr/bin/cut
[modifier] Créer et utiliser des fichiers
Les noms de fichiers peuvent être créé avec les redirections I/O :
cat chapter1 chapter2 > book
Un éditeur comme vi :
vi mynewfile
Plein d'utilitaires UNIX :
cp file newfile
Une application
netscape
La commande touch, qui créée des fichiers vides
touch memo
Un nom de fichier valide :
- au maximum 255 caractères
- doit respecter la casse (majuscules, minuscules…)
- peut comporter tous les caractères sauf l'anti-slash '\'
Sont recommandés les caractères alphanumériques ainsi que les caractères plus, moins et underscore.
Caractères à éviter
- Le caractère tiret.
touch my-file -lt
- Espace blanc.
touch more drink touch "more drink"
- Beaucoup d'autres caractères spéciaux !@#$%^&*():;"'}{|\<,>.?~`
touch memo*
[modifier] Supprimer des fichiers et des répertoires
Pour supprimer des fichiers ou arborescences, utilisez rm.
rm [options] files
Files peut être un fichier ou un répertoire.
Options courantes:
- -i interactif: demande confirmation pour chaque suppression
- -f forcer: forcer l'écrasement
- -r recursif: supprimer les sous-répertoires et leur contenu
Il n'y a pas de commande pour annuler la suppression.
Exemples:
rm *.[a-z] rm readme readme.orig rm ls /bin rm -rfi /bin cd; rm -rf * .*
[modifier] Trouver des fichiers dans le sous-répertoire d'une arborescence
Pour trouver un fichier dans une arborescence, utilisez find.
find [subtrees] [conditions] [actions]
The command can take multiple conditions and will search recursively in the subtree.
Some possible conditions are:
- -name [FNG] # Search fo the FNG name
- -type c # Type of file [bcdfl]
- -size [+-]# # Has a +- size in blocks (c:bytes,k:kilo)
- -user [name] # Own by user
- -atime [+-]# # Accessed days ago +n means not been accessed for the last n days -n means been accessed the last ndays.
- -mtime [+-]# # Modified days ago
- -perm nnn # Has permision flags nnn
Some possible actions are:
- -print # Print the pathname
- -exec cmd {} \; # Execute cmd on the file
- -ok cmd {} \; # Same as -exec but ask first
Examples
find . -name '*.[ch]' -print
find /var /tmp . -size +20 -print
find ~ -type c -name '*sys*' -print
find / -type f -size +2c -exec rm -i {} \;
find / -atime -3 -print
find ~jo ~toto -user chloe -exec mv {} /tmp \;
[modifier] whereis and which
Pour localiser un binaire, un fichier source, ou une page de manuel, utilisez whereis.
whereis [options]
Options courantes:
- -b: Chercher seulement les binaires.
- -m: Chercher seulement des sections de manuel.
- -s: Chercher seulement des sources.
Exemples:
whereis host host: /usr/bin/host /etc/host.conf /usr/share/man/man1/host.1.gz whereis -m host host: /usr/share/man/man1/host.1.gz
Pour localiser un fichier qui se trouve quelque part défini par la variable PATH, utilisez which.
which -a ls /bin/ls
The -a will look for all possible matches in PATH, not just for the first one.
[modifier] Exercices
- Écrivez une commande pour supprimer de façon interactive tous les fichiers .tmp dans votre répertoire personnel. Répondez y à chaque invite.
- Listez tous les fichiers dans les répertoires personnels des utilisateurs finissant par .pdf qui sont plus gros que 50 blocs et qui n'ont pas été accédés depuis un mois
- Créez un fichier file.h qui contiendra tous les noms de fichier se terminant par .h qui se trouvent dans le répertoire /usr.
- Faites un touch sur tous les fichiers c qui se trouvent dans le répertoire /usr/src/packages
- Quelles sont les permissions par défaut quand vous créez un nouveau fichier et un nouveau répertoire ?
- Comment pouvez vous créer un nouveau fichier ou répertoire qui contient un espace dans le nom ? (Exemple: 'new dir')
- Quelle est la commande pour supprimer tous les fichiers de type char et block dans votre répertoire personnel ?
- Comment trouver la position du programme find ?
- Supprimez tous les fichiers dans /tmp qui ne sont dont root n'est pas le propriétaire et sui n'ont pas été accédés depuis une semaine.