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.