ഷെൽ പ്രോഗ്രാമിങ്ങ്/ആമുഖം
ഗ്നു/ലിനക്സിലെ തുടക്കക്കാർക്കു പലപ്പോഴും ഉപയോഗിക്കാൻ ബുദ്ധിമുട്ടനുഭവപ്പെടുന്ന ഒന്നാണ് ലിനക്സിലെ ഷെൽ (Linux Shell). വിൻഡോസിൽ നിന്നും ലിനക്സിലേക്കു മാറുന്ന ഒരു ഉപയോക്താവിനു പ്രത്യേകിച്ചും. വിൻഡോസിലേതു പോലെ തന്നെ സാധാരണ ഉപയോക്താവിനാവശ്യമായതെല്ലാം ഗ്രാഫിക്കൽ യൂസർ ഇന്റെർഫെയ്സുകൾ (Graphical User Interface / GUI) വഴി ചെയ്യാൻ ഉള്ള സൗകര്യം ലിനക്സ് ഡെസ്ക്ടോപ്പുകളിലും ഉണ്ട്. എന്നാൽ കൂടുതൽ സങ്കീർണമായ ജോലികൾ – പുതിയ ഒരു ഡ്രൈവ് ഉണ്ടാക്കുക, സിസ്റ്റം സർവീസുകൾ കോൺഫിഗർ ചെയ്യുക മുതലായവ – ചെയ്യുമ്പോൾ ലിനക്സ് ഷെല്ലുകൾ വളരെ ഉപയോഗപ്രദം ആണ്.
അടിസ്ഥാനപരമായി ഒരു ഷെൽ എന്നത് മറ്റ്ഏതു സോഫ്റ്റ്വെയർ പ്രോഗ്രാമുകൾ പോലെയുമുള്ള ഒരു പ്രോഗ്രാം ആണ്. ഏതു തരം സോഫ്റ്റ്വെയർ പ്രോഗ്രാമായാലും അതിൽ പ്രവർത്തിക്കുമ്പോൾ നിങ്ങൾ കീബോർഡ്/മൗസ് വഴി നല്കുന്ന ഇൻപുട്ടുകൾ (Input) വാസ്തവത്തിൽ കംപ്യൂട്ടറിന് നിങ്ങൾ നല്കുന്ന നിർദേശങ്ങൾ ആണ്. ഒരു ഷെല്ലിൽ നിങ്ങളുടെ ഇൻപുട്ടുകൾ ഒറ്റ വരിയിലൊതുങ്ങുന്ന ഒന്നോ അതിലധികമോ വാക്കുകളായിരിക്കും. ഇതു നല്കാൻ നിങ്ങൾക്ക് കീബോർഡ് മാത്രമെ ഉപയോഗിക്കേണ്ടതുള്ളൂ/ഉപയോഗിക്കാൻ കഴിയൂ. ഈ ഒറ്റ വരി ഇൻപുട്ടുകളെ പൊതുവായി “ഷെൽ കമാൻഡുകൾ” (Shell Command) എന്നു പറയുന്നു. ഒരു ഷെല്ലിൽ നൂറുകണക്കിന് കമാൻഡുകൾ ലഭ്യമായിരിക്കും.
ഈ കമാൻഡുകളെല്ലാം ഓർത്തു വെക്കാൻ കഴിയില്ല എന്നും ഇതെല്ലാം കമ്പ്യൂട്ടർ വിദഗ്ദ്ധർക്കു മാത്രം ഉള്ളതാണ് എന്നുമുള്ള ഒരു പൊതുധാരണ നിലവിലുണ്ട്. അതുകൊണ്ടു തന്നെയാണ് പലർക്കും ഇതൊരു ബാലികേറാമലയാണെന്നു തോന്നുന്നത്. യഥാർഥത്തിൽ ഓരോ ഷെൽ കമാൻഡും വേറെ വേറെ പ്രോഗ്രാമുകളാണ്. ഇവയെ ഒന്നിച്ചു കൂട്ടി ഒരിടത്തു നിന്നും പ്രവർത്തിപ്പിക്കുന്നതിനുള്ള ഒരു മധ്യവർത്തിയായ (Intermediary) പ്രോഗ്രാം മാത്രമാണ് ഷെൽ. അതു കൊണ്ടു തന്നെ ഷെല്ലുകൾ അറിയപ്പെടുന്നത് കമാൻഡ് ഇന്റർപ്രറ്ററുകൾ (Command Interpreter) എന്നാണ്. സാധാരണ ഒരു കംപ്യൂട്ടറിൽ എത്ര സോഫ്റ്റ്വെയറുകൾ ഉണ്ടായാലും ഉപയോക്താക്കൾ പൊതുവെ അവർക്കാവശ്യമുള്ളവ മാത്രമെ പഠിക്കുകയും ഉപയോഗിക്കുകയും ചെയ്യുകയുള്ളു. ഇതു പോലെ തന്നെ ഷെല്ലിലും അടിസ്ഥാനമായ ഒരൽപം കമാൻഡുകൾ പഠിച്ചു വെക്കുന്നത് നല്ലതാണ്. ബാക്കിയുള്ളവ ഓരോരുത്തർക്കും അവരുടെ താല്പര്യവും ആവശ്യവുമനുസരിച്ചു പഠിച്ചാൽ മതി.
ലിനക്സ്/യുനിക്സ് അടിസ്ഥാനമായുള്ള നിരവധി ഷെല്ലുകൾ ഉണ്ട്. അവയിൽ ഏറ്റവും പ്രചാരം ഉള്ളത് “ബാഷ്” (Bash) എന്ന ഷെല്ലിനാണ്. ഇതു കൂടാതെ സി-ഷെൽ (C Shell), ടി. ഷെൽ (T Shell) എന്നിവയും ഉപയോഗത്തിലുണ്ട്. സാധാരണ ലിനക്സ് ഡെസ്ക്ടോപ് ഓപ്പറേറ്റിങ്ങ് സിസ്റ്റങ്ങളിൽ എല്ലാ ഷെല്ലുകളും ഉണ്ടാകുമെങ്കിലും പ്രാഥമികമായി ഉപയോഗിക്കുന്നത് ബാഷ് ആയിരിക്കും. അടിസ്ഥനപരമായി ഉപയോഗിക്കുന്നതു ബാഷ് ആണെങ്കിലും ഇതിനു പുറമെ ചില സൌകര്യങ്ങൾ കൂട്ടിച്ചേർത്ത് മറ്റു ചില പേരുകളിലാണ് സാധാരണ ഡെസ്ക് ടോപ്പുകളിൽ ഷെല്ലുകൾ നല്കുന്നത്. ഉദാഹരണത്തിന് കെ.ഡി.ഇ. ഡെസ്ക്ടോപ് എൻവയോണ്മെന്റ് (KDE Desktop Environment) ഉപയോഗിക്കുന്ന ഓപറേറ്റിങ്ങ് സിസ്റ്റങ്ങളിൽ കൺസോൾ (Konsole) എന്ന പേരിലുള്ള ബാഷ് ഷെൽ അടിസ്ഥാനമായ ഒരു പ്രോഗ്രാം ആണ് ഉള്ളത്. ഇതുപയോഗിച്ച് നിങ്ങൾക്ക് ഒറ്റ കൺസോൾ വിൻഡോയിൽ ഒന്നിൽ കൂടുതൽ ബാഷ് ഷെല്ലുകൾ ഒരോരൊ ടാബുകളിലായി തുറന്നുപയോഗിക്കാൻ കഴിയും (ഫയർ ഫോക്സിലെ ടാബുകൾ പോലെ). ഇതു കൂടാതെ ഷെല്ലിൽ നൽകുന്ന കമാൻഡ് ഇൻപുട്ടുകളും അവയുടെ ഔട്പുട്ടുകളുമെല്ലാം സേവ് ചെയ്യുക, ടാബുകളെ ബുക് മാർക് ചെയ്യുക തുടങ്ങി ഉപയോഗപ്രദമായ ഒത്തിരി സൗകര്യങ്ങൾ ഇതിലുണ്ട്. ഇതിനു സമാനമായി ജിനോം ഡെസ്ക്ടോപ് എൻവയോണ്മെന്റിലുള്ള (Gnome Desktop Environment) പ്രോഗ്രാം ആണ് ജിനോം-ടെർമിനൽ (Gnome Terminal).