Certification Linux LPI/Administrateur système débutant/Examen 101/GNU et commandes Unix/Gestion de base des fichiers

Une page de Wikiversité.

WP-TranslationProject TwoFlags.svg Il a été demandé de traduire cette page depuis (en)



Gestion de base des fichiers
Computer-aj aj ashton 01.svg
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
Icon falscher Titel.svg

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

  1. Écrivez une commande pour supprimer de façon interactive tous les fichiers .tmp dans votre répertoire personnel. Répondez y à chaque invite.
  2. 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
  3. 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.
  4. Faites un touch sur tous les fichiers c qui se trouvent dans le répertoire /usr/src/packages
  5. Quelles sont les permissions par défaut quand vous créez un nouveau fichier et un nouveau répertoire ?
  6. Comment pouvez vous créer un nouveau fichier ou répertoire qui contient un espace dans le nom ? (Exemple: 'new dir')
  7. Quelle est la commande pour supprimer tous les fichiers de type char et block dans votre répertoire personnel ?
  8. Comment trouver la position du programme find ?
  9. 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.