Explicación de Todo es un archivo y tipos de archivos en Linux

Explicación de Todo es un archivo y tipos de archivos en Linux

Si es nuevo en Linux, o lo ha usado durante unos meses, debe haber escuchado o leído declaraciones como "En Linux, todo es un archivo".

Todo es un archivo y tipos de archivos en Linux

Leer también: 5 comandos útiles para administrar los tipos de archivos de Linux

De hecho, eso es cierto, aunque es solo un concepto de generalización, en Unix y sus derivadas como Linux, todo se considera como un archivo. Si algo no es un archivo, entonces debe estar ejecutándose como un proceso en el sistema.

Para comprender esto, tome, por ejemplo, la cantidad de espacio en su raíz (/) El directorio siempre es consumido por diferentes tipos de archivos Linux. Cuando crea un archivo o transfiere un archivo a su sistema, ocupa algo de espacio en el disco físico y se considera que está en un formato específico (tipo de archivo).

Y también el sistema Linux no diferencia entre archivos y directorios, pero los directorios hacen un trabajo importante, que almacena otros archivos en grupos en una jerarquía para una ubicación fácil. Todos los componentes de su hardware se representan como archivos y el sistema se comunica con ellos utilizando estos archivos.

La idea es una descripción importante de una gran propiedad de Linux, donde los recursos de entrada/salida, como sus documentos, directorios (carpetas en Mac OS X y Windows), teclado, monitor, tripas duras, medios extraíbles, impresoras, módems, virtuales, virtuales Los terminales y también la comunicación entre procesos y redes son flujos de bytes definidos por el espacio del sistema de archivos.

Una ventaja notable de que todo sea un archivo es que el mismo conjunto de herramientas, utilidades y API de Linux se puede usar en los recursos de entrada/salida anteriores.

Aunque todo en Linux es un archivo, hay ciertos archivos especiales que son más que un archivo, por ejemplo, sockets y tuberías con nombre.

¿Cuáles son los diferentes tipos de archivos en Linux??

En Linux hay básicamente tres tipos de archivos:

  1. Archivos ordinarios/regulares
  2. Archivos especiales
  3. Directorios

Archivos ordinarios/regulares

Estos son datos de archivos que contienen instrucciones de texto, datos o programa y son el tipo de archivos más común que puede esperar encontrar en un sistema Linux e incluyen:

  1. Archivos legibles
  2. Archivos binarios
  3. Archivos de imagen
  4. Archivos comprimidos, etc.

Archivos especiales

Los archivos especiales incluyen lo siguiente:

Bloquear archivos : Estos son archivos de dispositivos que proporcionan acceso almacenado a los componentes del hardware del sistema. Proporcionan un método de comunicación con los controladores de dispositivos a través del sistema de archivos.

Un aspecto importante sobre bloquear Los archivos son que pueden transferir un gran bloque de datos e información en un momento determinado.

Listado de enchufes de archivos de bloque en un directorio:

# ls -l /dev | Grep "^B" 
Salida de muestra
BRW-RW ---- 1 disco raíz 7, 0 18 de mayo 10:26 Loop0 Brw-RW ---- 1 disco raíz 7, 1 de mayo 18 10:26 Loop1 Brw-RW ---- 1 disco raíz 7, 2 de mayo 18 10:26 Loop2 BRW-RW ---- 1 Disco de raíz 7, 3 de mayo 18 10:26 Loop3 Brw-RW ---- 1 Root Disk 7, 4 de mayo 18 10:26 Loop4 BRW-RW---- -1 disco de raíz 7, 5 de mayo 18 10:26 Loop5 Brw-rw ---- 1 disco de raíz 7, 6 de mayo 18 10:26 Loop6 Brw-rw ---- 1 disco de raíz 7, 7 de mayo 18 10: 26 Loop7 BRW-RW ---- 1 Disco raíz 1, 0 de mayo 18 10:26 Ram0 BRW-RW ---- 1 Disco raíz 1, 1 18 de mayo 10:26 RAM1 BRW-RW ---- 1 disco raíz 1, 10 de mayo 18 10:26 RAM10 BRW-RW ---- 1 Disco raíz 1, 11 de mayo 18 10:26 Ram11 BRW-RW ---- 1 Disco raíz 1, 12 de mayo 18 10:26 RAM12 BRW-RW ---- 1 disco raíz 1, 13 de mayo 18 10:26 Ram13 BRW-RW ---- 1 Disco de raíz 1, 14 de mayo 18 10:26 RAM14 BRW-RW ---- 1 Disco de raíz 1, 15 de mayo 18 10:26 RAM15 BRW-RW ---- 1 Disco de raíz 1, 2 de mayo 18 10:26 Ram2 BRW-RW ---- 1 Disco raíz 1, 3 de mayo 18 10:26 Ram3 BRW-RW ---- 1 Disco de raíz 1, 4 de mayo 18 10:26 Ram4 BRW-RW ---- 1 disco raíz 1, 5 de mayo 18 10:26 Ram5 .. 

Archivos de personaje : Estos también son archivos de dispositivos que proporcionan acceso en serie no tamponido a los componentes del hardware del sistema. Funcionan proporcionando una forma de comunicación con los dispositivos transfiriendo datos un carácter a la vez.

Enumerar los enchufes de archivos de caracteres en un directorio:

# ls -l /dev | Grep "^C" 
Salida de muestra
CRW ------- 1 raíz de la raíz 10, 235 18 de mayo 15:54 Autofs CRW ------- 1 raíz de la raíz 10, 234 18 de mayo 15:54 BTRFS-Control CRW ------- 1 raíz de raíz 5, 1 de mayo 18 10:26 Consola CRW ------- 1 raíz de raíz 10, 60 de mayo 18 10:26 CPU_DMA_LATENCY CRW ------- 1 raíz de raíz 10, 203 de mayo 18 15: 54 Cuse CRW ------- 1 Raíz Root 10, 61 18 de mayo 10:26 ECRYPTFS CRW-RW ---- 1 ROOO VIDEO 29, 0 MAYO 18 10:26 FB0 CRW-RW-RW- 1 ROOT ROOT 1, 7 de mayo 18 10:26 CRW-RW-RW-RW- 1 Raíz de la raíz 10, 229 18 de mayo 10:26 FUSE CRW ------- 1 Raíz Raíz 251, 0 de mayo 18 10:27 Hidraw0 CRW-- ----- 1 raíz de la raíz 10, 228 18 de mayo 10:26 HPET CRW-R-R-- 1 raíz raíz 1, 11 de mayo 18 10:26 KMSG CRW-RW ----+ 1 raíz de la raíz 10, 232 18 de mayo 10:26 KVM CRW ------- 1 raíz de raíz 10, 237 18 de mayo 10:26 CONTROL DE LUCA CRW ------- 1 Raíz Root 10, 227 18 de mayo 10:26 McElog CRW ------- 1 raíz de raíz 249, 0 de mayo 18 10:27 Media0 CRW ------- 1 raíz de raíz 250, 0 de mayo 18 10:26 mei0 CRW-R ----- 1 raíz kmem 1, 1 de mayo 18 10:26 MEM CRW ------- 1 raíz de la raíz 10, 57 18 de mayo 10:26 Memory_Bandwidth CRW ------- 1 raíz de la raíz 10, 59 18 de mayo 10:26 Network_latency CRW ------- 1 raíz de raíz 10, 58 18 de mayo 10:26 Network_throughput CRW-RW-RW- 1 Raíz Root 1, 3 de mayo 18 10:26 NULL CRW-R ----- 1 Root Kmem 1, 4 de mayo 18 10:26 Puerto CRW ------- 1 raíz de la raíz 108, 0 de mayo 18 10:26 PPP CRW ------- 1 raíz de la raíz 10, 1 de mayo 18 10:26 psaux crw-rw-rw- 1 raíz tty 5 , 2 de mayo 18 17:40 PTMX CRW-RW-RW- 1 Raíz Root 1, 8 de mayo 18 10:26 Random 

Archivos de enlaces simbólicos : Un enlace simbólico es una referencia a otro archivo en el sistema. Por lo tanto, los archivos de enlace simbólicos son archivos que apuntan a otros archivos, y pueden ser directorios o archivos regulares.

Listado de enchufes de enlace simbólico en un directorio:

# ls -l / dev / | Grep "^l" 
Salida de muestra
lrwxrwxrwx 1 raíz de raíz 3 de mayo 18 10:26 Cdrom -> SR0 LRWXRWXRWX 1 raíz raíz 11 de mayo 18 15:54 núcleo ->/proc/kcore lrwxrwxrwx 1 raíz raíz 13 de mayo 18 15:54 FD ->/proc/self/fd lrwxrwxrwx 1 raíz de raíz 4 4 de mayo 18 10:26 rtc -> rtc0 lrwxrwxrwx 1 raíz de raíz 8 de mayo 18 10 10:26 shm ->/run/shm lrwxrwxrwx 1 raíz raíz 15 15 de mayo 18 15:54 stderr ->/proc/self/fd /2 LRWXRWXRWX 1 raíz de raíz 15 15 de mayo 18 15:54 Stdin ->/proc/self/fd/0 lrwxrwxrwx 1 raíz raíz 15 de mayo 18 15:54 stdout ->/proc/self/fd/1 

Puedes hacer enlaces simbólicos usando el LN Utilidad en Linux como en el ejemplo a continuación.

# Touch File1.Txt # ln -s file1.txt/home/tecMint/file1.txt [Crear enlace simbólico] # ls -l/home/tecmint/| Grep "^l" [Lista de enlaces simbólicos] 

En el ejemplo anterior, creé un archivo llamado archivo1.TXT en /TMP directorio, luego creó el enlace simbólico, /home/tecMint/file1.TXT apuntar a /tmp/file1.TXT.

Tuberías o tuberías con nombre : Estos son archivos que permiten la comunicación entre procesos conectando la salida de un proceso a la entrada de otro.

Una tubería con nombre es en realidad un archivo que utiliza dos procesos para comunicarse con cada uno y actúa como una tubería de Linux.

Listado de enchufes de tuberías en un directorio:

# ls -l | Grep "^P" 
Salida de muestra
PRW-RW-R-- 1 TECMINT TECMINT 0 MAYO 18 17:47 TIPO1 PRW-RW-R-- 1 TECMINT TECMINT 0 MAYO 18 17:47 TIPO2 PRW-RW-R-- 1 TECMINT TECMINT 0 MAYO 18 17:47 pipe3 prw-rw-r-- 1 Tecmint Tecmint 0 de mayo 18 17:47 Pipe4 PRW-RW-R-- 1 Tecmint Tecmint 0 de mayo 18 17:47 Pipe5 

Puedes usar el mkfifo utilidad para crear una tubería con nombre en Linux de la siguiente manera.

# mkfifo pipe1 # echo "Esto se llama pipe1"> pipe1 

En el ejemplo anterior, creé una tubería llamada llamada tubería, Luego le pasé algunos datos utilizando el comando Echo, después de eso, el shell se volvió no interactivo mientras procesaba la entrada.

Luego abrí otro shell y ejecuté el otro comando para imprimir lo que pasó a la tubería.

# mientras lea línea; hacer eco "Esto fue pasado-'$ line'"; hecho 

Archivos de socket : Estos son archivos que proporcionan un medio de comunicación entre procesos, pero pueden transferir datos e información entre el proceso que se ejecuta en diferentes entornos.

Esto significa que los sockets proporcionan datos y transferencia de información entre el proceso que se ejecuta en diferentes máquinas en una red.

Un ejemplo para mostrar el trabajo de los enchufes sería un navegador web que hace una conexión a un servidor web.

# ls -l / dev / | Grep "^s" 
Salida de muestra
srw-rw-rw- 1 raíz raíz 0 18 de mayo 18 10:26 Registro 

Este es un ejemplo de una creación de socket en C mediante el uso del enchufe() llamada del sistema.

int Socket_Desc = Socket (AF_INET, SOCK_STREAM, 0); 

En lo anterior:

  1. AF_INET es la familia de direcciones (IPv4)
  2. Sock_stream es el tipo (la conexión está orientada al protocolo TCP)
  3. 0 es el protocolo (protocolo IP)

Para referirse al archivo de socket, use el socket_desc, que es lo mismo que el descriptor de archivo y usa leer() y escribir() Llamadas del sistema para leer y escribir desde el socket respectivamente.

Directorios

Estos son archivos especiales que almacenan archivos ordinarios y otros archivos especiales y están organizados en el sistema de archivos de Linux en una jerarquía que comienza desde la raíz (/) directorio.

Listado de enchufes en un directorio:

# ls -l / | Grep "^D" 
Salida de muestra
drwxr-xr-x 2 raíz raíz 4096 5 de mayo 15:49 bin drwxr-xr-x 4 raíz raíz 4096 5 de mayo 15:58 arranque drwxr-xr-x 2 raíz raíz 4096 abril 11 2015 cdrom drwxr-xr-x 17 raíz Root 4400 18 de mayo 10:27 dev drwxr-xr-x 168 raíz raíz 12288 18 de mayo 10:28 etc drwxr-xr-x 3 raíz raíz 4096 11 de abril 2015 inicio DRWXR-XR-X 25 raíz de raíz 4096 5 de mayo 15:44 Lib DRWXR-XR-X 2 Raíz de raíz 4096 5 de mayo 15:44 Lib64 DRWX ------ 2 Root Root 16384 Abr 11 2015 Perdido+FOUNTAD x 3 raíz raíz 4096 23 de febrero 17:54 MNT DRWXR-XR-X 16 raíz raíz 4096 abril 30 16:01 OPT DR-XR-XR-X 223 Raíz Root 0 mayo 18 15:54 Proc DRWX ------ 19 raíz raíz 4096 abril 9 11:12 raíz drwxr-xr-x 27 raíz raíz 920 18 de mayo 10:54 Ejecutar drwxr-xr-x 2 raíz raíz 12288 5 de mayo 15:57 Sbin DRWXR-XR-X 2 Raíz Root 4096 DEC 1 2014 SRV DR-XR-XR-X 13 Raíz Root 0 mayo 18 15:54 SYS DRWXRWXRWT 13 Raíz Root 4096 18 de mayo 17:55 TMP DRWXR-XR-x 11 raíz raíz 4096 31 de marzo 16:00 USR DRWXR-XR-X 12 Root Root 4096 Nov 12 2015 Var 

Puedes hacer un directorio usando el mkdir dominio.

# mkdir -m 1666 TecMint.com # mkdir -m 1666 noticias.tecmenta.com # mkdir -m 1775 Linuxsay.comunicarse 

Resumen

Ahora debería tener una comprensión clara de por qué todo en Linux es un archivo y los diferentes tipos de archivos que pueden salir en su sistema Linux.

Puede agregar más a esto leyendo más sobre los tipos de archivos individuales y se crean. Espero que esto considere útil esta guía y para cualquier pregunta e información adicional que le encantaría compartir, deje un comentario y discutiremos más.