എല്ലാം ഒരു ഫയലാണ് എന്നതിന്റെ വിശദീകരണവും ലിനക്സിലെ ഫയലുകളുടെ തരങ്ങളും
നിങ്ങൾ ലിനക്സിൽ പുതിയ ആളാണെങ്കിലോ ഏതാനും മാസങ്ങൾ അത് ഉപയോഗിച്ചിട്ടോ ആണെങ്കിൽ, \ലിനക്സിൽ എല്ലാം ഒരു ഫയലാണ് എന്നതുപോലുള്ള പ്രസ്താവനകൾ നിങ്ങൾ കേൾക്കുകയോ വായിക്കുകയോ ചെയ്തിരിക്കണം.
ഇത് ഒരു സാമാന്യവൽക്കരണ ആശയം മാത്രമാണെങ്കിലും, യുണിക്സിലും അതിന്റെ ലിനക്സ് പോലുള്ള ഡെറിവേറ്റീവുകളിലും എല്ലാം ഒരു ഫയലായിട്ടാണ് കണക്കാക്കുന്നത്. എന്തെങ്കിലും ഫയലല്ലെങ്കിൽ, അത് സിസ്റ്റത്തിൽ ഒരു പ്രക്രിയയായി പ്രവർത്തിക്കണം.
ഇത് മനസിലാക്കാൻ, ഉദാഹരണത്തിന് നിങ്ങളുടെ റൂട്ട് (/)
ഡയറക്uടറിയിലെ സ്uപെയ്uസിന്റെ അളവ് എടുക്കുക. നിങ്ങൾ ഒരു ഫയൽ സൃഷ്uടിക്കുമ്പോഴോ നിങ്ങളുടെ സിസ്റ്റത്തിലേക്ക് ഒരു ഫയൽ കൈമാറുമ്പോഴോ, അത് ഫിസിക്കൽ ഡിസ്uകിൽ കുറച്ച് ഇടം പിടിക്കുകയും അത് ഒരു പ്രത്യേക ഫോർമാറ്റിൽ (ഫയൽ തരം) ആയി കണക്കാക്കുകയും ചെയ്യുന്നു.
കൂടാതെ, Linux സിസ്റ്റം ഫയലുകളും ഡയറക്ടറികളും തമ്മിൽ വേർതിരിക്കുന്നില്ല, പക്ഷേ ഡയറക്ടറികൾ ഒരു പ്രധാന ജോലി ചെയ്യുന്നു, അതായത് മറ്റ് ഫയലുകൾ എളുപ്പത്തിൽ ലൊക്കേഷനായി ഒരു ശ്രേണിയിൽ സംഭരിക്കുക. നിങ്ങളുടെ എല്ലാ ഹാർഡ്uവെയർ ഘടകങ്ങളും ഫയലുകളായി പ്രതിനിധീകരിക്കുന്നു, ഈ ഫയലുകൾ ഉപയോഗിച്ച് സിസ്റ്റം അവയുമായി ആശയവിനിമയം നടത്തുന്നു.
നിങ്ങളുടെ പ്രമാണങ്ങൾ, ഡയറക്uടറികൾ (Mac OS X, Windows-ലെ ഫോൾഡറുകൾ), കീബോർഡ്, മോണിറ്റർ, ഹാർഡ്-ഡ്രൈവുകൾ, നീക്കം ചെയ്യാവുന്ന മീഡിയ, പ്രിന്ററുകൾ, മോഡമുകൾ, വെർച്വൽ എന്നിങ്ങനെയുള്ള ഇൻപുട്ട്/ഔട്ട്uപുട്ട് ഉറവിടങ്ങൾ ലിനക്uസിന്റെ ഒരു മഹത്തായ പ്രോപ്പർട്ടിയുടെ ഒരു പ്രധാന വിവരണമാണ് ഈ ആശയം. ടെർമിനലുകളും ഇന്റർ-പ്രോസസ്സും നെറ്റ്uവർക്ക് കമ്മ്യൂണിക്കേഷനും ഫയൽ സിസ്റ്റം സ്പേസ് നിർവചിച്ചിരിക്കുന്ന ബൈറ്റുകളുടെ സ്ട്രീമുകളാണ്.
എല്ലാം ഒരു ഫയൽ ആകുന്നതിന്റെ ശ്രദ്ധേയമായ ഒരു ഗുണം, മുകളിലുള്ള ഇൻപുട്ട്/ഔട്ട്പുട്ട് ഉറവിടങ്ങളിൽ ഒരേ ലിനക്സ് ടൂളുകൾ, യൂട്ടിലിറ്റികൾ, എപിഐകൾ എന്നിവ ഉപയോഗിക്കാമെന്നതാണ്.
ലിനക്സിലെ എല്ലാം ഒരു ഫയലാണെങ്കിലും, സോക്കറ്റുകൾക്കും പേരിട്ട പൈപ്പുകൾക്കും ഒരു ഫയലിനേക്കാൾ കൂടുതലായ ചില പ്രത്യേക ഫയലുകൾ ഉണ്ട്.
Linux-ലെ വ്യത്യസ്ത തരം ഫയലുകൾ ഏതൊക്കെയാണ്?
ലിനക്സിൽ അടിസ്ഥാനപരമായി മൂന്ന് തരം ഫയലുകൾ ഉണ്ട്:
- സാധാരണ/റെഗുലർ ഫയലുകൾ
- പ്രത്യേക ഫയലുകൾ
- ഡയറക്uടറികൾ
ടെക്uസ്uറ്റ്, ഡാറ്റ അല്ലെങ്കിൽ പ്രോഗ്രാം നിർദ്ദേശങ്ങൾ അടങ്ങിയ ഫയലുകളുടെ ഡാറ്റയാണ് ഇവ, ലിനക്uസ് സിസ്റ്റത്തിൽ നിങ്ങൾ പ്രതീക്ഷിക്കുന്ന ഏറ്റവും സാധാരണമായ ഫയലുകൾ ഇവയാണ്, അവയിൽ ഇവ ഉൾപ്പെടുന്നു:
- വായിക്കാൻ കഴിയുന്ന ഫയലുകൾ
- ബൈനറി ഫയലുകൾ
- ചിത്ര ഫയലുകൾ
- കംപ്രസ് ചെയ്ത ഫയലുകളും മറ്റും.
പ്രത്യേക ഫയലുകളിൽ ഇനിപ്പറയുന്നവ ഉൾപ്പെടുന്നു:
ഫയലുകൾ തടയുക: സിസ്റ്റം ഹാർഡ്uവെയർ ഘടകങ്ങളിലേക്ക് ബഫർ ആക്uസസ് നൽകുന്ന ഉപകരണ ഫയലുകളാണ് ഇവ. ഫയൽ സിസ്റ്റത്തിലൂടെ ഡിവൈസ് ഡ്രൈവറുകളുമായി ആശയവിനിമയം നടത്തുന്നതിനുള്ള ഒരു രീതി അവർ നൽകുന്നു.
ബ്ലോക്ക് ഫയലുകളെക്കുറിച്ചുള്ള ഒരു പ്രധാന വശം, ഒരു നിശ്ചിത സമയത്ത് അവയ്ക്ക് ഒരു വലിയ ബ്ലോക്ക് ഡാറ്റയും വിവരങ്ങളും കൈമാറാൻ കഴിയും എന്നതാണ്.
ഒരു ഡയറക്ടറിയിൽ ബ്ലോക്ക് ഫയലുകളുടെ സോക്കറ്റുകൾ ലിസ്റ്റുചെയ്യുന്നു:
# 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 ...
പ്രതീക ഫയലുകൾ : സിസ്റ്റം ഹാർഡ്uവെയർ ഘടകങ്ങളിലേക്ക് ബഫർ ചെയ്യാത്ത സീരിയൽ ആക്uസസ് നൽകുന്ന ഉപകരണ ഫയലുകളും ഇവയാണ്. ഒരു സമയം ഒരു പ്രതീകം ഡാറ്റ കൈമാറ്റം ചെയ്തുകൊണ്ട് ഉപകരണങ്ങളുമായി ആശയവിനിമയത്തിനുള്ള ഒരു മാർഗം നൽകിക്കൊണ്ട് അവർ പ്രവർത്തിക്കുന്നു.
ഒരു ഡയറക്ടറിയിൽ പ്രതീക ഫയലുകളുടെ സോക്കറ്റുകൾ ലിസ്റ്റുചെയ്യുന്നു:
# 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
പ്രതീകാത്മക ലിങ്ക് ഫയലുകൾ : ഒരു സിംബോളിക് ലിങ്ക് എന്നത് സിസ്റ്റത്തിലെ മറ്റൊരു ഫയലിലേക്കുള്ള റഫറൻസാണ്. അതിനാൽ, പ്രതീകാത്മക ലിങ്ക് ഫയലുകൾ മറ്റ് ഫയലുകളിലേക്ക് പോയിന്റ് ചെയ്യുന്ന ഫയലുകളാണ്, അവ ഒന്നുകിൽ ഡയറക്ടറികളോ സാധാരണ ഫയലുകളോ ആകാം.
ഒരു ഡയറക്ടറിയിൽ പ്രതീകാത്മക ലിങ്ക് സോക്കറ്റുകൾ ലിസ്റ്റുചെയ്യുന്നു:
# 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
ചുവടെയുള്ള ഉദാഹരണത്തിലെന്നപോലെ ലിനക്സിലെ ln
യൂട്ടിലിറ്റി ഉപയോഗിച്ച് നിങ്ങൾക്ക് പ്രതീകാത്മക ലിങ്കുകൾ ഉണ്ടാക്കാം.
# touch file1.txt # ln -s file1.txt /home/tecmint/file1.txt [create symbolic link] # ls -l /home/tecmint/ | grep "^l" [List symbolic links]
മുകളിലുള്ള ഉദാഹരണത്തിൽ, ഞാൻ /tmp ഡയറക്ടറിയിൽ file1.txt
എന്ന പേരിൽ ഒരു ഫയൽ സൃഷ്uടിച്ചു, തുടർന്ന് /tmp/file1.txt ലേക്ക് പോയിന്റ് ചെയ്യുന്നതിന് പ്രതീകാത്മക ലിങ്ക്, /home/tecmint/file1.txt സൃഷ്ടിച്ചു.
പൈപ്പുകൾ അല്ലെങ്കിൽ പേരിട്ട പൈപ്പുകൾ : ഒരു പ്രോസസ്സിന്റെ ഔട്ട്uപുട്ടിനെ മറ്റൊന്നിന്റെ ഇൻപുട്ടുമായി ബന്ധിപ്പിച്ച് ഇന്റർ-പ്രോസസ് കമ്മ്യൂണിക്കേഷൻ അനുവദിക്കുന്ന ഫയലുകളാണിവ.
പേരുള്ള പൈപ്പ് യഥാർത്ഥത്തിൽ ഓരോന്നിനോടും ആശയവിനിമയം നടത്താൻ രണ്ട് പ്രക്രിയകൾ ഉപയോഗിക്കുന്ന ഒരു ഫയലാണ്, അത് ഒരു ലിനക്സ് പൈപ്പായി പ്രവർത്തിക്കുന്നു.
ഒരു ഡയറക്ടറിയിൽ പൈപ്പ് സോക്കറ്റുകൾ ലിസ്റ്റുചെയ്യുന്നു:
# 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
നിങ്ങൾക്ക് mkfifo യൂട്ടിലിറ്റി ഉപയോഗിച്ച് ലിനക്സിൽ ഇനിപ്പറയുന്ന രീതിയിൽ ഒരു പൈപ്പ് സൃഷ്ടിക്കാൻ കഴിയും.
# mkfifo pipe1 # echo "This is named pipe1" > pipe1
മുകളിലുള്ള ഉദാഹരണത്തിൽ, ഞാൻ pipe1
എന്ന പേരിൽ ഒരു പൈപ്പ് സൃഷ്ടിച്ചു, തുടർന്ന് ഞാൻ echo കമാൻഡ് ഉപയോഗിച്ച് കുറച്ച് ഡാറ്റ അതിലേക്ക് കൈമാറി, അതിനുശേഷം ഇൻപുട്ട് പ്രോസസ്സ് ചെയ്യുമ്പോൾ ഷെൽ അൺ-ഇന്ററാക്ടീവ് ആയി.
പിന്നെ ഞാൻ മറ്റൊരു ഷെൽ തുറന്ന് പൈപ്പിലേക്ക് അയച്ചത് പ്രിന്റ് ചെയ്യാൻ മറ്റൊരു കമാൻഡ് പ്രവർത്തിപ്പിച്ചു.
# while read line ;do echo "This was passed-'$line' "; done<pipe1
സോക്കറ്റ് ഫയലുകൾ : ഇവ ഇന്റർ-പ്രോസസ് കമ്മ്യൂണിക്കേഷന് ഒരു മാർഗം നൽകുന്ന ഫയലുകളാണ്, എന്നാൽ വ്യത്യസ്ത പരിതസ്ഥിതികളിൽ പ്രവർത്തിക്കുന്ന പ്രക്രിയയ്ക്കിടയിൽ അവയ്ക്ക് ഡാറ്റയും വിവരങ്ങളും കൈമാറാൻ കഴിയും.
ഒരു നെറ്റ്uവർക്കിലെ വ്യത്യസ്ത മെഷീനുകളിൽ പ്രവർത്തിക്കുന്ന പ്രക്രിയയ്uക്കിടയിൽ സോക്കറ്റുകൾ ഡാറ്റയും വിവര കൈമാറ്റവും നൽകുന്നു എന്നാണ് ഇതിനർത്ഥം.
സോക്കറ്റുകളുടെ പ്രവർത്തനം കാണിക്കുന്നതിനുള്ള ഒരു ഉദാഹരണം ഒരു വെബ് സെർവറിലേക്ക് കണക്ഷൻ ഉണ്ടാക്കുന്ന ഒരു വെബ് ബ്രൗസറായിരിക്കും.
# ls -l /dev/ | grep "^s"
srw-rw-rw- 1 root root 0 May 18 10:26 log
socket()
സിസ്റ്റം കോൾ ഉപയോഗിച്ച് C-ൽ സോക്കറ്റ് സൃഷ്uടിക്കുന്നതിന്റെ ഒരു ഉദാഹരണമാണിത്.
int socket_desc= socket(AF_INET, SOCK_STREAM, 0 );
മുകളിൽ പറഞ്ഞതിൽ:
AF_INET
എന്നത് വിലാസ കുടുംബമാണ്(IPv4)SOCK_STREAM
ആണ് തരം (കണക്ഷൻ TCP പ്രോട്ടോക്കോൾ ഓറിയന്റഡ് ആണ്)0
ആണ് പ്രോട്ടോക്കോൾ(IP പ്രോട്ടോക്കോൾ)
സോക്കറ്റ് ഫയൽ റഫർ ചെയ്യാൻ, ഫയൽ ഡിസ്ക്രിപ്റ്ററിന് സമാനമായ socket_desc
ഉപയോഗിക്കുക, കൂടാതെ read()
, write()
എന്നിവ ഉപയോഗിക്കുക സോക്കറ്റിൽ നിന്ന് യഥാക്രമം വായിക്കാനും എഴുതാനും സിസ്റ്റം വിളിക്കുന്നു.
ഇവ സാധാരണ ഫയലുകളും മറ്റ് പ്രത്യേക ഫയലുകളും സംഭരിക്കുന്ന പ്രത്യേക ഫയലുകളാണ്, അവ ലിനക്സ് ഫയൽ സിസ്റ്റത്തിൽ റൂട്ട് (/)
ഡയറക്uടറിയിൽ നിന്ന് ആരംഭിക്കുന്ന ഒരു ശ്രേണിയിൽ ക്രമീകരിച്ചിരിക്കുന്നു.
ഒരു ഡയറക്ടറിയിൽ സോക്കറ്റുകൾ ലിസ്റ്റുചെയ്യുന്നു:
# 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
mkdir കമാൻഡ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഒരു ഡയറക്ടറി ഉണ്ടാക്കാം.
# mkdir -m 1666 linux-console.net # mkdir -m 1666 news.linux-console.net # mkdir -m 1775 linuxsay.com
സംഗ്രഹം
Linux-ലെ എല്ലാം ഒരു ഫയലായിരിക്കുന്നത് എന്തുകൊണ്ടാണെന്നും നിങ്ങളുടെ Linux സിസ്റ്റത്തിൽ നിന്ന് പുറത്തുകടക്കാൻ കഴിയുന്ന വ്യത്യസ്ത തരം ഫയലുകളെക്കുറിച്ചും നിങ്ങൾക്ക് ഇപ്പോൾ വ്യക്തമായ ധാരണ ഉണ്ടായിരിക്കണം.
വ്യക്തിഗത ഫയൽ തരങ്ങളെക്കുറിച്ച് കൂടുതൽ വായിച്ചുകൊണ്ട് നിങ്ങൾക്ക് ഇതിലേക്ക് കൂടുതൽ ചേർക്കാൻ കഴിയും, അവ സൃഷ്ടിക്കപ്പെടുന്നു. ഇത് ഈ ഗൈഡ് സഹായകരമാണെന്ന് ഞാൻ പ്രതീക്ഷിക്കുന്നു കൂടാതെ നിങ്ങൾ പങ്കിടാൻ ആഗ്രഹിക്കുന്ന ഏതെങ്കിലും ചോദ്യങ്ങൾക്കും കൂടുതൽ വിവരങ്ങൾക്കും ദയവായി ഒരു അഭിപ്രായം ഇടുക, ഞങ്ങൾ കൂടുതൽ ചർച്ച ചെയ്യും.