Spjegazzjoni ta 'Kollox huwa Fajl u Tipi ta' Fajls fil-Linux


Jekk int ġdid fil-Linux, jew użajtu għal ftit xhur, allura trid tkun smajt jew qrajt stqarrijiet bħal \Fil-Linux, kollox huwa Fajl.

Dan fil-fatt huwa minnu għalkemm huwa biss kunċett ta 'ġeneralizzazzjoni, f'Unix u d-derivattivi tiegħu bħal Linux, kollox jitqies bħala fajl. Jekk xi ħaġa mhix fajl, allura trid tkun qed taħdem bħala proċess fis-sistema.

Biex tifhem dan, ħu pereżempju l-ammont ta 'spazju fuq id-direttorju ta' l-għeruq tiegħek (/) huwa dejjem ikkunsmat minn tipi differenti ta 'fajls Linux. Meta toħloq fajl jew tittrasferixxi fajl għas-sistema tiegħek, dan jokkupa ftit spazju fuq id-diska fiżika u jitqies li jkun f'format speċifiku (tip ta 'fajl).

U wkoll is-sistema Linux ma tiddistingwix bejn fajls u direttorji, iżda direttorji jagħmlu xogħol wieħed importanti, jiġifieri jaħżnu fajls oħra fi gruppi f'ġerarkija għal post faċli. Il-komponenti kollha tal-ħardwer tiegħek huma rappreżentati bħala fajls u s-sistema tikkomunika magħhom billi tuża dawn il-fajls.

L-idea hija deskrizzjoni importanti ta 'proprjetà kbira ta' Linux, fejn riżorsi ta 'input/output bħad-dokumenti tiegħek, direttorji (folders f'Mac OS X u Windows), tastiera, monitor, hard-drives, midja li tista' titneħħa, printers, modems, virtwali terminals u wkoll inter-proċess u komunikazzjoni tan-netwerk huma flussi ta 'bytes definiti mill-ispazju tas-sistema tal-fajls.

Vantaġġ notevoli li kollox huwa fajl huwa li l-istess sett ta 'għodod Linux, utilitajiet u APIs jistgħu jintużaw fuq ir-riżorsi ta' input/output ta 'hawn fuq.

Għalkemm kollox fil-Linux huwa fajl, hemm ċerti fajls speċjali li huma aktar minn sempliċi fajl pereżempju sokits u pajpijiet bl-isem.

X'inhuma t-tipi differenti ta 'fajls fil-Linux?

Fil-Linux hemm bażikament tliet tipi ta 'fajls:

  1. Fajls Ordinarji/Regolari
  2. Fajls speċjali
  3. Direttorji

Dawn huma fajls tad-dejta li fihom test, dejta jew struzzjonijiet tal-programm u huma l-aktar tip komuni ta’ fajls li tista’ tistenna li ssib fuq sistema Linux u jinkludu:

  1. Fajls li jinqraw
  2. Fajls binarji
  3. Fajls ta' l-immaġini
  4. Fajls kompressati u l-bqija.

Fajls speċjali jinkludu dan li ġej:

Fajls tal-Blokk : Dawn huma fajls tal-apparat li jipprovdu aċċess buffered għall-komponenti tal-ħardwer tas-sistema. Huma jipprovdu metodu ta 'komunikazzjoni ma' sewwieqa tal-apparat permezz tas-sistema tal-fajls.

Aspett wieħed importanti dwar il-fajls tal-blokki huwa li jistgħu jittrasferixxu blokk kbir ta 'dejta u informazzjoni f'ħin partikolari.

Elenkar ta' sockets tal-fajls tal-blokki f'direttorju:

# 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
...

Fajls tal-karattri : Dawn huma wkoll fajls tal-apparat li jipprovdu aċċess serjali bla buffer għall-komponenti tal-ħardwer tas-sistema. Huma jaħdmu billi jipprovdu mod ta 'komunikazzjoni ma' apparati billi jittrasferixxu data karattru wieħed kull darba.

Elenkar ta' sockets tal-fajls tal-karattri f'direttorju:

# 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

Fajls ta' link simboliku : Link simboliku hija referenza għal fajl ieħor fis-sistema. Għalhekk, fajls ta 'link simboliku huma fajls li jindikaw fajls oħra, u jistgħu jew ikunu direttorji jew fajls regolari.

Elenkar ta' sockets ta' link simboliku f'direttorju:

# 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

Tista' tagħmel links simboliċi billi tuża l-utilità ln fil-Linux bħal fl-eżempju hawn taħt.

# touch file1.txt
# ln -s file1.txt /home/tecmint/file1.txt  [create symbolic link]
# ls -l /home/tecmint/ | grep "^l"         [List symbolic links]

Fl-eżempju ta 'hawn fuq, ħloqt fajl imsejjaħ file1.txt fid-direttorju /tmp, imbagħad ħloqt il-link simboliku, /home/tecmint/file1.txt biex tipponta lejn /tmp/file1.txt.

Pajpijiet jew pajpijiet bl-isem : Dawn huma fajls li jippermettu komunikazzjoni bejn il-proċessi billi jgħaqqdu l-output ta 'proċess wieħed mal-input ta' ieħor.

Pajp imsemmi huwa fil-fatt fajl li jintuża minn żewġ proċessi biex jikkomunikaw ma 'kull wieħed u jaġixxi bħala pajp Linux.

Elenkar tas-sokits tal-pajpijiet f'direttorju:

# 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

Tista 'tuża l-utilità mkfifo biex toħloq pajp imsemmi fil-Linux kif ġej.

# mkfifo pipe1
# echo "This is named pipe1" > pipe1

Fl-eżempju ta 'hawn fuq, ħloqt pajp bl-isem imsejjaħ pipe1, imbagħad għadda xi dejta lilha bl-użu tal-kmand echo, wara li l-qoxra saret mhux interattiva waqt l-ipproċessar tal-input.

Imbagħad ftaħt qoxra oħra u mexxi l-kmand ieħor biex tipprintja dak li għadda lill-pajp.

# while read line ;do echo "This was passed-'$line' "; done<pipe1

Fajls tas-socket : Dawn huma fajls li jipprovdu mezz ta’ komunikazzjoni bejn il-proċessi, iżda jistgħu jittrasferixxu data u informazzjoni bejn proċess li jaħdem f’ambjenti differenti.

Dan ifisser li s-sokits jipprovdu trasferiment ta' data u informazzjoni bejn proċess li jaħdem fuq magni differenti fuq netwerk.

Eżempju biex juri x-xogħol tas-sokits ikun web browser li jagħmel konnessjoni ma' web server.

# ls -l /dev/ | grep "^s"
srw-rw-rw-  1 root root             0 May 18 10:26 log

Dan huwa eżempju ta' socket li jinħoloq f'C billi tuża s-sejħa tas-sistema socket().

int socket_desc= socket(AF_INET, SOCK_STREAM, 0 );

F'hawn fuq:

  1. AF_INET hija l-familja ta' indirizzi (IPv4)
  2. SOCK_STREAM huwa t-tip (il-konnessjoni hija orjentata lejn il-protokoll TCP)
  3. 0 huwa l-protokoll (Protokoll IP)

Biex tirreferi għall-fajl tas-socket, uża l-socket_desc, li hija l-istess bħad-deskrittur tal-fajl, u uża read() u write() sejħiet tas-sistema biex taqra u tikteb mis-socket rispettivament.

Dawn huma fajls speċjali li jaħżnu kemm fajls ordinarji kif ukoll fajls speċjali oħra u huma organizzati fuq is-sistema tal-fajls Linux f'ġerarkija li tibda mid-direttorju għerq (/).

Elenkar tas-sokits f'direttorju:

# 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

Tista' tagħmel direttorju billi tuża l-kmand mkdir.

# mkdir -m 1666 linux-console.net
# mkdir -m 1666 news.linux-console.net
# mkdir -m 1775 linuxsay.com

Sommarju

Issa għandek tkun qed tifhem ċar għaliex kollox fil-Linux huwa fajl u t-tipi differenti ta 'fajls li jistgħu joħorġu fis-sistema Linux tiegħek.

Tista 'żżid aktar ma' dan billi taqra aktar dwar it-tipi ta 'fajls individwali u huma maħluqa. Nispera li din il-gwida ssibha ta' għajnuna u għal kwalunkwe mistoqsija u informazzjoni addizzjonali li tixtieq taqsam, jekk jogħġbok ħalli kumment u aħna niddiskutu aktar.