Unix / Linux - Gestion de fichiers
Dans ce chapitre, nous discuterons en détail de la gestion des fichiers sous Unix. Toutes les données sous Unix sont organisées en fichiers. Tous les fichiers sont organisés en répertoires. Ces répertoires sont organisés en une structure arborescente appelée système de fichiers.
Lorsque vous travaillez avec Unix, d'une manière ou d'une autre, vous passez la plupart de votre temps à travailler avec des fichiers. Ce tutoriel vous aidera à comprendre comment créer et supprimer des fichiers, les copier et les renommer, créer des liens vers eux, etc.
Sous Unix, il existe trois types de fichiers de base -
Ordinary Files- Un fichier ordinaire est un fichier sur le système qui contient des données, du texte ou des instructions de programme. Dans ce didacticiel, vous examinerez l'utilisation de fichiers ordinaires.
Directories- Les répertoires stockent les fichiers spéciaux et ordinaires. Pour les utilisateurs familiers avec Windows ou Mac OS, les répertoires Unix sont équivalents aux dossiers.
Special Files- Certains fichiers spéciaux permettent d'accéder au matériel tel que les disques durs, les lecteurs de CD-ROM, les modems et les adaptateurs Ethernet. D'autres fichiers spéciaux sont similaires aux alias ou aux raccourcis et vous permettent d'accéder à un seul fichier en utilisant différents noms.
Liste des fichiers
Pour lister les fichiers et répertoires stockés dans le répertoire courant, utilisez la commande suivante -
$ls
Voici l'exemple de sortie de la commande ci-dessus -
$ls
bin hosts lib res.03
ch07 hw1 pub test_results
ch07.bak hw2 res.01 users
docs hw3 res.02 work
La commande ls soutient le -l option qui vous aiderait à obtenir plus d'informations sur les fichiers répertoriés -
$ls -l
total 1962188
drwxrwxr-x 2 amrood amrood 4096 Dec 25 09:59 uml
-rw-rw-r-- 1 amrood amrood 5341 Dec 25 08:38 uml.jpg
drwxr-xr-x 2 amrood amrood 4096 Feb 15 2006 univ
drwxr-xr-x 2 root root 4096 Dec 9 2007 urlspedia
-rw-r--r-- 1 root root 276480 Dec 9 2007 urlspedia.tar
drwxr-xr-x 8 root root 4096 Nov 25 2007 usr
drwxr-xr-x 2 200 300 4096 Nov 25 2007 webthumb-1.01
-rwxr-xr-x 1 root root 3192 Nov 25 2007 webthumb.php
-rw-rw-r-- 1 amrood amrood 20480 Nov 25 2007 webthumb.tar
-rw-rw-r-- 1 amrood amrood 5654 Aug 9 2007 yourfile.mid
-rw-rw-r-- 1 amrood amrood 166255 Aug 9 2007 yourfile.swf
drwxr-xr-x 11 amrood amrood 4096 May 29 2007 zlib-1.2.3
$
Voici les informations sur toutes les colonnes répertoriées -
First Column- Représente le type de fichier et l'autorisation donnée sur le fichier. Vous trouverez ci-dessous la description de tous les types de fichiers.
Second Column - Représente le nombre de blocs de mémoire pris par le fichier ou le répertoire.
Third Column- Représente le propriétaire du fichier. C'est l'utilisateur Unix qui a créé ce fichier.
Fourth Column- Représente le groupe du propriétaire. Chaque utilisateur Unix aura un groupe associé.
Fifth Column - Représente la taille du fichier en octets.
Sixth Column - Représente la date et l'heure auxquelles ce fichier a été créé ou modifié pour la dernière fois.
Seventh Column - Représente le fichier ou le nom du répertoire.
dans le ls -l exemple de liste, chaque ligne de fichier commence par un d, -, ou l. Ces caractères indiquent le type de fichier répertorié.
N ° Sr. | Préfixe et description |
---|---|
1 | - Fichier normal, tel qu'un fichier texte ASCII, un exécutable binaire ou un lien physique. |
2 | b Bloquer le fichier spécial. Bloquer le fichier de périphérique d'entrée / sortie tel qu'un disque dur physique. |
3 | c Fichier spécial de caractères. Fichier de périphérique d'entrée / sortie brut tel qu'un disque dur physique. |
4 | d Fichier de répertoire contenant une liste d'autres fichiers et répertoires. |
5 | l Fichier de lien symbolique. Liens sur n'importe quel fichier régulier. |
6 | p Tuyau nommé. Un mécanisme pour les communications interprocessus. |
sept | s Prise utilisée pour la communication interprocessus. |
Métacaractères
Les métacaractères ont une signification particulière sous Unix. Par exemple,* et ?sont des métacaractères. Nous utilisons* pour correspondre à 0 ou plusieurs caractères, un point d'interrogation (?) correspond à un seul caractère.
Par exemple -
$ls ch*.doc
Affiche tous les fichiers dont les noms commencent par ch et terminer par .doc -
ch01-1.doc ch010.doc ch02.doc ch03-2.doc
ch04-1.doc ch040.doc ch05.doc ch06-2.doc
ch01-2.doc ch02-1.doc c
Ici, *fonctionne comme un méta-caractère qui correspond à n'importe quel caractère. Si vous souhaitez afficher tous les fichiers se terminant par.doc, alors vous pouvez utiliser la commande suivante -
$ls *.doc
Fichiers cachés
Un fichier invisible en est un, dont le premier caractère est le point ou le caractère point (.). Les programmes Unix (y compris le shell) utilisent la plupart de ces fichiers pour stocker les informations de configuration.
Certains exemples courants de fichiers cachés incluent les fichiers -
.profile - Le script d'initialisation Bourne shell (sh)
.kshrc - Le script d'initialisation du shell Korn (ksh)
.cshrc - Le script d'initialisation du shell C (csh)
.rhosts - Le fichier de configuration du shell distant
Pour lister les fichiers invisibles, spécifiez le -a option pour ls -
$ ls -a
. .profile docs lib test_results
.. .rhosts hosts pub users
.emacs bin hw1 res.01 work
.exrc ch07 hw2 res.02
.kshrc ch07.bak hw3 res.03
$
Single dot (.) - Ceci représente le répertoire actuel.
Double dot (..) - Ceci représente le répertoire parent.
Création de fichiers
Vous pouvez utiliser le viéditeur pour créer des fichiers ordinaires sur n'importe quel système Unix. Vous devez simplement donner la commande suivante -
$ vi filename
La commande ci-dessus ouvrira un fichier avec le nom de fichier donné. Maintenant, appuyez sur la toucheipour entrer dans le mode d'édition. Une fois que vous êtes en mode édition, vous pouvez commencer à écrire votre contenu dans le fichier comme dans le programme suivant -
This is unix file....I created it for the first time.....
I'm going to save this content in this file.
Une fois que vous avez terminé avec le programme, suivez ces étapes -
Appuyez sur la touche esc pour sortir du mode d'édition.
Appuyez sur deux touches Shift + ZZ ensemble pour sortir complètement du fichier.
Vous aurez maintenant un fichier créé avec filename dans le répertoire courant.
$ vi filename
$
Édition de fichiers
Vous pouvez modifier un fichier existant à l'aide du viéditeur. Nous discuterons en bref comment ouvrir un fichier existant -
$ vi filename
Une fois le fichier ouvert, vous pouvez entrer en mode édition en appuyant sur la touche ipuis vous pouvez continuer en éditant le fichier. Si vous souhaitez vous déplacer ici et là dans un fichier, vous devez d'abord sortir du mode d'édition en appuyant sur la toucheEsc. Après cela, vous pouvez utiliser les touches suivantes pour vous déplacer dans un fichier -
l touche pour se déplacer vers le côté droit.
h touche pour se déplacer vers le côté gauche.
k touche pour remonter dans le fichier.
j touche pour se déplacer vers le bas dans le fichier.
Ainsi, en utilisant les touches ci-dessus, vous pouvez positionner votre curseur là où vous souhaitez éditer. Une fois que vous êtes positionné, vous pouvez utiliser leitouche pour entrer en mode édition. Une fois que vous avez terminé l'édition de votre fichier, appuyez surEsc et enfin deux clés Shift + ZZ ensemble pour sortir complètement du fichier.
Afficher le contenu d'un fichier
Vous pouvez utiliser le catcommande pour voir le contenu d'un fichier. Voici un exemple simple pour voir le contenu du fichier créé ci-dessus -
$ cat filename
This is unix file....I created it for the first time.....
I'm going to save this content in this file.
$
Vous pouvez afficher les numéros de ligne en utilisant le -b option avec la cat commande comme suit -
$ cat -b filename
1 This is unix file....I created it for the first time.....
2 I'm going to save this content in this file.
$
Compter les mots dans un fichier
Vous pouvez utiliser le wccommande pour obtenir un compte du nombre total de lignes, de mots et de caractères contenus dans un fichier. Voici un exemple simple pour voir les informations sur le fichier créé ci-dessus -
$ wc filename
2 19 103 filename
$
Voici le détail des quatre colonnes -
First Column - Représente le nombre total de lignes dans le fichier.
Second Column - Représente le nombre total de mots dans le fichier.
Third Column- Représente le nombre total d'octets dans le fichier. Il s'agit de la taille réelle du fichier.
Fourth Column - Représente le nom du fichier.
Vous pouvez donner plusieurs fichiers et obtenir des informations sur ces fichiers à la fois. Voici une syntaxe simple -
$ wc filename1 filename2 filename3
Copie de fichiers
Pour faire une copie d'un fichier, utilisez le cpcommander. La syntaxe de base de la commande est -
$ cp source_file destination_file
Voici l'exemple pour créer une copie du fichier existant filename.
$ cp filename copyfile
$
Vous trouverez maintenant un autre fichier copyfiledans votre répertoire actuel. Ce fichier sera exactement le même que le fichier d'originefilename.
Renommer les fichiers
Pour changer le nom d'un fichier, utilisez le mvcommander. Voici la syntaxe de base -
$ mv old_file new_file
Le programme suivant renomme le fichier existant filename à newfile.
$ mv filename newfile
$
le mvLa commande déplacera complètement le fichier existant dans le nouveau fichier. Dans ce cas, vous trouverez uniquementnewfile dans votre répertoire actuel.
Suppression de fichiers
Pour supprimer un fichier existant, utilisez le rmcommander. Voici la syntaxe de base -
$ rm filename
Caution- Un fichier peut contenir des informations utiles. Il est toujours recommandé d'être prudent lors de l'utilisation de ceDeletecommander. Il vaut mieux utiliser le-i option avec rm commander.
Voici l'exemple qui montre comment supprimer complètement le fichier existant filename.
$ rm filename
$
Vous pouvez supprimer plusieurs fichiers à la fois avec la commande ci-dessous -
$ rm filename1 filename2 filename3
$
Flux Unix standard
Dans des circonstances normales, chaque programme Unix a trois flux (fichiers) ouverts pour lui au démarrage -
stdin- Ceci est appelé l' entrée standard et le descripteur de fichier associé est 0. Ceci est également représenté par STDIN. Le programme Unix lira l'entrée par défaut de STDIN.
stdout- Ceci est appelé sortie standard et le descripteur de fichier associé est 1. Ceci est également représenté par STDOUT. Le programme Unix écrira la sortie par défaut à STDOUT
stderr- Ceci est appelé erreur standard et le descripteur de fichier associé est 2. Ceci est également représenté par STDERR. Le programme Unix écrira tous les messages d'erreur dans STDERR.