ഗ്നു/ലിനക്സ് ഷെല്‍ പാഠങ്ങള്‍ – ഭാഗം 4

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

കണ്ടു പിടിക്കുന്നതിനും അവയെക്കുറിച്ചുള്ള കൂടുതല്‍ വിവരങ്ങള്‍ ലഭിക്കുന്നതിനും “എല്‍.എസ്.” (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