Ufafanuzi wa Kila kitu ni Faili na Aina za Faili katika Linux
Ikiwa wewe ni mgeni kwa Linux, au umeitumia kwa miezi michache, basi lazima uwe umesikia au kusoma taarifa kama vile \Katika Linux, kila kitu ni Faili.
Hiyo ni kweli ingawa ni dhana ya jumla tu, katika Unix na derivatives yake kama vile Linux, kila kitu kinazingatiwa kama faili. Ikiwa kitu sio faili, basi lazima iwe inaendesha kama mchakato kwenye mfumo.
Ili kuelewa hili, chukua kwa mfano kiasi cha nafasi kwenye saraka yako ya mizizi (/)
hutumiwa na aina tofauti za faili za Linux. Unapounda faili au kuhamisha faili kwenye mfumo wako, inachukua nafasi fulani kwenye diski ya kimwili na inachukuliwa kuwa katika muundo maalum (aina ya faili).
Na pia mfumo wa Linux hautofautishi kati ya faili na saraka, lakini saraka hufanya kazi moja muhimu, ambayo ni kuhifadhi faili zingine kwa vikundi katika safu kwa eneo rahisi. Vipengee vyako vyote vya maunzi vinawakilishwa kama faili na mfumo huwasiliana navyo kwa kutumia faili hizi.
Wazo ni maelezo muhimu ya mali kubwa ya Linux, ambapo rasilimali za pembejeo/pato kama vile hati zako, saraka (folda kwenye Mac OS X na Windows), kibodi, kidhibiti, diski kuu, midia inayoweza kutolewa, vichapishi, modemu, mtandao pepe. vituo na pia mchakato wa kati na mawasiliano ya mtandao ni mikondo ya baiti zinazofafanuliwa na nafasi ya mfumo wa faili.
Faida inayojulikana ya kila kitu kuwa faili ni kwamba seti sawa ya zana za Linux, huduma na API zinaweza kutumika kwenye rasilimali za pembejeo/pato zilizo hapo juu.
Ingawa kila kitu kwenye Linux ni faili, kuna faili fulani maalum ambazo ni zaidi ya faili tu kwa mfano soketi na bomba zilizopewa jina.
Ni aina gani tofauti za faili kwenye Linux?
Katika Linux kimsingi kuna aina tatu za faili:
- Faili za Kawaida/Kawaida
- Faili Maalum
- Saraka
Hizi ni data za faili zina maandishi, data au maagizo ya programu na ndio aina ya kawaida ya faili unazoweza kutarajia kupata kwenye mfumo wa Linux na zinajumuisha:
- Faili zinazoweza kusomeka
- Faili za jozi
- Faili za picha
- Faili zilizobanwa na kadhalika.
Faili maalum ni pamoja na zifuatazo:
Zuia faili : Hizi ni faili za kifaa ambazo hutoa ufikiaji ulioakibishwa kwa vipengee vya maunzi ya mfumo. Wanatoa njia ya mawasiliano na madereva ya kifaa kupitia mfumo wa faili.
Kipengele kimoja muhimu kuhusu faili za kuzuia ni kwamba zinaweza kuhamisha kizuizi kikubwa cha data na habari kwa wakati fulani.
Kuorodhesha soketi za faili kwenye saraka:
# 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 ...
Faili za wahusika : Hizi pia ni faili za kifaa ambazo hutoa ufikiaji wa mfululizo usio na buffer kwa vipengele vya maunzi ya mfumo. Wanafanya kazi kwa kutoa njia ya mawasiliano na vifaa kwa kuhamisha data herufi moja kwa wakati mmoja.
Kuorodhesha soketi za faili za wahusika kwenye saraka:
# 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
Faili za kiungo za ishara : Kiungo cha ishara ni rejeleo la faili nyingine kwenye mfumo. Kwa hivyo, faili za kiunganishi za mfano ni faili zinazoelekeza faili zingine, na zinaweza kuwa saraka au faili za kawaida.
Kuorodhesha soketi za kiungo za mfano kwenye saraka:
# 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
Unaweza kutengeneza viungo vya ishara kwa kutumia ln
shirika katika Linux kama katika mfano ulio hapa chini.
# touch file1.txt # ln -s file1.txt /home/tecmint/file1.txt [create symbolic link] # ls -l /home/tecmint/ | grep "^l" [List symbolic links]
Katika mfano ulio hapo juu, niliunda faili inayoitwa file1.txt
katika saraka ya /tmp, kisha nikaunda kiungo cha mfano, /home/tecmint/file1.txt ili kuelekeza kwa /tmp/file1.txt.
Mabomba au Mabomba Yanayoitwa : Hizi ni faili zinazoruhusu mawasiliano baina ya mchakato kwa kuunganisha matokeo ya mchakato mmoja na ingizo la mwingine.
Bomba lililopewa jina ni faili ambayo hutumiwa na michakato miwili kuwasiliana na kila moja na inafanya kazi kama bomba la Linux.
Kuorodhesha soketi za bomba kwenye saraka:
# 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
Unaweza kutumia matumizi ya mkfifo kuunda bomba iliyopewa jina katika Linux kama ifuatavyo.
# mkfifo pipe1 # echo "This is named pipe1" > pipe1
Katika mfano huo hapo juu, niliunda bomba linaloitwa pipe1
, kisha nikapitisha data kwake kwa kutumia amri ya echo, baada ya hapo ganda halikuingiliana wakati wa kusindika pembejeo.
Kisha nikafungua ganda lingine na kuendesha amri nyingine ya kuchapisha kile kilichopitishwa kwa bomba.
# while read line ;do echo "This was passed-'$line' "; done<pipe1
Faili za soketi : Hizi ni faili zinazotoa njia ya mawasiliano baina ya mchakato, lakini zinaweza kuhamisha data na taarifa kati ya mchakato unaoendeshwa kwenye mazingira tofauti.
Hii inamaanisha kuwa soketi hutoa uhamishaji wa data na habari kati ya mchakato unaoendeshwa kwenye mashine tofauti kwenye mtandao.
Mfano wa kuonyesha kazi ya soketi itakuwa kivinjari cha wavuti kinachounganisha kwenye seva ya wavuti.
# ls -l /dev/ | grep "^s"
srw-rw-rw- 1 root root 0 May 18 10:26 log
Huu ni mfano wa soketi iliyoundwa katika C kwa kutumia soketi()
simu ya mfumo.
int socket_desc= socket(AF_INET, SOCK_STREAM, 0 );
Katika hapo juu:
AF_INET
ndio familia ya anwani(IPv4)SOCK_STREAM
ni aina (muunganisho unazingatia itifaki ya TCP)0
ni itifaki(Itifaki ya IP)
Ili kurejelea faili ya soketi, tumia socket_desc
, ambayo ni sawa na kifafanuzi cha faili, na utumie read()
na write()
simu za mfumo kusoma na kuandika kutoka kwa tundu kwa mtiririko huo.
Hizi ni faili maalum ambazo huhifadhi faili za kawaida na zingine maalum na zimepangwa kwenye mfumo wa faili wa Linux katika safu kuanzia mzizi (/)
saraka.
Kuorodhesha soketi kwenye saraka:
# 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
Unaweza kutengeneza saraka kwa kutumia amri ya mkdir.
# mkdir -m 1666 linux-console.net # mkdir -m 1666 news.linux-console.net # mkdir -m 1775 linuxsay.com
Muhtasari
Unapaswa sasa kuwa na ufahamu wazi wa kwa nini kila kitu kwenye Linux ni faili na aina tofauti za faili ambazo zinaweza kutoka kwenye mfumo wako wa Linux.
Unaweza kuongeza zaidi kwa hili kwa kusoma zaidi kuhusu aina za faili za kibinafsi na zinaundwa. Natumai mwongozo huu utapata msaada na kwa maswali na habari yoyote ya ziada ambayo ungependa kushiriki, tafadhali acha maoni na tutajadili zaidi.