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

ഫയല്‍ സിസ്റ്റത്തിലെ വിവിധ ഡയറക്റ്ററികളിലേക്ക്  ആവശ്യാനുസരണം  മാറുകയും  ജോലി ചെയ്യാന്‍ ആവശ്യമായ ഫയലുകളും  ഡയറക്റ്ററികളും തേടി കണ്ടു പിടിക്കുകയും ചെയ്യുന്നതിനാണ്  പൊതുവില്‍ ഫയല്‍ സിസ്റ്റം ബ്രൗസിങ്ങ് / ഡയറക്റ്ററി ബ്രൗസിങ്ങ് എന്നു പറയുന്നത്.  ഇതിനു പ്രധാനമായും ഉപയോഗിക്കുന്നത്   സിഡി, എല്‍എസ് എന്നീ കമാന്‍ഡുകളാണ്.  ഇതിന്റെ ഉപയോഗം ചെറിയ തോതില്‍ മുന്‍പത്തെ ഭാഗത്തില്‍ വിശദീകരിച്ചിരുന്നു.  ഈ വിഷയത്തില്‍ കൂടുതല്‍ കാര്യങ്ങള്‍ പഠിക്കുന്നതിനു മുന്‍പ് ഇതിന്  അടിസ്ഥാനമായ ചില സാങ്കേതിക സംജ്ഞകള്‍ അറിഞ്ഞിരിക്കണം.
ആബ്സൊല്യൂട് പാത്തും റിലേറ്റീവ് പാത്തും
റൂട്ട് ഡയറക്റ്ററിയില്‍ നിന്നും ഒരു ഡയറക്റ്ററി/ഫയല്‍ ലേക്കു പോകാനുള്ള വഴിയാണ് ( പാത്ത് ) ആ ഡയറക്റ്ററി/ഫയലിന്റെ  ആബ്സൊല്യൂട് പാത്ത്.  ഉദാഹരണത്തിന്  എന്റെ ഹോം ഡയറക്റ്ററിക്കകത്തുള്ള ( /home/prasobh)‌  Documents എന്ന ഡയറക്റ്ററിയില്‍ reusume.pdf എന്ന ഫയല്‍ ഉണ്ടെന്നു വിചാരിക്കുക.  അതിന്റെ ആബ്സൊല്യൂട്ട് പാത്ത്  “/home/prasobh/Documents/resume.pdf” എന്നായിരിക്കും.
പ്രസന്റ് വര്‍ക്കിങ്ങ് ഡയറക്ടറി ( പി.ഡബ്ളു.ഡി – PWD ) യില്‍ നിന്നും  ഒരു ഡയറക്ടറി/ഫയല്‍ ലേക്കു പോകാനുള്ള വഴിയാണ്  ആ ഡയറക്ടറി/ഫയലിന്റെ  റിലേറ്റീവ് പാത്ത്.  മേല്പറഞ്ഞ ഫയലിന്റെ കാര്യം തന്നെ എടുക്കുക. എന്റെ നിലവിലുള്ള പി.ഡബ്ള്യു.ഡി.  എന്റെ ഹോം ഡയറക്റ്ററി തന്നെ ആണെന്നു വെക്കുക.  അവിടെ നിന്നും ഈ ഫയലിലെത്തിച്ചേരാന്‍  “Documents/resume.pdf” എന്ന റിലേറ്റീവ് പാത്ത് ആണ് ഉപയോഗിക്കേണ്ടത്.  

ഈ വഴികളെ രണ്ടിനെയും പൊതുവായി പാത്ത് എന്നും പറയാറുണ്ട്.  ഇതില്‍ ശ്രദ്ധിക്കേണ്ട കാര്യം ആബ്സൊല്യൂട്ട് പാത്തിന്റെ ഇടതു വശം “/” ല്‍ ആരംഭിക്കുമ്പോള്‍ റിലേറ്റീവ് പാത്തിന് അതിന്റെ ആവശ്യമില്ല എന്നുള്ളതാണ്.  ഷെല്ലില്‍ നിങ്ങള്‍ എവിടയാണ് നില്‍ക്കുന്നത് ( പ്രസന്റ് വര്‍ക്കിങ്ങ് ഡയറക്ടറി ഏതാണ് ) എന്നു നിങ്ങള്‍ക്കറിയാമെങ്കില്‍ റിലേറ്റീവ് പാത്ത് ഉപയോഗിക്കുന്നതാണ് എളുപ്പം.   അല്ലാത്ത പക്ഷം ആബ്സൊല്യൂട്ട് പാത്ത് തന്നെ ഉപയോഗിക്കുക.

ഒരു ഡയറക്റ്ററിയുടെ ആബ്സൊല്യൂട്ട് പാത്ത് കണ്ടു പിടിക്കാന്‍ ആ ഡയറക്ടറിയില്‍ നിന്നു കൊണ്ട്  “pwd” എന്ന കമാന്‍ഡ്  ടൈപ് ചെയ്താല്‍ മതി.

സിഡി
(CD)

ചെയ്ഞ്ച്  ഡയറക്റ്ററി എന്നതിന്റെ ചുരുക്കം എന്ന രീതിയിലാണ്  സിഡി കമാന്‍ഡ് ഉപയോഗിക്കുന്നത്.  പേരു സൂചിപ്പിക്കും പോലെ  ഒരു ഡയറക്റ്ററിയില്‍ നിന്ന്  വേറൊന്നിലേക്കു മാറുക എന്നതാണ്   സിഡി യുടെ ഉപയോഗം.  സി.ഡി എന്ന കമാന്‍ഡിന്റെ വലതു വശത്തായി ഏതു ഡയറക്റ്ററിയിലേക്കാണോ മാറേണ്ടത്  ആ ഡയറക്ടറിയുടെ പാത്ത് ( ആബ്സൊല്യൂട്ടോ റിലേറ്റീവോ ) നലികിയാല്‍ മതി.
ഉദാഹരണത്തിന്  എനിക്കു എന്റെ ഹോം ഡയറക്റ്ററിയിലെ “Videos/Hindi” എന്ന ഡയറക്റ്ററിയില്‍ പോകണം എന്നു വിചാരിക്കുക.  ഞാന്‍ ഇപ്പോള്‍ നില്‍ക്കുന്നത് എന്റെ ഹോം ഡയറക്റ്ററിയിലാണെങ്കില്‍ (PWD = /home/prasobh ) എനിക്ക്  “cd Videos/Hindi”  എന്നു മാത്രം ടൈപ് ചെയ്തു ആ ഡയറക്റ്ററിയിലേക്ക് പോകാന്‍ കഴിയും.  എന്നാല്‍ ഞാന്‍ നില്‍ക്കുന്നത്  “/home” എന്ന ഡയറക്റ്ററിയില്‍ ആണെങ്കില്‍ ( PWD ‘/home’ ആണെങ്കില്‍ ) “cd prasobh/Videos/Hindi” എന്നു ഉപയോഗിക്കേണ്ടി വരും.  നേരെ മറിച്ച് ഹോം ഡയറക്റ്ററിക്കകത്തെ Videos എന്ന ഡയറക്റ്ററിയിലാണ് നില്‍ക്കുന്നതെങ്കില്‍  ( PWD ‘/home/prasobh/Videos’ ആണെങ്കില്‍ ) “cd Hindi” എന്നു മാത്രം ഉപയോഗിച്ചാല്‍ മതിയാവും.  ഇതിലെല്ലാം ഞാന്‍ ഉപയോഗിച്ചത് റിലേറ്റീവ് പാത്ത് ആണ്.  ഇനി ഇതിന്റെ ആബ്സൊല്യൂട്ട് പാത്ത്  ആയ /home/prasobh/Videos/Hindi എന്നാണ് ഉപയോഗിക്കുന്നതെങ്കില്‍ നിങ്ങള്‍ ഷെല്ലില്‍ എവിടെയാണ് എന്നുള്ളത് ഒരു വിഷയമേ അല്ല.  മേല്‍പറഞ്ഞ മൂന്നു ഡയറക്ടറികളില്‍ എവിടെ നിന്നു “cd  /home/prasobh/Videos/Hindi”  എന്നുപയോഗിച്ചാലും നിങ്ങള്‍ക്ക് ഈ ഡയറക്റ്ററിയില്‍ എത്തിച്ചേരാന്‍ സാധിക്കും. ഇനി ഇവിടെയൊന്നുമല്ല നിങ്ങള്‍ തികച്ചും വ്യത്യസ്തമായ ഒരു ഡയറക്റ്ററി ( ഉദാ: /tmp , /usr/local പോലെ ഏതെങ്കിലും ) യില്‍ ആണെങ്കില്‍ പോലും ആബ്സൊല്യൂട്ട് പാത്ത് ഉപയോഗിക്കുന്നിടത്തോളം കാലം നിങ്ങള്‍ക്ക് നിര്‍ദ്ദിഷ്ട ഡയറക്റ്ററിയില്‍ എത്തിച്ചേരാന്‍ സാധിക്കും. 

മേല്‍പറഞ്ഞ ഉദാഹരണങ്ങള്‍  കമ്പ്യൂട്ടറില്‍ ഉപയോഗിച്ചിരിക്കുന്നതു നോക്കു.  ഓരൊ കമാന്‍ഡിനു മുന്‍പും പിന്‍പും ഞാന്‍ ഏതു ഡയറക്റ്ററിയിലായിരുന്നു എന്നറിയാന്‍  പിഡബ്ള്യുഡി കമാന്‍ഡ് ഉപയോഗിച്ചിട്ടുണ്ട്.

[prasobh@localhost ~]$ pwd
/home/prasobh
[prasobh@localhost ~]$cd Videos/Hindi/
[prasobh@localhost Hindi]$ pwd
/home/prasobh/Videos/Hindi
[prasobh@localhost home]$ pwd

/home
[prasobh@localhost home]$cd prasobh/Videos/Hindi/
[prasobh@localhost Videos]$pwd
/home/prasobh/Videos

സിഡി കമാന്‍ഡിന്റെ കൂടെ ഉപയോഗിക്കാവുന്ന ചില  കുറുക്കുവഴികളുണ്ട്.   ഇവ മിക്കതും ഏതെങ്കിലും ഡയറക്റ്ററിയ്ക്കുള്ള  അപരനാമം (alias) ആയിരിക്കും.  താഴെ കൊടുത്തവ നോക്കുക:

cd ~  അല്ലെങ്കില്‍ cd  :  ഇതിലേതു കമാന്‍ഡ് ടൈപ് ചെയ്താലും  ഉപയോക്താവിന്  അയാളുടെ ഹോം ഡയറക്റ്ററിയില്‍  എത്തിച്ചേരാന്‍ സാധിക്കും.   ഇതില്‍  “~”  എന്നതു ഉപയോക്താവിന്റെ ഹോം ഡയറക്റ്ററിയുടെ ഒരു അപര നാമം ആണ്.  ഈ അപരനാമം നിങ്ങള്‍ക്  ഏത് കമാന്‍ഡിന്റെ കൂടെയും ഉപയോഗിക്കാന്‍ സാധിക്കും.   ഉദാഹരണത്തിന്   ഞാന്‍   /usr/share/doc ല്‍ നിന്നും ഇതിലേതെങ്കിലും കമാന്‍ഡ്  ടൈപ് ചെയ്താല്‍  /home/prasobh ല്‍ എത്തിച്ചേരും.

[prasobh@localhost doc]$ pwd
/usr/share/doc

പ്രസന്റ് വര്‍കിങ്ങ് ഡയറക്റ്ററി യെക്കുറിച്ച് മുന്‍പ് വിശദീകരിച്ചല്ലോ, ഇതിന്റെ അപരനാമമായി  “.” ( പൂര്‍ണവിരാമം ) ഉപയോഗിക്കാറുണ്ട്.  ഉദാഹരണത്തിന്  “/usr/share/doc”  ല്‍ നിന്നു കൊണ്ടു  “cd .” എന്നുപയോഗിക്കുന്നത്  “cd /usr/share/doc” എന്ന കമാന്‍ഡിനു തുല്യമായിരിക്കും.   ഒരു ഡയറക്ടറിയില്‍ നിന്നും ആ ഡയറക്റ്ററിയിലേക്കു തന്നെ മാറുക എന്നതു സാങ്കേതികമായി പ്രസക്തിയുള്ള ഒരു കാര്യമല്ല.  എന്നാല്‍ മറ്റു പല കമാന്‍ഡുകളുടെയും കൂടെ ഉപയോഗിക്കുമ്പോള്‍ ഈ സംജ്ഞ കൊണ്ടു പ്രയോജനം ഉണ്ട്.

പിഡബ്ള്യുഡി  എന്ന സംജ്ഞയുമായി ബന്ധമുള്ളതാണ് ഓള്‍ഡ് പിഡബ്ള്യുഡി ( ഓപിഡബ്ള്യുഡി ) എന്ന സംജ്ഞ. ഇതു നിങ്ങള്‍ പി.ഡബ്ള്യു.ഡി യിലേക്കു മാറുന്നതിനു തൊട്ടു മുന്‍പു ഏതു ഡയറക്റ്ററിയിലായിരുന്നു എന്നു സൂചിപ്പിക്കുന്നു.  ഉദാഹണത്തിനു നിങ്ങള്‍ “/usr/share/doc” ല്‍ നിന്നു  “/home/prasobh/Videos/Hindi/”  ലേക്കു മാറി എന്നു കരുതുക.  ഇവിടെ നിങ്ങളുടെ പിഡബ്ള്യുഡി   /home/prasobh/Videos/Hindi/ ഉം ഓള്‍ഡ്  പിഡബ്ള്യുഡി  /usr/share/doc ഉം ആണ്.  ഇനി നിങ്ങള്‍ക്ക്  തിരിച്ചു ഓപിഡബ്ള്യുഡി യിലേക്കു പോകണം എന്നു വിചാരിക്കുക.   സാധാരണ ഗതിയില്‍ നിങ്ങള്‍ക്ക്  “cd  /usr/share/doc”  എന്നുപയോഗിക്കേണ്ടി വരും, എന്നാല്‍ നിങ്ങള്‍ തിരിച്ചു പോകുന്നത്  ഓ.പി.ഡബ്ള്യു.ഡി യിലേക്കായതിനാല്‍ ഇതിനു പകരം “cd – or (cd .. )” എന്നുപയോഗിച്ചാല്‍ മതി.  താഴെ കൊടുത്തിരിക്കുന്ന ഉദാഹരണം നോക്കുക.

[prasobh@localhost doc]$ pwd
/usr/share/doc
[prasobh@localhost doc]$ cd /home/prasobh/Videos/Hindi/
[prasobh@ocalhost Hindi]$ pwd
/home/prasobh/Videos/Hindi
[prasobh@localhost Hindi]$ cd –
[prasobh@localhost doc]$ pwd
/usr/share/doc

പ്രസന്റ് വര്‍കിങ്ങ് ഡയറക്റ്ററിയുടെ പാരന്റ് ഡയറക്റ്ററിയെ സൂചിപ്പിക്കാന്‍  “..”  എന്ന സംജ്ഞ ഉപയോഗിക്കറുണ്ട്.  അതായത്  നിങ്ങളുടെ പിഡബ്ള്യുഡി “/usr/share/doc” ആണെങ്കില്‍ “..” എന്നതു “/usr/share/” നെ സൂചിപ്പിക്കുന്നു.

[prasobh@localhost doc]$ pwd
/usr/share/doc
[prasobh@localhost doc]$ cd ..
[prasobh@localhost share]$ pwd
/usr/share

“..” ന്റെ  ഉപയോഗം കുറച്ചു കൂടി വിശദമാക്കുന്ന ഒരു ഉദാഹരണത്തോടെ ഈ പാഠം അവസാനിപ്പിക്കാം.

/home/prasobh/Videos/ എന്ന ഡയറക്റ്ററിക്കകത്ത്  Hindi, English എന്നിങ്ങനെ രണ്ട് ഡയറക്റ്ററികള്‍ ഉണ്ടെന്നും നിങ്ങള്‍ അതില്‍ Hindi ഡയറക്റ്ററിയില്‍ ആണെന്നും വിചാരിക്കുക. ഇവിടെ നിന്നും English എന്ന ഡയറക്റ്ററിയിലേക്കു പോകാന്‍ അതിന്റെ ആബ്സൊല്യൂട്ട് പാത്ത് ആയ “/home/prasobh/Videos/English” ഉപയോഗിക്കാം.  എന്നാല്‍ “..” ഉപയോഗിച്ച് നമുക്കു ഇതിനു തുല്യമായ റിലേറ്റീവ് പാത്ത് ഉണ്ടക്കാന്‍ സാധിക്കും.  നിങ്ങളുടെ പിഡബ്ള്യുഡി ആയ /home/prasobh/Videos/Hindi യുടെ പാരന്റ് ഡയറക്റ്ററിയായ /home/prasobh/Videos/  ന്റെ സബ് ഡയറക്റ്ററി തെന്നെയാണല്ലോ English.  വേറൊരു രീതിയില്‍ പറഞ്ഞാല്‍  “..” ന്റെ സബ് ഡയറക്റ്ററി, അതായത്  ../English.  അപ്പോള്‍ /home/prasobh/Videos/Hindi ല്‍ നിന്നും /home/prasobh/Videos/English ലേക്കു പോകാന്‍ “cd ../English” എന്ന കമാന്‍ഡ് ഉപയോഗിച്ചാല്‍ മതി. ഇനി ഇവിടെ നിന്നു /home/prasobh ലേക്കു പോകണമെങ്കിലോ?  “cd ../..” എന്ന കമാന്‍ഡ് ഉപയോഗിക്കാം.