ഷെൽ പ്രോഗ്രാമിങ്ങ്/ഭാഗം 3

വിക്കിപാഠശാല, ഒരു സ്വതന്ത്ര ഉള്ളടക്കത്തോടുകൂടിയ പാഠശാല.

ഡയറക്റ്ററി ബ്രൗസിങ്ങിന്റെ തുടക്കം എന്ന രീതിയിൽ സി.ഡി. കമാൻഡ് ഉപയോഗിക്കാൻ കഴിഞ്ഞ ഭാഗത്തിൽ പഠിച്ചല്ലോ. ഇനി ഓരോ ഡയറക്റ്ററിയിലും എന്തൊക്കെ ഫയലുകളും ഡയറക്ടറികളും ഉണ്ടെന്നു

കണ്ടു പിടിക്കുന്നതിനും അവയെക്കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾ ലഭിക്കുന്നതിനും “എൽ.എസ്.” (ls) എന്ന കമാൻഡ് എങ്ങനെ ഉപയോഗിക്കാം എന്നു പഠിക്കാം.ലിസ്റ്റ് ചെയ്യുക എന്ന അർഥത്തിലാണ് ls എന്ന കമാൻഡ് ഉപയോഗിക്കുന്നത്. ഓരോ ഡയറക്റ്ററിയുടേയും ഉള്ളടക്കം എന്താണെന്നു ലിസ്റ്റ് ചെയ്യുകയാണു അടിസ്ഥാനപരമായി ഈ കമാൻഡ് ചെയ്യുന്നത്.

ഉപയോഗിക്കുന്ന വിധം:

ls എന്നു ടൈപ് ചെയ്തു അതിന്റെ വലത്തായി ഏതു ഡയറക്റ്ററിയുടെ ഉള്ളടക്കമാണോ കാണേണ്ടത് ആ ഡയറക്റ്ററിയുടെ ആബ്സൊല്യൂട്ട് പാത്തോ റിലേറ്റീവ് പാത്തോ നല്കുക. ls നു ശേഷം ഡയറക്റ്ററിയുടെ പേര് നല്കിയിട്ടില്ലെങ്കിൽ പ്രസന്റ് വർക്കിങ്ങ് ഡയറക്റ്ററി (PWD) യുടെ ഉള്ളടക്കം കാണിക്കും.

ഉദാഹരണം നോക്കുക:

[prasobh@localhost ~]$ ls /home/prasobh/downloads/ AdbeRdr9.1.1-1_i386linux_enu.deb everything-acls.ppt Music network.ppt ReactOS-0.3.10-REL-live.zip

ഞാൻ എന്റെ ഹോം ഡയറക്റ്ററിയിലെ Notes എന്ന ഡയറക്റ്ററിയിൽ നിന്നും ls കമാൻഡ് ടൈപ് ചെയ്തിരിക്കുന്നു. ഇതും വേറെ ഒരിടത്തു നിന്ന് “ls /home/prasobh/Notes” എന്നു ടൈപ് ചെയ്യുന്നതും തുല്യമായ ഫലമാണു തരിക.

[prasobh@localhost Notes]$ ls blogger-variables.txt bsd-certifications.txt cyberjal-forum.txt vbox-gns.txt blog-notes.txt cyberjaalakam.txt ip-network.ml.txt vpn-howto.txt

[prasobh@localhost cdrom]$ ls /home/prasobh/Notes/ blogger-variables.txt bsd-certifications.txt cyberjal-forum.txt vbox-gns.txt blog-notes.txt cyberjaalakam.txt ip-network.ml.txt vpn-howto.txt

ഇനി നമുക്കു ഇങ്ങനെ കാണുന്ന ഫയലുകളെക്കുറിച്ച് കൂടുതൽ വിവരങ്ങൾ അറിയണം എന്നു വിചാരിക്കുക. ഇതിനു വേണ്ടി എൽഎസ് കമാൻഡിനോടൊപ്പം ചില “ഓപ്ഷനുകൾ” ഉപയോഗിക്കാൻ കഴിയും. എൽഎസ് കമാൻഡിന്റെ തൊട്ടു വലത്തായി (ഡയറക്റ്ററിയുടെ പേരു നല്കുന്നതിനു മുൻപേ ) ഈ ഓപ്ഷനുകൾ ചേർക്കുകയാണ് ഇതിനു വേണ്ടി ചെയ്യേണ്ടത്. പ്രധാനപ്പെട്ട ചില ഓപ്ഷനുകൾ താഴെ പരിചയപ്പെടുത്തുന്നു.

ലോങ്ങ് ലിസ്റ്റിങ്ങ് : ls -l

“-l” എന്ന ഓപ്ഷനുപയോഗിച്ചു കൊണ്ടു നിങ്ങൾക്ക് ലിസ്റ്റ് ചെയ്യപ്പെടുന്ന ഫയലുകളെക്കുറിച്ച് കൂടുതൽ വിവരങ്ങൾ അറിയാൻ സാധിക്കും.

[prasobh@localhost MyNotes]$ ls -l total 72 drwxr-xr-x 2 prasobh prasobh 4096 2009-08-03 21:16 blog -rwx—— 1 prasobh prasobh 48 2009-08-03 21:13 bsd-certifications.txt -rwx—— 1 prasobh prasobh 553 2009-08-03 21:13 dupauth.txt -rw-r–r– 1 prasobh prasobh 394 2009-08-03 21:13 gazal.txt -rwx—— 1 prasobh prasobh 1828 2009-08-03 21:13 interview.txt -rw-r–r– 1 prasobh prasobh 29378 2009-08-03 21:13 ip-network.ml.txt -rw-r–r– 1 prasobh prasobh 5777 2009-08-03 21:13 LinuxScripting.txt -rw-r–r– 1 prasobh prasobh 250 2009-08-03 21:13 live.txt -rwx—— 1 prasobh prasobh 3053 2009-08-03 21:13 vbox-gns.txt -rw-r–r– 1 prasobh prasobh 1668 2009-08-03 21:13 vpn-howto.txt

ഇതിൽ ഓരോ വരിയും ഈ ഡയറക്റ്ററിക്കകത്തുള്ള ഒരു ഫയൽ അല്ലെങ്കിൽ ഡയറക്റ്ററിയെ കുറിക്കുന്നു. ഓരോ വരിയിലും എട്ടു കോളങ്ങൾ (വാക്കുകൾ ) കാണും. ഇതിൽ ഏറ്റവും വലത്തു കാണുന്ന കോളം ആയിരിക്കും ആ ഫയലിന്റെ അല്ലെങ്കിൽ ഡയറക്റ്ററിയുടെ പേര്.

ഏറ്റവും ഇടത്തുള്ള കോളം ശ്രദ്ധിക്കുക. ഇതിൽ എപ്പോഴും 10 ക്യാരക്റ്ററുകൾ ആവും ഉണ്ടാവുക. ഇതിൽ ഏറ്റവും ഇടത്തുള്ളത് ഏതു തരം ഫയൽ / ഡയറക്റ്ററി ആണ് എന്ന് സൂചിപ്പിക്കുന്നു. ഇത് “d” എന്ന അക്ഷരം ആണെങ്കിൽ അതിന്റെ അർഥം അതു ഒരു ഡയറക്റ്ററി ആണ് എന്നാണ്. നേരെ മറിച്ചു ഒരു “-” ആണെങ്കിൽ അതു ഒരു ഫയൽ ആയിരിക്കും. ഇനി “l” ആണെങ്കിൽ അതു ഒരു സോഫ്റ്റ് ലിങ്ക് ( വിൻഡോസിലെ ഷോർട്കട്ട് ഫയലുകൾക് ഏകദേശം സമമായ ഫയൽ ) ആയിരിക്കും. ബാക്കിയുള്ള ഒൻപത് അക്ഷരങ്ങൾ ആ ഫയലിന്റെ ഉടമസ്ഥനായ ഉപയോക്താവിനും ഉപയോക്തൃ ഗ്രൂപ്പിനും മറ്റുള്ളവർക്കും ആ ഫയലിന്റെ മേൽ ഉള്ള പെർമിഷനുകളെ സൂചിപ്പിക്കുന്നു. രണ്ടാമത്തെ കോളം: ഡയറക്ടറി ആണെങ്കിൽ അതിനുള്ളിലെ സബ്ഡയറക്റ്ററികളുടെ എണ്ണത്തിനോട് രണ്ട് ചേർത്തതായിരിക്കും. സാധാരണ ഫയലുകൾക്ക് ഈ കോളത്തിന്റെ വില എപ്പോഴും 1 ആയിരിക്കും.

മൂന്നാമത്തെ കോളം ആ ഫയലിന്റെ ഉടമസ്ഥനായ ഉപയോക്താവിന്റെ ഉപയോക്തൃ നാമം ആണ്. നാലമത്തത് ആ ഫയലിന്റെ ഉടമസ്ഥതയുള്ള ഉപയോക്തൃ ഗ്രൂപ്പ് ആണ്. മേൽ കാണിച്ച ഉദാഹരണത്തിൽ രണ്ടും ഒന്നു തന്നെയാണെങ്കിലും എല്ലായിടത്തും ഇതു ഇങ്ങനെയായിരിക്കില്ല.

അഞ്ചാമത്തെ കോളം ഫയൽ/ഡയറക്റ്ററിയുടെ സൈസ് കാണിക്കുന്നു – ഇതു ബിറ്റിൽ ആണ് കാണിക്കുന്നത്. ഡയറക്റ്ററിയുടെ സൈസ് എപ്പോഴും 4KB- കിലോബിറ്റ് – (4096) ആയിരിക്കും. ഡയറകറ്ററിക്കകത്തെ ഫയലുകളുടെ/സബ് ഡയറക്റ്ററികളുടെ സൈസ് കണക്കിലെടുക്കാത്തതുകൊണ്ടാണിത്. ഈ സൈസുകൾ KB/MB/GB തുടങ്ങിയ അളവുകളിൽ കാണണമെങ്കിൽ ls -l കമാൻഡിന്റെ കൂടെ “-h” എന്ന ഓപ്ഷൻ കൂടെ ഉപയോഗിച്ചാൽ മതി ( ls -l -h അല്ലെങ്കിൽ ls -lh). 6,7 കോളങ്ങൾ ഫയൽ / ഡയറക്റ്റരി അവസാനം മാറ്റം വരുത്തിയ തിയ്യതിയും സമയവും കാണിക്കുന്നു.കോളം 8 ഫയൽ / ഡയറക്റ്ററിയുടെ പേര് ആണ്.

ഔട്പുട്ടിന്റെ തുടക്കത്തിൽ “total 72″ എന്നെഴുതിയതു ആ ഡയറക്റ്ററിയിലെ എല്ലാ ഫയലുകളുടെയും ഡയറക്റ്ററികളുടെയും ആകെ സൈസ് ആണ്. ഇവിടെയും സബ്ഡയറക്റ്ററികൾക്കകത്തുള്ള ഫയൽ / ഡയറക്റ്ററി എന്നിവയുടെ സൈസ് കണക്കിലെടുക്കപ്പെടില്ല. ls -lh കമാൻഡ് ആയിരുന്നു ഉപയോഗിച്ചിരുന്നതെങ്കിൽ ഇതു “total 72K” എന്നു കാണിച്ചേനെ. ഇവിടെ ശ്രദ്ധിക്കേണ്ട ഒരു കാര്യം ഓപറേറ്റിങ്ങ് സിസ്റ്റം ഇതിനു വേണ്ടി ഒരു ഫയലിന്റെ സൈസ് 4KB യുടെ ഗുണിതങ്ങൾ ആയാണ് കണക്കാക്കുന്നതു എന്നതാണ്. അതായത് ഓരോ ഫയലിന്റെയും സൈസ് അതാതു ഫയലിന്റെ യഥാർഥ സൈസിന്റെ തൊട്ടു മുകളിലുള്ള 4KB യുടെ ഗുണിതം ആയിട്ടായിരിക്കും കണക്കു കൂട്ടുന്നത് .

ls -l നു ശേഷം ഒരു ഫയലിന്റെ ആബ്സൊല്യൂട്ട് അല്ലെങ്കിൽ റിലേറ്റീവ് പാത്ത് നൽകുകയാണെങ്കിൽ അതിന്റെ മാത്രം വിവരങ്ങൾ മുകളിൽ പറഞ്ഞ പോലെ കാണിക്കും.

[prasobh@localhost MyNotes]$ ls -l LinuxScripting.txt -rw-r–r– 1 prasobh prasobh 5777 2009-08-03 21:13 LinuxScripting.txt

ഇനി -h ഓപ്ഷൻ ഉപയോഗിച്ച് അഞ്ചാമത്തെ കോളത്തിലെ സൈസ് കാണുന്നതു നോക്കു. 5777 ബിറ്റ് എന്നത് 5.7K (കിലോ ബിറ്റ് ) എന്നായി മാറിയിരിക്കുന്നു.

[prasobh@localhost MyNotes]$ ls -lh LinuxScripting.txt -rw-r–r– 1 prasobh prasobh 5.7K 2009-08-03 21:13 LinuxScripting.txt

ഇനി മറ്റു ചില ഓപ്ഷനുകൾ പരിചയപ്പെടുത്താം.

” -l” ഓപ്ഷൻ ഉപയോഗിക്കുമ്പോൾ ഫയലുകൾ ലിസ്റ്റ് ചെയ്യുന്നത് അക്ഷരമാലാ ക്രമത്തിലാണ്. ഇതിന്റെ കൂടെ “-t” എന്ന ഓപ്ഷൻ ഉപയോഗിക്കുകയാണെങ്കിൽ ഏറ്റവും അവസാനം മാറ്റം വരുത്തിയ ഫയലുകൾ അവസാനവും, ആദ്യം മാറ്റം വരുത്തിയവ ആദ്യത്തിലും എന്ന രീതിയിൽ ലിസ്റ്റ് ചെയ്യും. ഈ രീതികളെല്ലാം ആരോഹണ ക്രമത്തിലാണ് ഫയലുകൾ കാണിക്കുക. ഇതു തിരിച്ച് അവരോഹണ ക്രമത്തിൽ ആക്കണമെങ്കിൽ ഈ ഓപ്ഷന്റെ കൂടെ “-r” എന്ന ഓപ്ഷൻ ഉപയോഗിക്കുക.

മേൽ പറഞ്ഞ ഓപ്ഷനുകളുടെ ഒരു സംഗ്രഹം കൂടെ കൊടുക്കുന്നു.

ls -l  : ലോങ്ങ് ലിസ്റ്റിങ്ങ് – അക്ഷരമാലാ ക്രമത്തിൽ – ആരോഹണ രീതിയിൽ ls -lr : ലോങ്ങ് ലിസ്റ്റിങ്ങ് – അക്ഷരമാലാ ക്രമത്തിൽ – അവരോഹണ രീതിയിൽ ls -lt : ലോങ്ങ് ലിസ്റ്റിങ്ങ് – മാറ്റം വരുത്തിയ ക്രമത്തിൽ – ആരോഹണ രീതിയിൽ ls -ltr: ലോങ്ങ് ലിസ്റ്റിങ്ങ് – മാറ്റം വരുത്തിയ ക്രമത്തിൽ – അവരോഹണ രീതിയിൽ

ഇങ്ങനെ മിക്ക ഓപ്ഷനുകളും നിങ്ങൾക്ക് കൂട്ടമായി ഉപയോഗിക്കാൻ കഴിയും, കൂടുതൽ അറിയാൻ ഷെല്ലിൽ താഴെപ്പറയുന്ന കമാൻഡ് ടൈപ് ചെയ്യുക. man ls [prasobh@localhost]$ man ls