ഷെൽ പ്രോഗ്രാമിങ്ങ്/ഭാഗം 1
ഷെല്ലിലും ( മറ്റു മിക്ക സോഫ്റ്റ് വെയർ പ്രോഗ്രാമുകളിലും ) ഉള്ള അടിസ്ഥാനമായ ഒരു സാങ്കേതിക സംജ്ഞയാണ് (Technical Term) പ്രസന്റ് വർക്കിങ്ങ് ഡയറക്ടറി (Present Working Directory ), ഇതിന്റെ ചുരുക്കെഴുത്തായി പി.ഡബ്ല്യു.ഡി. ( P.W.D.) എന്നും ഉപയോഗിക്കുന്നു. ഒരു ഉപയോക്താവ് ഷെല്ലിൽ എന്തു ചെയ്യുന്നതും ഒരു ഫോൾഡറിനകത്തു നിന്നു കൊണ്ടായിരിക്കും. ഈ ഫോൾഡർ (ഡയറക്ടറി) യെയാണു പി.ഡബ്ല്യു.ഡി. എന്നു വിളിക്കുന്നത്. സാധാരണ ജി.യു.ഐ ഉപയോക്താക്കൾക്ക് ഈ സങ്കല്പം ഒരു പക്ഷെ പുതിയതായി തോന്നാം. ഏന്നാൽ ഇതു ജി.യു.ഐ പ്രോഗ്രമുകൾക്ക് അന്യമായ ഒന്നല്ല എന്നതാണ് വാസ്തവം. ജി.യു.ഐ. മാത്രമുപയോഗിക്കുമ്പോൾ അതു മനസ്സിലക്കേണ്ട സാഹചര്യം പൊതുവേ ഉണ്ടാവാറില്ലെന്നു മാത്രം. ഏതു ഓപറേറ്റിങ്ങ് സിസ്റ്റത്തിലായാലും എല്ലാ ജി.യു.ഐ./ഷെൽ സോഫ്റ്റ് വെയറുകളുടെയും പി.ഡബ്ല്യു.ഡി. സാധാരണ ഗതിയിൽ ആ പ്രോഗ്രാം ഉപയോഗിക്കുന്ന ഉപയോക്താവിന്റെ ഹോം ഡയറക്ടറി ആയിരിക്കും. പ്രോഗ്രാമുകൾക്ക് ആവശ്യമെങ്കിൽ പിന്നീട് സ്വന്തം പി.ഡബ്ള്യു.ഡി. മാറ്റാൻ സാധിക്കും.
ഒരു ഷെൽ നിങ്ങൾ തുറക്കുമ്പോൾ ആ വിൻഡോയിൽ നിങ്ങൾക്ക് ആകെ കാണാൻ സാധിക്കുക വിൻഡോയുടെ മുകൾ ഭാഗത്ത് ഇടതു വശത്തോടു ചേർന്ന് “$” അല്ലെങ്കിൽ “#” ൽ അവസാനിക്കുന്ന ഒരു വാക്ക് മാത്രമായിരിക്കും. ഇതാണ് ഷെൽ പ്രോംപ്റ്റ് (Shell Prompt) . പ്രോംപ്റ്റ് എന്ന വാക്ക് സൂചിപ്പിക്കുന്നതു പോലെ ഉപയോക്താവിനോടു കമാൻഡുകൾ ടൈപ് ചെയ്യാൻ ആവശ്യപ്പെടുന്ന/പ്രേരിപ്പിക്കുന്ന എന്ന അർഥത്തിലാണ് ഷെൽ പ്രോംപ്റ്റ് എന്ന് ഉപയോഗിക്കുന്നത്. ഇവിടെ കാണുന്ന $ / # നു ശേഷമുള്ള ഭാഗത്ത് ഉപയോക്താവിനു കമാൻഡുകൾ ടൈപ് ചെയ്യാൻ സാധിക്കും. ഉദാഹരണമായി ഞാൻ ഉപയോഗിക്കുന്നത് കെ.ഡി.ഇ യിലെ കൺസോൾ എന്ന പ്രോഗ്രാം ആണ്. അതിൽ കാണുന്ന പ്രോംപ്റ്റ് ഇപ്രകാരമായിരിക്കും
[prasobh@localhost ~]$
ഷെൽ പ്രോംപ്റ്റിൽ കാണുന്ന ഈ വാക്ക് യഥാർഥത്തിൽ പല ഭാഗങ്ങൾ കൂടിച്ചേർന്നതാണ്. “@” എന്ന ചിഹ്നത്തിനു മുൻപിലായി കാണുന്നത് എന്റെ ഉപയോക്തൃനാമമായ (username) പ്രശോഭ് (prasobh) ആണ്. “@” ചിഹ്നത്തിനു ശേഷം “:” നു മുൻപായി കാണുന്നത് എന്റെ കമ്പ്യൂട്ടറിന്റെ പേര് – ഹോസ്റ്റ്നെയിം (hostname) ആയ “localhost”. അതിനു ശേഷം “:” കഴിഞ്ഞു കാണുന്ന “~” എന്റെ പ്രസന്റ് വർക്കിംഗ് ഡയറക്ടറിയെ സൂചിപ്പിക്കുന്നു. മിക്ക പ്രോഗ്രാമുകളുടെയും തുടക്കത്തിലെ പി.ഡബ്ള്യു.ഡി. ഉപയോക്താവിന്റെ ഹോം ഡയറക്ടരി ആവും എന്നു നേരത്തെ പറഞ്ഞല്ലോ. എന്റെ കാര്യത്തിൽ ഇത് “/home/prasobh” ആണ്. യഥാർഥത്തിൽ “~” എന്നത് ഹോം ഡയറക്റ്ററിയുടെ ചുരുക്കെഴുത്ത് /അപരനാമം (alias) ആണ്. ഇത്തരത്തിൽ നിരവധി അപരനാമങ്ങൾ ലിനക്സിൽ ഉണ്ട്. പി.ഡബ്ള്യു.ഡി. മാറുന്നതനുസരിച്ച് ഷെൽപ്രോംപ്റ്റിന്റെ ഈ അവസാന ഭാഗവും മാറിക്കൊണ്ടിരിക്കും. ഈ ഷെൽ പ്രോംപ്റ്റിനെ ഇങ്ങനെ സംഗ്രഹിക്കാം: ” ഉപയോക്തൃനാമം@കംപ്യൂട്ടർനാമം: പി.ഡബ്ള്യു.ഡി.$ “. ഷെൽ പ്രോംപ്റ്റുകൾ ഉപയോക്താക്കളുടെ ഇഷ്ടാനുസരണം കസ്റ്റമൈസ് ചെയ്യാൻ കഴിയുമെങ്കിലും പൊതുവെ ആരും അതിനു മിനക്കെടാറില്ല. മിക്ക ഷെല്ലുകളിലും പ്രോംപ്റ്റ് മേല്പറഞ്ഞ രീതിയിൽ ആയിരിക്കുമെങ്കിലും യുണിക്സ് അടിസ്ഥാനമായ പല ഓപറേറ്റിങ്ങ് സിസ്റ്റങ്ങളിലും ഇതിൽ നിന്നു അല്പം വ്യത്യാസം കാണാം.
ഇനി നമുക്കു ഒരു ഷെൽ കമാൻഡ് നോക്കാം. പി.ഡബ്ളു.ഡി. യെക്കുറിച്ചു നേരത്തെ സൂചിപ്പിച്ചല്ലൊ, ഇനി ഓപ്പൺ ചെയ്ത ഷെല്ലിന്റെ നിലവിലുള്ള പി.ഡബ്ളു.ഡി. കാണാൻ “pwd” എന്ന കമാൻഡ് ഉപയോഗിച്ചു നോക്കാം. ഈ കമാൻഡ് ടൈപ് ചെയ്തു എന്റർ അമർത്തിയാൽ ഇതിന്റെ ഔട്പുട്ട് ആയി എന്റെ നിലവിലെ പി.ഡബ്ളു.ഡി. ആയ ഹോം ഡയറക്റ്ററി കാണാം.
[prasobh@localhost ~]$ pwd /home/prasobh
ഇനി എന്റെ ഹോം ഡയറക്റ്ററിയിൽ ഉള്ള എല്ലാ ഫയലുകളും ഫോൾഡറുകളും കാണാൻ “ls” എന്ന കമാൻഡ് ഉപയോഗിച്ചു നോക്കാം.
[prasobh@localhost ~]$ ls 10880.jpg Documents Public AdbeRdr9.1.1-1_i386 linux_enu.deb downloads main_inner_06072009.jpg Videos ajax_chat-0.8.3.zip Music Transformers.avi com_ccboard_1_1_RC.zip images Personal db_v2.jpg Y_Training Desktop GhulamAli-Gazal-1.mp3 Photos Network.odp
ഇനി ഹോം ഡയറക്റ്ററിയിലുള്ള ഡോക്യുമെന്റ്സ് എന്ന ഡയറക്ടറിയിലേക്കു പോകാൻ “cd” എന്ന കമാൻഡ് ഉപയോഗിക്കാം. ഇതോടെ എന്റെ പി.ഡബ്ള്യു.ഡി. യും മാറും.
[prasobh@localhost ~]$ cd Documents/ [prasobh@localhost Documents]$ pwd /home/prasobh/Documents [prasobh@localhostDocuments]$ ls ip-network.ml.pdf notes.txt
ഡയറക്റ്ററി മാറിയപ്പോൾ പ്രോംപ്റ്റ് മാറിയതു ശ്രദ്ധിച്ചു കാണുമല്ലോ. “pwd” ഉപയോഗിച്ചപ്പോൾ ആ ഡയറക്റ്ററി കാണിക്കുകയും ചെയ്തു. ഈ ഡയറക്റ്ററിയിൽ ആകെ ഒരു പി.ഡി.എഫ് ഫയലും ഒരു ടെക്സ്റ്റ് ഫയലും മാത്രമേ ഉള്ളൂ എന്നു “ls” കമാൻഡ് ഉപയോഗിച്ചും കാണാൻ കഴിഞ്ഞു.
ഇപ്പോൾ കണ്ട മൂന്നു കമാൻഡുകളിൽ pwd,ls എന്നിവയിൽ ആ കമാൻഡ് മാത്രം ഉപയോഗിച്ചപ്പോൾ cd എന്ന കമാൻഡിന്റെ കൂടെ വലതുവശത്തായി “Documents/” എന്നും കൊടുത്തിരിക്കുന്നു. ഇതു കമാൻഡിന് ആവശ്യമുള്ള ഒരു ഇൻപുട്ട് ആണ്. ഇത്തരത്തിൽ കമാൻഡുകൾക്കാവശ്യമായ ഇൻപുട്ടുകളെ അതാതു കമാന്റുകളുടെ ആർഗ്യുമെന്റ്സ് എന്നാണു പറയുന്നത്. ഇതു ഓരോ കമാൻഡിനും അതിന്റേതായ രീതിയിൽ ആയിരിക്കും. ഒരോ കമാൻഡുകളിലും ഉപയോഗിക്കാവുന്ന ആർഗ്യുമെന്റുസും മറ്റു ഓപ്ഷനുകളും കാണുന്നതിനു വേണ്ടി “man” എന്ന കമാൻഡിനു ശേഷം ആവശ്യമുള്ള കമാൻഡ് ടൈപ് ചെയ്താൽ മതി. ഉദാഹരണത്തിന് “ls” കമാൻഡിനെ കുറിച്ചു കൂടുതൽ അറിയാൻ “man ls” എന്ന കമാൻഡ് ഉപയോഗിക്കുക. ചില കമാൻഡുകളുടെ സഹായം മാൻ ഉപയോഗിച്ചു ലഭ്യമായില്ല എന്നു വരും. അത്തരം കമാൻഡുകളിൽ കമാൻഡിനു ശേഷം “–help” എന്നു ടൈപ് ചെയ്തു നോക്കാവുന്നതാണ്. ഉദാഹരണത്തിന് “cd –help”.