Explication de «Tout est un fichier» et des types de fichiers dans Linux

Explication de «Tout est un fichier» et des types de fichiers dans Linux

Si vous êtes nouveau dans Linux ou que vous l'avez utilisé pendant quelques mois, vous devez avoir entendu ou lire des déclarations telles que «Dans Linux, tout est un fichier".

Tout est un fichier et des types de fichiers dans Linux

Lisez également: 5 Commandes utiles pour gérer les types de fichiers Linux

Cela est en fait vrai bien que ce ne soit qu'un concept de généralisation, dans Unix et ses dérivés tels que Linux, tout est considéré comme un fichier. Si quelque chose n'est pas un fichier, il doit être exécuté comme un processus sur le système.

Pour comprendre cela, prenez par exemple la quantité d'espace sur votre racine (/) Le répertoire est toujours consommé par différents types de fichiers Linux. Lorsque vous créez un fichier ou transférez un fichier vers votre système, il occupe un certain espace sur le disque physique et il est considéré comme dans un format spécifique (type de fichier).

Et le système Linux ne fait également pas la différence entre les fichiers et les répertoires, mais les répertoires font un travail important, qui stockent d'autres fichiers en groupes dans une hiérarchie pour un emplacement facile. Tous vos composants matériels sont représentés comme des fichiers et le système communique avec eux en utilisant ces fichiers.

L'idée est une description importante d'une grande propriété de Linux, où les ressources d'entrée / sortie telles que vos documents, répertoires (dossiers dans Mac OS X et Windows), clavier, moniteur, rédrivits durs, supports amovibles, imprimantes, modems, virtuels Les terminaux et les communications interprètes et réseau sont également des flux d'octets définis par l'espace du système de fichiers.

Un avantage notable de tout ce qui est un fichier est que le même ensemble d'outils, d'utilitaires et d'API Linux peut être utilisé sur les ressources d'entrée / sortie ci-dessus.

Bien que tout dans Linux soit un fichier, il existe certains fichiers spéciaux qui sont plus qu'un simple fichier par exemple des prises et des tuyaux nommés.

Quels sont les différents types de fichiers dans Linux?

Dans Linux, il existe essentiellement trois types de fichiers:

  1. Fichiers ordinaires / réguliers
  2. Fichiers spéciaux
  3. Répertoires

Fichiers ordinaires / réguliers

Ce sont des fichiers que les données contiennent des instructions de texte, de données ou de programme et elles sont le type de fichiers le plus courant que vous pouvez vous attendre à trouver sur un système Linux et incluent:

  1. Fichiers lisibles
  2. Fichiers binaires
  3. Fichiers image
  4. Fichiers compressés et ainsi de suite.

Fichiers spéciaux

Les fichiers spéciaux incluent les éléments suivants:

Bloquer les fichiers : Ce sont des fichiers de périphérique qui fournissent un accès tamponné aux composants matériels système. Ils fournissent une méthode de communication avec les pilotes d'appareil via le système de fichiers.

Un aspect important de bloc Les fichiers sont qu'ils peuvent transférer un grand bloc de données et d'informations à un moment donné.

Listing Block Fichiers Sockets dans un répertoire:

# ls -l / dev | grep "^ b" 
Échantillon de sortie
BRW-RW ---- 1 Root Disk 7, 0 mai 18 10:26 Loop0 BRW-RW ---- 1 Root Disk 7, 1 mai 18 10:26 Loop1 BRW-RW ---- 1 Root Disk 7, 2 mai 18 10:26 LOOP2 BRW-RW ---- 1 Root Disk 7, 3 mai 18 10:26 LOOP3 BRW-RW ---- 1 Root Disk 7, 4 mai 18 10:26 Loop4 Brw-rw-- - 1 Root Disk 7, 5 mai 18 10:26 LOOP5 BRW-RW ---- 1 Root Disk 7, 6 mai 18 10:26 Loop6 BRW-RW ---- 1 Root Disk 7, 7 mai 18 10: 26 LOOP7 BRW-RW ---- 1 Root Disk 1, 0 mai 18 10:26 Ram0 Brw-RW ---- 1 Root Disk 1, 1 mai 18 10:26 Ram1 Brw-RW ---- 1 Root Disk 1, 10 mai 18 10:26 RAM10 BRW-RW ---- 1 Root Disk 1, 11 mai 18 ---- 1 Root Disk 1, 13 mai 18 10:26 RAM13 BRW-RW ---- 1 Root Disk 1, 14 mai 18 10:26 RAM14 BRW-RW ---- 1 Root Disk 1, 15 mai 18 10:26 RAM15 BRW-RW ---- 1 Root Disk 1, 2 mai 18 10:26 Ram2 BRW-RW ---- 1 Root Disk 1, 3 mai 18 10:26 RAM3 BRW-RW ---- 1 Root Disk 1, 4 mai 18 10:26 Ram4 brw-RW ---- 1 Root Disk 1, 5 mai 18 10:26 Ram5… 

Fichiers de caractère : Ce sont également des fichiers de périphériques qui fournissent un accès série non frappé aux composants du matériel système. Ils travaillent en fournissant un moyen de communication avec les appareils en transférant des données un caractère à la fois.

Listing de fichiers de caractères Sockets dans un répertoire:

# ls -l / dev | grep "^ c" 
Échantillon de sortie
CRW ------- 1 Root Root 10, 235 mai 18 15:54 AutoFS CRW ------- 1 Root Root 10, 234 May 18 15:54 BTRFS-Control CRW ------- 1 racine racine 5, 1 mai 18 10:26 Console CRW ------- 1 racine racine 10, 60 mai 18 10:26 CPU_DMA_LATENCY CRW ------- 1 racine racine 10, 203 mai 18 15: 54 CUSE CRW ------- 1 Root Root 10, 61 mai 18 10:26 Ecryptfs CRW-RW ---- 1 Vidéo racine 29, 0 mai 18 10:26 FB0 CRW-RW-RW- 1 racine racine 1, 7 mai 18 10:26 CRW-RW-RW- 1 Root Root 10, 229 MAI 18 10:26 FUSE CRW ------- 1 Root Root 251, 0 mai 18 10:27 Hidraw0 CRW-- ----- 1 Root Root 10, 228 18 mai 10:26 HPET CRW-R - R-- 1 Root Root 1, 11 mai 18 10:26 KMSG CRW-RW ---- + 1 Root Root 10, 232 MAI 18 10:26 KVM CRW ------- 1 Root Root 10, 237 MAI 18 10:26 LOOP-Control CRW ------- 1 Root Root 10, 227 May 18 10:26 MCELOG CRW ------- 1 racine racine 249, 0 mai 18 10:27 Media0 CRW ------- 1 racine racine 250, 0 mai 18 10:26 Mei0 CRW-R ----- 1 Root Kmem 1, 1er mai 18 10:26 MEM CRW ------- 1 Root Root 10, 57 mai 18 10:26 Memory_bandwidth CRW ------- 1 Root Root 10, 59 May 18 10:26 Network_latency CRW ------- 1 racine racine 10, 58 mai 18 10:26 Network_throughput CRW-RW-RW- 1 Root Root 1, 3 mai 18 10:26 Null CRW-R ----- 1 Root Kmem 1, 4 mai 18 10:26 Port CRW ------- 1 Root Root 108, 0 mai 18 10:26 PPP CRW ------- 1 Root Root 10, 1 mai 18 10:26 PSAUX CRW-RW-RW- 1 Root Tty 5 , 2 mai 18 17:40 PTMX CRW-RW-RW- 1 Root Root 1, 8 mai 18 10:26 Random 

Fichiers de liaison symbolique : Un lien symbolique est une référence à un autre fichier sur le système. Par conséquent, les fichiers de liens symboliques sont des fichiers qui pointent vers d'autres fichiers, et ils peuvent être des répertoires ou des fichiers réguliers.

Listing des prises de liaison symbolique dans un répertoire:

# ls -l / dev / | grep "^ l" 
Échantillon de sortie
lrwxrwxrwx 1 racine racine 3 mai 18 10:26 CDrom -> sr0 lrwxrwxrwx 1 racine racine 11 mai 18 15:54 Core -> / proc / kcore lrwxrwxrwx 1 racine racine 13 mai 18:544 fd -> / proc / self / fd lrwxrwxrwx 1 racine racine 4 mai 18 10:26 rtc -> rtc0 lrwxrwxrwx 1 racine racine 8 mai 18 10:26 shm -> / run / shm lrwxrwxrwx 1 racine root 15 mai 18 15:54 stderr -> / proc / fd / fd / 2 lrwxrwxrwx 1 racine racine 15 mai 18 15:54 stdin -> / proc / self / fd / 0 lrwxrwxrwx 1 racine racine 15 mai 18 15:54 stdout -> / proc / self / fd / 1 

Vous pouvez établir des liens symboliques en utilisant le LN Utilité à Linux comme dans l'exemple ci-dessous.

# Touch File1.TXT # ln -s fichier1.txt / home / tecmint / file1.txt [Créer un lien symbolique] # ls -l / home / tecmint / | grep "^ l" [lister les liens symboliques] 

Dans l'exemple ci-dessus, j'ai créé un fichier appelé fichier1.SMS dans / tmp répertoire, puis a créé le lien symbolique, / Home / Tecmint / File1.SMS pointer vers / tmp / file1.SMS.

Tuyaux ou tuyaux nommés : Ce sont des fichiers qui permettent une communication interprocess en connectant la sortie d'un processus à l'entrée d'un autre.

Un tuyau nommé est en fait un fichier utilisé par deux processus pour communiquer avec chacun et il agit comme un tuyau Linux.

Lister les prises de tuyaux dans un répertoire:

# ls -l | grep "^ p" 
Échantillon de sortie
PRW-RW-R - 1 Tecmint Tecmint 0 mai 18 17:47 PIP1 PRW-RW-R - 1 Tecmint Tecmint 0 mai 18 17:47 PIP2 PRW-RW-R - 1 Tecmint Tecmint 0 mai 18 17:47 PIPE3 PRW-RW-R - 1 Tecmint Tecmint 0 mai 18 17:47 PIP4 PRW-RW-R - 1 Tecmint Tecmint 0 mai 18 17:47 Pipe5 

Vous pouvez utiliser le mkfifo Utilité pour créer un tuyau nommé dans Linux comme suit.

# mkfifo tuy 

Dans l'exemple ci-dessus, j'ai créé un tuyau nommé appelé pipe1, Ensuite, je lui ai transmis des données en utilisant la commande Echo, après cela, le shell est devenu non interactif tout en traitant l'entrée.

Ensuite, j'ai ouvert une autre coquille et exécuté une autre commande pour imprimer ce qui a été passé au tuyau.

# Pendant que vous lisez la ligne; faire écho "Ceci a été passé - '$ line'"; fait 

Dossiers : Ce sont des fichiers qui fournissent un moyen de communication interprète, mais ils peuvent transférer des données et des informations entre le processus exécuté sur différents environnements.

Cela signifie que les prises fournissent des données et un transfert d'informations entre le processus fonctionnant sur différentes machines sur un réseau.

Un exemple pour afficher le travail des sockets serait un navigateur Web établissant une connexion à un serveur Web.

# ls -l / dev / | grep "^ s" 
Échantillon de sortie
srw-rw-rw- 1 racine racine 0 mai 18 10:26 journal 

Ceci est un exemple de socket créer dans C en utilisant le prise() appel système.

int socket_desc = socket (af_inet, sock_stream, 0); 

Au dessus:

  1. AF_INET La famille d'adresses est-elle (IPv4)
  2. Sock_stream est le type (la connexion est orientée vers le protocole TCP)
  3. 0 est le protocole (protocole IP)

Pour se référer au fichier de socket, utilisez le socket_descs, qui est le même que le descripteur de fichier, et utilisez lire() et écrire() appels système à lire et à écrire à partir de la prise respectivement.

Répertoires

Ce sont des fichiers spéciaux qui stockent à la fois des fichiers ordinaires et d'autres fichiers spéciaux et ils sont organisés sur le système de fichiers Linux dans une hiérarchie à partir de la racine (/) annuaire.

Lister les prises dans un répertoire:

# ls -l / | grep "^ d" 
Échantillon de sortie
DRWXR-XR-X 2 racine racine 4096 5 mai 15:49 Bin Drwxr-Xr-X 4 racine racine 4096 5 mai Racine 4400 mai 18 10:27 Dev drwxr-xr-x 168 racine racine 12288 18 mai 10:28 etc Drwxr-xr-x 3 racine racine 4096 11 avr lib drwxr-xr-x 2 racine racine 4096 5 mai 15:44 lib64 drwx ------ 2 racine racine 16384 11 avril 2015 Lost + trouvé drwxr-xr-x 3 racine racine 4096 avril 2015 médias drwxr-xr- x 3 racine racine 4096 23 février 17:54 mnt drwxr-xr-x 16 racine racine 4096 avril 30 16:01 Opt dr-xr-xr-x 223 racine racine 0 mai 18 15:54 proc drwx ------ 19 racine racine 4096 avr 9 11:12 racine drwxr-xr-x 27 racine racine 920 mai 18 10:54 Exécuter drwxr-xr-x 2 racine racine 12288 5 mai 15:57 sbin drwxr-xr-x 2 racine racine 4096 déc. 1 2014 srv dr-xr-xr-x 13 racine racine 0 mai 18 15:54 sys drwxrwxrwt 13 racine racine 4096 18 mai 17:55 tmp drwxr-xr-x 11 racine racine 4096 31 mars 16:00 USR DRWXR-XR-X 12 Root Root 4096 12 nov 2015 var 

Vous pouvez faire un répertoire en utilisant le mkdir commande.

# MKDIR -M 1666 Tecmint.com # mkdir -m 1666 News.Tecmint.com # mkdir -m 1775 Linuxsay.com 

Résumé

Vous devriez maintenant avoir une compréhension claire de la raison pour laquelle tout dans Linux est un fichier et les différents types de fichiers qui peuvent quitter votre système Linux.

Vous pouvez en ajouter plus à cela en lisant plus sur les types de fichiers individuels et ils sont créés. J'espère que ce guide trouvera ce guide et pour toutes les questions et informations supplémentaires que vous aimeriez partager, veuillez laisser un commentaire et nous en discuterons plus.