Paskaidrojums “Viss ir fails” un failu tipi Linux
Ja jūs esat jauns Linux lietotājs vai esat to lietojis dažus mēnešus, jums noteikti ir dzirdējuši vai lasījuši paziņojumus, piemēram, “Linux viss ir fails”.
Patiesībā tas ir taisnība, lai gan tas ir tikai vispārināšanas jēdziens, Unix un tā atvasinājumos, piemēram, Linux, viss tiek uzskatīts par failu. Ja kaut kas nav fails, tam sistēmā jādarbojas kā procesam.
Lai to saprastu, ņemiet, piemēram, vietu, kas atrodas saknes (/)
direktorijā, vienmēr patērē dažāda veida Linux faili. Veidojot failu vai pārsūtot failu uz savu sistēmu, tas aizņem nelielu vietu fiziskajā diskā, un tiek uzskatīts, ka tas ir noteiktā formātā (faila tips).
Un arī Linux sistēma neatšķir failus un direktorijus, bet direktoriji veic vienu svarīgu darbu, proti, citus failus glabā grupās hierarhijā, lai ērti atrastos. Visi jūsu aparatūras komponenti tiek attēloti kā faili, un sistēma sazinās ar tiem, izmantojot šos failus.
Ideja ir svarīgs Linux lieliskā īpašuma apraksts, kur ieejas/izvades resursi, piemēram, jūsu dokumenti, direktoriji (mapes Mac OS X un Windows), tastatūra, monitors, cietie diski, noņemamie datu nesēji, printeri, modemi, virtuālie termināļi, kā arī starpprocesu un tīkla komunikācija ir baitu plūsmas, ko nosaka failu sistēmas telpa.
Nozīmīga priekšrocība tam, ka viss ir fails, ir tas, ka iepriekšminētajos ievades/izvades resursos var izmantot to pašu Linux rīku, utilītu un API kopu.
Lai gan viss operētājsistēmā Linux ir fails, ir noteikti īpaši faili, kas ir ne tikai fails, piemēram, ligzdas un nosauktas caurules.
Kādi ir dažādu veidu faili Linux?
Linux operētājsistēmā pamatā ir trīs veidu faili:
- Parastie/parastie faili
- Īpaši faili
- Katalogi
Šie ir failu dati satur tekstu, datus vai programmas instrukcijas, un tie ir visizplatītākie failu veidi, kurus, iespējams, sagaidīsit atrast Linux sistēmā, un tie ietver:
- lasāmi faili
- Binārie faili
- attēlu faili
- saspiesti faili un tā tālāk.
Īpašajos failos ietilpst:
Bloķēt failus: tie ir ierīces faili, kas nodrošina buferētu piekļuvi sistēmas aparatūras komponentiem. Tie nodrošina saziņas metodi ar ierīču draiveriem, izmantojot failu sistēmu.
Viens svarīgs aspekts par bloķētajiem failiem ir tas, ka tie noteiktā laikā var pārsūtīt lielu datu un informācijas bloku.
Bloķēto failu ligzdu saraksts direktorijā:
# 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 ...
Rakstzīmju faili: tie ir arī ierīču faili, kas nodrošina neuzpirktu sērijveida piekļuvi sistēmas aparatūras komponentiem. Viņi strādā, nodrošinot saziņas veidu ar ierīcēm, pārsūtot datus pa vienai rakstzīmei.
Rakstzīmju failu ligzdu saraksts direktorijā:
# 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
Simbolisko saišu faili: simboliskā saite ir atsauce uz citu sistēmas failu. Tāpēc simbolisko saišu faili ir faili, kas norāda uz citiem failiem, un tie var būt gan direktoriji, gan parastie faili.
Simbolisko saišu ligzdu uzskaitīšana direktorijā:
# 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
Jūs varat izveidot simboliskas saites, izmantojot Linux ln
utilītu, kā parādīts zemāk esošajā piemērā.
# touch file1.txt # ln -s file1.txt /home/tecmint/file1.txt [create symbolic link] # ls -l /home/tecmint/ | grep "^l" [List symbolic links]
Iepriekš minētajā piemērā es izveidoju failu ar nosaukumu file1.txt
/tmp direktorijā, pēc tam izveidoju simbolisko saiti /home/tecmint/file1.txt, lai norādītu uz /tmp/file1.txt.
Caurules vai nosauktās caurules: tie ir faili, kas ļauj savstarpēji sazināties, savienojot viena procesa izvadi ar otra ievadi.
Nosauktā caurule faktiski ir fails, kuru izmanto divi procesi, lai sazinātos ar katru, un tas darbojas kā Linux caurule.
Cauruļu kontaktligzdu saraksts direktorijā:
# 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
Varat izmantot utilītu mkfifo, lai izveidotu nosaukto cauruli Linux šādi.
# mkfifo pipe1 # echo "This is named pipe1" > pipe1
Iepriekš minētajā piemērā es izveidoju nosaukto cauruli ar nosaukumu pipe1
, pēc tam pārsūtīju tam dažus datus, izmantojot komandu echo, pēc tam čaula kļuva neaktīva, apstrādājot ievadi.
Tad es atvēru vēl vienu apvalku un izpildīju citu komandu, lai izdrukātu to, kas tika nodots caurulei.
# while read line ;do echo "This was passed-'$line' "; done<pipe1
Ligzdas faili: Tie ir faili, kas nodrošina starpprocesu komunikāciju, taču tie var pārsūtīt datus un informāciju starp procesu, kas darbojas dažādās vidēs.
Tas nozīmē, ka kontaktligzdas nodrošina datu un informācijas pārsūtīšanu starp procesu, kas darbojas dažādās tīkla mašīnās.
Piemērs, lai parādītu ligzdu darbu, būtu tīmekļa pārlūkprogramma, kas izveido savienojumu ar tīmekļa serveri.
# ls -l /dev/ | grep "^s"
srw-rw-rw- 1 root root 0 May 18 10:26 log
Šis ir ligzdas, kas izveidota C, piemērs, izmantojot sistēmas izsaukumu socket()
.
int socket_desc= socket(AF_INET, SOCK_STREAM, 0 );
Iepriekš minētajā:
-
AF_INET
ir adrešu saime (IPv4) -
SOCK_STREAM
ir tips (savienojums ir orientēts uz TCP protokolu) -
0
ir protokols (IP protokols)
Lai atsauktos uz ligzdas failu, izmantojiet socket_desc
, kas ir tāds pats kā faila deskriptors, un izmantojiet read()
un write()
sistēmas zvani, lai attiecīgi lasītu un rakstītu no kontaktligzdas.
Tie ir īpaši faili, kuros glabājas gan parastie, gan citi īpašie faili, un tie ir sakārtoti Linux failu sistēmā hierarhijā, sākot no saknes (/)
direktorija.
Kontaktligzdu uzskaitīšana direktorijā:
# 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
Katalogu var izveidot, izmantojot komandu mkdir.
# mkdir -m 1666 linux-console.net # mkdir -m 1666 news.linux-console.net # mkdir -m 1775 linuxsay.com
Kopsavilkums
Tagad jums vajadzētu skaidri saprast, kāpēc Linux viss ir fails un dažāda veida faili, kurus var iziet no jūsu Linux sistēmas.
Jūs varat pievienot tam vairāk, lasot vairāk par atsevišķiem failu tipiem un tie tiek izveidoti. Es ceru, ka šī rokasgrāmata būs noderīga, un, ja jums ir kādi jautājumi un papildu informācija, ar kuru jūs labprāt dalītos, lūdzu, atstājiet komentāru, un mēs apspriedīsim vairāk.