Erklärung vum Alles ass eng Datei an Aarte vu Dateien am Linux
Wann Dir nei op Linux sidd, oder et fir e puer Méint benotzt hutt, da musst Dir Aussoe wéi Am Linux, alles e Fichier héieren oder gelies hunn.
Dat ass tatsächlech wouer obwuel et just e Generaliséierungskonzept ass, an Unix a sengen Derivate wéi Linux gëtt alles als Datei ugesinn. Wann eppes net eng Datei ass, da muss et als Prozess am System lafen.
Fir dëst ze verstoen, huelt zum Beispill d'Quantitéit u Plaz op Ärem root (/)
Verzeechnes gëtt ëmmer vu verschiddenen Aarte vu Linux Dateien verbraucht. Wann Dir eng Datei erstellt oder eng Datei op Äre System transferéiert, besetzt se e bësse Plaz op der kierperlecher Disk an et gëtt als an engem spezifesche Format (Dateityp) ugesinn.
An och de Linux System ënnerscheet net tëscht Dateien an Verzeichnisser, awer Verzeichnisser maachen eng wichteg Aarbecht, dat ass aner Dateien a Gruppen an enger Hierarchie fir einfach Plaz ze späicheren. All Är Hardware Komponente ginn als Dateien duergestallt an de System kommunizéiert mat hinnen mat dëse Dateien.
D'Iddi ass eng wichteg Beschreiwung vun enger grousser Eegentum vu Linux, wou Input/Output Ressourcen wéi Är Dokumenter, Verzeichnisser (Ordner am Mac OS X a Windows), Tastatur, Monitor, Harddisken, eraushuelbare Medien, Dréckeren, Modem, virtuell Terminals an och Inter-Prozess- an Netzwierkkommunikatioun si Streame vu Bytes definéiert vum Dateisystemraum.
E bemierkenswäerte Virdeel fir alles wat eng Datei ass ass datt deeselwechte Set vu Linux Tools, Utilities an APIs op den uewe genannten Input/Output Ressourcen benotzt kënne ginn.
Och wann alles am Linux eng Datei ass, ginn et bestëmmte speziell Dateien déi méi wéi nëmmen eng Datei sinn, zum Beispill Sockets a genannt Päifen.
Wat sinn déi verschidden Aarte vu Dateien am Linux?
Am Linux ginn et haaptsächlech dräi Aarte vu Dateien:
- Allgemeng/Reegelméisseg Dateien
- Speziell Dateien
- Verzeichnungen
Dëst sinn Dateidaten enthalen Text, Daten oder Programminstruktiounen a si sinn déi heefegst Aart vu Dateien déi Dir kënnt erwaarden op engem Linux System ze fannen a si enthalen:
- Liesbare Dateien
- Binär Dateien
- Bilddateien
- Kompriméiert Dateien a sou weider.
Besonnesch Dateien enthalen déi folgend:
Blockdateien: Dëst sinn Apparatdateien déi gebufferten Zougang zu System Hardware Komponenten ubidden. Si bidden eng Method fir Kommunikatioun mat Apparat Chauffeuren duerch de Fichier System.
Ee wichtegen Aspekt iwwer Blockdateien ass datt se e grousse Block vun Daten an Informatioun zu enger bestëmmter Zäit kënne transferéieren.
Oplëschtung vun Blockdateien Sockets an engem Verzeechnes:
# ls -l /dev | grep "^b"
brw-rw---- 1 root disk 7, 0 May 18 10:26 loop0 brw-rw---- 1 root disk 7, 1 May 18 10:26 loop1 brw-rw---- 1 root disk 7, 2 May 18 10:26 loop2 brw-rw---- 1 root disk 7, 3 May 18 10:26 loop3 brw-rw---- 1 root disk 7, 4 May 18 10:26 loop4 brw-rw---- 1 root disk 7, 5 May 18 10:26 loop5 brw-rw---- 1 root disk 7, 6 May 18 10:26 loop6 brw-rw---- 1 root disk 7, 7 May 18 10:26 loop7 brw-rw---- 1 root disk 1, 0 May 18 10:26 ram0 brw-rw---- 1 root disk 1, 1 May 18 10:26 ram1 brw-rw---- 1 root disk 1, 10 May 18 10:26 ram10 brw-rw---- 1 root disk 1, 11 May 18 10:26 ram11 brw-rw---- 1 root disk 1, 12 May 18 10:26 ram12 brw-rw---- 1 root disk 1, 13 May 18 10:26 ram13 brw-rw---- 1 root disk 1, 14 May 18 10:26 ram14 brw-rw---- 1 root disk 1, 15 May 18 10:26 ram15 brw-rw---- 1 root disk 1, 2 May 18 10:26 ram2 brw-rw---- 1 root disk 1, 3 May 18 10:26 ram3 brw-rw---- 1 root disk 1, 4 May 18 10:26 ram4 brw-rw---- 1 root disk 1, 5 May 18 10:26 ram5 ...
Charakterdateien: Dëst sinn och Apparatdateien déi ongebufferten Serien Zougang zu System Hardware Komponenten ubidden. Si funktionnéieren andeems se e Wee fir Kommunikatioun mat Apparater ubidden andeems Dir Daten ee Charakter gläichzäiteg transferéiert.
Oplëschtung Charakterdateien Sockets an engem Verzeechnes:
# ls -l /dev | grep "^c"
crw------- 1 root root 10, 235 May 18 15:54 autofs crw------- 1 root root 10, 234 May 18 15:54 btrfs-control crw------- 1 root root 5, 1 May 18 10:26 console crw------- 1 root root 10, 60 May 18 10:26 cpu_dma_latency crw------- 1 root root 10, 203 May 18 15:54 cuse crw------- 1 root root 10, 61 May 18 10:26 ecryptfs crw-rw---- 1 root video 29, 0 May 18 10:26 fb0 crw-rw-rw- 1 root root 1, 7 May 18 10:26 full crw-rw-rw- 1 root root 10, 229 May 18 10:26 fuse crw------- 1 root root 251, 0 May 18 10:27 hidraw0 crw------- 1 root root 10, 228 May 18 10:26 hpet crw-r--r-- 1 root root 1, 11 May 18 10:26 kmsg crw-rw----+ 1 root root 10, 232 May 18 10:26 kvm crw------- 1 root root 10, 237 May 18 10:26 loop-control crw------- 1 root root 10, 227 May 18 10:26 mcelog crw------- 1 root root 249, 0 May 18 10:27 media0 crw------- 1 root root 250, 0 May 18 10:26 mei0 crw-r----- 1 root kmem 1, 1 May 18 10:26 mem crw------- 1 root root 10, 57 May 18 10:26 memory_bandwidth crw------- 1 root root 10, 59 May 18 10:26 network_latency crw------- 1 root root 10, 58 May 18 10:26 network_throughput crw-rw-rw- 1 root root 1, 3 May 18 10:26 null crw-r----- 1 root kmem 1, 4 May 18 10:26 port crw------- 1 root root 108, 0 May 18 10:26 ppp crw------- 1 root root 10, 1 May 18 10:26 psaux crw-rw-rw- 1 root tty 5, 2 May 18 17:40 ptmx crw-rw-rw- 1 root root 1, 8 May 18 10:26 random
Symbolesch Linkdateien: E symbolesche Link ass eng Referenz op eng aner Datei am System. Dofir sinn symbolesch Linkdateien Dateien déi op aner Dateien weisen, a si kënnen entweder Verzeechnes oder regulär Dateie sinn.
Oplëschtung vun symbolesche Link Sockets an engem Verzeechnes:
# ls -l /dev/ | grep "^l"
lrwxrwxrwx 1 root root 3 May 18 10:26 cdrom -> sr0 lrwxrwxrwx 1 root root 11 May 18 15:54 core -> /proc/kcore lrwxrwxrwx 1 root root 13 May 18 15:54 fd -> /proc/self/fd lrwxrwxrwx 1 root root 4 May 18 10:26 rtc -> rtc0 lrwxrwxrwx 1 root root 8 May 18 10:26 shm -> /run/shm lrwxrwxrwx 1 root root 15 May 18 15:54 stderr -> /proc/self/fd/2 lrwxrwxrwx 1 root root 15 May 18 15:54 stdin -> /proc/self/fd/0 lrwxrwxrwx 1 root root 15 May 18 15:54 stdout -> /proc/self/fd/1
Dir kënnt symbolesch Linken mat der ln
Utility am Linux maachen wéi am Beispill hei ënnen.
# touch file1.txt # ln -s file1.txt /home/tecmint/file1.txt [create symbolic link] # ls -l /home/tecmint/ | grep "^l" [List symbolic links]
Am uewe genannte Beispill hunn ech e Fichier mam Numm file1.txt
am /tmp-Verzeichnis erstallt, duerno de symbolesche Link erstallt, /home/tecmint/file1.txt fir op /tmp/file1.txt ze weisen.
Pipes oder Named Pipes: Dëst sinn Dateien déi d'Inter-Prozess Kommunikatioun erlaben andeems Dir den Output vun engem Prozess mam Input vun engem aneren verbënnt.
E genannte Päif ass tatsächlech eng Datei déi vun zwee Prozesser benotzt gëtt fir mat all ze kommunizéieren an et handelt als Linux Päif.
Oplëschtung vu Päifen Sockets an engem Verzeechnes:
# ls -l | grep "^p"
prw-rw-r-- 1 tecmint tecmint 0 May 18 17:47 pipe1 prw-rw-r-- 1 tecmint tecmint 0 May 18 17:47 pipe2 prw-rw-r-- 1 tecmint tecmint 0 May 18 17:47 pipe3 prw-rw-r-- 1 tecmint tecmint 0 May 18 17:47 pipe4 prw-rw-r-- 1 tecmint tecmint 0 May 18 17:47 pipe5
Dir kënnt de mkfifo Utility benotze fir e genannte Pipe an Linux ze kreéieren wéi follegt.
# mkfifo pipe1 # echo "This is named pipe1" > pipe1
Am uewe genannte Beispill hunn ech e genannte Päif mam Numm Pipe1
erstallt, duerno hunn ech e puer Daten mat dem Echo Kommando iwwerginn, duerno gouf d'Shell oninteraktiv beim Veraarbechtung vum Input.
Dunn hunn ech eng aner Shell opgemaach an deen anere Kommando ausgefouert fir auszedrécken wat op d'Päif weidergeleet gouf.
# while read line ;do echo "This was passed-'$line' "; done<pipe1
Socket Dateien: Dëst sinn Dateien déi e Mëttel fir Inter-Prozess Kommunikatioun ubidden, awer si kënnen Daten an Informatioun transferéieren tëscht Prozesser déi a verschiddenen Ëmfeld lafen.
Dëst bedeit datt Sockets Daten- an Informatiounstransfer tëscht Prozesser déi op verschiddene Maschinnen op engem Netzwierk lafen.
E Beispill fir d'Aarbecht vu Sockets ze weisen wier e Webbrowser, deen eng Verbindung mat engem Webserver mécht.
# ls -l /dev/ | grep "^s"
srw-rw-rw- 1 root root 0 May 18 10:26 log
Dëst ass e Beispill vun engem Socket erstallt am C andeems Dir de Socket()
Systemruff benotzt.
int socket_desc= socket(AF_INET, SOCK_STREAM, 0 );
An der uewen:
AF_INET
ass d'Adressfamill (IPv4)SOCK_STREAM
ass den Typ (Verbindung ass TCP Protokoll orientéiert)0
ass de Protokoll (IP Protokoll)
Fir op d'Socket-Datei ze referenzéieren, benotzt den socket_desc
, deen d'selwecht ass wéi de Dateideskriptor, a benotzt read()
an write()
System rifft aus dem Socket ze liesen a schreiwen bzw.
Dëst sinn speziell Dateien déi souwuel normal wéi och aner speziell Dateien späicheren a si sinn am Linux Dateiesystem an enger Hierarchie organiséiert, déi vum Root (/)
Verzeichnis ufänkt.
Oplëschtung Sockets an engem Verzeechnes:
# ls -l / | grep "^d"
drwxr-xr-x 2 root root 4096 May 5 15:49 bin drwxr-xr-x 4 root root 4096 May 5 15:58 boot drwxr-xr-x 2 root root 4096 Apr 11 2015 cdrom drwxr-xr-x 17 root root 4400 May 18 10:27 dev drwxr-xr-x 168 root root 12288 May 18 10:28 etc drwxr-xr-x 3 root root 4096 Apr 11 2015 home drwxr-xr-x 25 root root 4096 May 5 15:44 lib drwxr-xr-x 2 root root 4096 May 5 15:44 lib64 drwx------ 2 root root 16384 Apr 11 2015 lost+found drwxr-xr-x 3 root root 4096 Apr 10 2015 media drwxr-xr-x 3 root root 4096 Feb 23 17:54 mnt drwxr-xr-x 16 root root 4096 Apr 30 16:01 opt dr-xr-xr-x 223 root root 0 May 18 15:54 proc drwx------ 19 root root 4096 Apr 9 11:12 root drwxr-xr-x 27 root root 920 May 18 10:54 run drwxr-xr-x 2 root root 12288 May 5 15:57 sbin drwxr-xr-x 2 root root 4096 Dec 1 2014 srv dr-xr-xr-x 13 root root 0 May 18 15:54 sys drwxrwxrwt 13 root root 4096 May 18 17:55 tmp drwxr-xr-x 11 root root 4096 Mar 31 16:00 usr drwxr-xr-x 12 root root 4096 Nov 12 2015 var
Dir kënnt e Verzeichnis mam mkdir Kommando maachen.
# mkdir -m 1666 linux-console.net # mkdir -m 1666 news.linux-console.net # mkdir -m 1775 linuxsay.com
Resumé
Dir sollt elo e kloert Verständnis hunn firwat alles am Linux eng Datei ass an déi verschidden Aarte vu Dateien déi op Ärem Linux System erausgoen.
Dir kënnt méi zu dësem addéieren andeems Dir méi iwwer déi eenzel Dateitypen liest a si ginn erstallt. Ech hoffen dat fannt dëse Guide hëllefräich a fir all Froen an zousätzlech Informatioun déi Dir gär géift deelen, verloosst w.e.g. e Kommentar a mir wäerte méi diskutéieren.