Linux/C2/The-Linux-Environment/Malayalam
From Script | Spoken-Tutorial
Time | Narration |
00:00 | Linux environmentഉം അത് manupulate ചെയ്യുന്ന മാർഗങ്ങളും എന്ന ട്യൂട്ടോറിയലിലേക്ക് സ്വാഗതം. |
00:07 | ഇതിൽ നൽകിയിട്ടുള്ള ഉദാഹരണങ്ങൾ പരീക്ഷിച്ച് നോക്കുന്നതിനായി ഒരു ലിനക്സ് സിസ്റ്റം ആവശ്യമാണ്, ഉബുണ്ടുവാണ് ഉത്തമം. |
00:13 | Linux operating സിസ്റ്റത്തെ കുറിച്ചും അതിലെ commands, file systems, shell എന്നിവയെ കുറിച്ചും നിങ്ങൾക്ക് അടിസ്ഥാനമായ അറിവുകൾ ഉണ്ടല്ലോ... |
00:22 | ഇല്ലെങ്കിൽ ബന്ധപ്പെട്ട ട്യൂട്ടോറിയലുകൾക്കായി ഞങ്ങളുടെ വെബ്സൈറ്റ് സന്ദർശിക്കുക. |
00:32 | ഈ ട്യൂട്ടോറിയലിനായി Ubuntu 10.10 ഉപയോഗിക്കുന്നു. |
00:36 | ശ്രദ്ധിക്കുക, ലിനക്സ് കേസ് സെൻസിറ്റീവ് ആണ്. അത് പോലെ ഈ ട്യൂട്ടോറിയലിൽ ഉപയോഗിച്ചിട്ടുള്ള commands, എടുത്ത് പറഞ്ഞിട്ടില്ലെങ്കിൽ, ലോവേർ കേസിൽ ആയിരിക്കും. |
00:46 | ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിന്റെ പ്രവർത്തനവും commandsനോട് അത് എങ്ങനെ പ്രതികരിക്കുന്നു എന്നതും Linux environment നെ അടിസ്ഥാനപ്പെടുത്തിയിരിക്കുന്നു. |
00:55 | ഷെല്ലുകളുടെ സെറ്റിംഗ്സിൽ മാറ്റം വരുത്തി ലിനക്സ് നല്ല രീതിയിൽ കസ്റ്റമൈസ് ചെയ്യാവുന്നതാണ്. |
00:58 | ഇതെങ്ങനെ ചെയ്യാമെന്ന് നോക്കാം. |
00:59 | ഷെല്ലുകളുടെ പ്രവർത്തനം തീരുമാനിക്കുന്നത് സാധാരണയായി shell variablesആണ്. |
01:04 | shell variables രണ്ട് തരത്തിലുണ്ട്
Environment Variablesഉം Local Variablesഉം. |
01:12 | Environment variables യൂസറുടെ മുഴുവൻ environment ലും ലഭ്യമായതിനാൽ ആണ് അവയെ അങ്ങനെ വിളിക്കുന്നത്. |
01:19 | ഇവ shell scriptsറണ് ചെയ്യുന്നവയെ പോലെ, shellൽ നിന്നും പരിണമിക്കപ്പെട്ട subshellsലും ലഭ്യമാണ്. |
01:24 | Local variables, അതിന്റെ പേര് പോലെ തന്നെ വളരെ പരിമിതമായ ലഭ്യതയാണ് ഉള്ളത്. |
01:31 | ഇവ shell ൽ നിന്നും പരിണമിക്കപ്പെട്ട subshellsൽ ലഭ്യമല്ല. |
01:36 | ഈ ട്യൂട്ടോറിയലിൽ പ്രധാനമായും environment variablesനെ കുറിച്ചാണ് പറയുന്നത്. ആദ്യം ഈ ഷെൽ വേരിയബിളുകളുടെ മൂല്യം കാണുന്നതെങ്ങനെ എന്ന് നോക്കാം. |
01:48 | നിലവിലുള്ള ഷെല്ലിലെ വേരിയബിളുകൾ കാണുന്നതിനായി command set റണ് ചെയ്യുന്നു. |
01:53 | ടെർമിനലിൽ ടൈപ്പ് ചെയ്യുക set space pipeline character more എന്റർ കൊടുക്കുക. |
02:00 | നമുക്ക് നിലവിലുള്ള എല്ലാ shellവേരിയബിളുകളും കാണാം. |
02:04 | ഉദാഹരണത്തിന് HOME environment വേരിയബിളും അതിന് അസൈൻ ചെയ്തിട്ടുള്ള മൂല്യവും നോക്കുക. |
02:15 | ലിസ്റ്റിലൂടെ മൂവ് ചെയ്യുന്നതിനായി എന്ററും പുറത്ത് വരാൻ qഉം കൊടുക്കുക. |
02:21 | ഇവിടെ കൂടുതൽ systematic ആയിട്ടുള്ള multipage ഔട്ട്പുട്ട് ലഭിക്കുന്നതിനായിട്ടാണ് setൽ നിന്നുള്ള ഔട്ട്പുട്ട് more ലേക്ക് pipeline ചെയ്തത്. |
02:38 | environment variables മാത്രം കാണുന്നതിനായി envകമാൻഡ് റണ് ചെയ്യുക. |
02:45 | ടെർമിനലിൽ ടൈപ്പ് ചെയ്യുക env space 'vertical-bar' more എന്നിട്ട് എന്റർ കൊടുക്കുക. |
02:52 | ഉദാഹരണത്തിന്, SHELL വേരിയബിൾ. അതിന്റെ മൂല്യം slash bin slash bash |
03:00 | ഈ ലിസ്റ്റിൽ നിന്ന് പുറത്ത് വരാനായി q പ്രസ് ചെയ്യാവുന്നതാണ്. |
03:07 | ഇപ്പോൾ ലിനക്സിലെ ചില പ്രധാനപ്പെട്ട environment variables പരിശോധിക്കാം. |
03:11 | ഇവിടെ നമ്മൾ bash shell ആണ് ഉപയോഗിക്കുന്നത്. |
03:15 | വിവിധ ഷെല്ലുകൾ customize ചെയ്യുന്നതിൽ ചെറിയ ചില വ്യത്യാസങ്ങൾ ഉണ്ട്. |
03:19 | ഒരു വേരിയബിളിൽ എന്താണ് സ്റ്റോർ ചെയ്തിരിക്കുന്നത് എന്ന് അറിയുന്നതിനായി വേരിയബിളിന്റെ പേരിന് മുൻപിലായി dollar ചിഹ്നവും അതിന്റെ കൂടെ echo കമാൻഡും ഉപയോഗിക്കണം. |
03:30 | നമ്മൾ ആദ്യം കാണുന്ന environment വേരിയബിൾ SHELL' വേരിയബിളാണ്. |
03:35 | ഇത് നിലവിലുള്ള ഷെല്ലിന്റെ പേര് സ്റ്റോർ ചെയ്യുന്നു. |
03:37 | ഷെൽ വേരിയബിളിന്റെ മൂല്യം കാണാൻ ടെർമിനലിൽ ടൈപ്പ് ചെയ്യുക echo space dollar വലിയ അക്ഷരത്തിൽ S-H-E-L-L എന്റർ പ്രസ് ചെയ്യുക. |
03:55 | slash bin slash bash ആണ് നമ്മൾ ഇപ്പോൾ ഓപ്പറേറ്റ് ചെയ്യുന്ന ഷെൽ. |
04:02 | അടുത്ത വേരിയബിൾ HOME. |
04:05 | ലിനക്സിൽ ലോഗിൻ ചെയ്യുമ്പോൾ നമ്മൾ യൂസർ nameഓട് കൂടിയ directoryയിൽ ആയിരിക്കും. |
04:11 | ഈ diectoryയെ home directory എന്ന് പറയുന്നു. ഇതാണ് HOME വേരിയബിളിൽ അടങ്ങിയിട്ടുള്ളത്. |
04:17 | മൂല്യം കാണുവാനായി ടെർമിനലിൽ ടൈപ്പ് ചെയ്യുക, echo space dollar വലിയ അക്ഷരത്തിൽ H-O-M-E എന്റർ. |
04:29 | അടുത്ത environment വേരിയബിൾ PATH. |
04:32 | ഏതെങ്കിലും executable കമാൻഡ് ലൊക്കേറ്റ് ചെയ്യുന്നതിനായി shell തിരയുന്ന absolute paths ആണ് PATH വേരിയബിളിൽ അടങ്ങിയിരിക്കുന്നത്. |
04:40 | path വേരിയബിളിന്റെ മൂല്യം നോക്കാം. |
04:43 | ടെർമിനലിൽ വീണ്ടും ടൈപ്പ് ചെയ്യുക echo space dollar വലിയ അക്ഷരത്തിൽ P-A-T-H എന്റർ കൊടുക്കുക. |
04:51 | എന്റെ കംപ്യൂട്ടറിൽ അത് slash user slash local slash sbin slash user slash local slash bin slash user slash sbin slash user slash bin etc എന്ന് കാണുന്നു. |
05:04 | ഇത് ഓരോ സിസ്റ്റത്തിലും ചെറുതായി വ്യത്യാസപ്പെട്ടിരിക്കും. |
05:07 | യഥാർത്ഥത്തിൽ ഇത് :(colon) delimiter ഉപയോഗിച്ച് വേർതിരിച്ചിട്ടുള്ള directoriesന്റെ ഒരു ലിസ്റ്റ് ആണ് , ഒരു എക്സിക്യൂട്ടബിൾ കമാൻഡ് കണ്ടെത്തുന്നതിനായി ഷെൽ ഈ orderൽ സെർച്ച് ചെയ്യുന്നു. |
05:18 | നമുക്ക് നമ്മുടെ directoryഉം ഈ ലിസ്റ്റിൽ ചേർക്കാവുന്നതാണ്. അപ്പോൾ shell നമ്മുടെ directoryഉം തിരയുന്നു. |
05:25 | നമ്മുടെ directory ചേർക്കുന്നതിനായി ടെർമിനലിൽ ടൈപ്പ് ചെയ്യുക. |
05:29 | വലിയ അക്ഷരത്തിൽ P-A-T-H 'equal-to' dollar വീണ്ടും വലിയ അക്ഷരത്തിൽ P-A-T-H colon slash home slash നമ്മുടെ directoryയുടെ പേര് എന്റർ. |
05:54 | ഇപ്പോൾ PATHന്റെ മൂല്യം echo ചെയ്താൽ, |
06:04 | നമ്മുടെ directoryയും PATH വേരിയബിളിന്റെ ഭാഗം ആയിരിക്കും. |
06:10 | ഈ directory ഇവിടെ കാണാം. |
06:16 | മറ്റൊരു വേരിയബിളാണ് LOGNAME. |
06:20 | ഇത് നിലവിലുള്ള യൂസറുടെ യൂസർ നെയിം സ്റ്റോർ ചെയ്യുന്നു. |
06:24 | മൂല്യം കാണുന്നതിനായി ടൈപ്പ് ചെയ്യുക echo space dollar LOGNAME എന്റർ . |
06:35 | ടെർമിനൽ തുറക്കുമ്പോൾ ഒരു ഡോളർ ചിഹ്നം കാണാം. നമ്മുടെ കമാൻഡുകൾ എന്റർ ചെയ്യുന്നതിനുള്ള പ്രോംപ്റ്റ് ആണിത്. |
06:42 | Environment വേരിയബിൾ PS1പ്രതിനിധീകരിക്കുന്ന പ്രൈമറി പ്രോംപ്റ്റ് സ്ട്രിംഗ് ആണിത്. |
06:47 | ഒരു സെക്കൻഡറി പ്രോംപ്റ്റ് സ്ട്രിംഗ് കൂടി ഉണ്ട്. |
06:50 | കമാൻഡ് ഒരു വരിയിൽ കൂടുതൽ ദൈർഘ്യമുള്ളതാണെങ്കിൽ രണ്ടാമത്തെ വരി മുതൽ നമുക്ക് പ്രോംപ്റ്റ് ആയി ഒരു ഗ്രേറ്റർ ദാൻ ചിഹ്നം കൂടി കാണാം. |
07:00 | ഇതാണ് environment വേരിയബിൾ PS2 പ്രതിനിധീകരിക്കുന്ന സെക്കൻഡറി പ്രോംപ്റ്റ് സ്ട്രിംഗ്. |
07:05 | സെക്കൻഡറി കമാൻഡ് പ്രോംപ്റ്റിന്റെ മൂല്യം കാണുന്നതിനായി ടെർമിനലിൽ ടൈപ്പ് ചെയ്യുക echo space dollar PS2 എന്റർ. |
07:20 | നമുക്ക് പ്രൈമറി പ്രോംപ്റ്റ് സ്ട്രിംഗ് മാറ്റി പ്രോംപ്റ്റിൽ “at the rate” <@> ആക്കാം. |
07:28 | ഇതിനായി ടൈപ്പ് ചെയ്യുക, PS1 'equal-to' quotesനുള്ളിൽ 'at the rate' “ എന്റർ. |
07:41 | ഇപ്പോൾ പ്രോംപ്റ്റ് ആയി dollar ചിഹ്നത്തിന് പകരം at the rate ചിഹ്നം കാണാം. |
07:50 | നമുക്ക് പ്രോംപ്റ്റിൽ നമ്മുടെ യൂസർ നെയിം ഡിസ്പ്ലേ ചെയ്യിക്കുന്നത് പോലുള്ള രസകരമായ ചില കാര്യങ്ങൾ ചെയ്യാം. |
07:56 | ടൈപ്പ് ചെയ്യുക വലിയ അക്ഷരത്തിൽ PS1 'equal-to' quotesനുള്ളിൽ dollar LOGNAME എന്റർ. |
08:12 | ഇപ്പോൾ എന്റെ യൂസർ നെയിം ആണ് എന്റെ പ്രോംപ്റ്റ്. |
08:16 | തിരികെ വരാനായി ടൈപ്പ് ചെയ്യുക PS1 'equal-to' quotesനുള്ളിൽ dollar. എന്റർ കൊടുക്കുക. |
08:28 | നമ്മൾ പല environment വേരിയബിളുകൾക്ക് മൂല്യങ്ങൾ അസൈൻ ചെയ്തു. |
08:32 | പക്ഷേ, ഓർക്കുക ഈ മാറ്റങ്ങളെല്ലാം, അതായത് നമ്മുടെ directory PATH വേരിയബിളിൽ ചേർത്തത് പോലുള്ളവ, നിലവിലുള്ള sessionന് മാത്രം ബാധകമാണ്. |
08:40 | ഒരു ടെർമിനൽ ക്ലോസ് ചെയ്തിട്ട് വീണ്ടും തുറക്കുകയോ അല്ലെങ്കിൽ ഒരു പുതിയ ടെർമിനൽ തുറക്കുകയോ ചെയ്ത് path വേരിയബിളിന്റെ മൂല്യം echo ചെയ്ത് പരിശോധിക്കുമ്പോൾ, |
09:00 | നമ്മൾ വരുത്തിയ മാറ്റങ്ങളൊന്നും നിലവിലില്ല എന്ന് കാണാം. |
09:05 | ഈ മാറ്റങ്ങൾ സ്ഥിരമായി നിലനിർത്തുന്നതിനുള്ള മാർഗങ്ങൾ കുറച്ച് കൂടി advanced ആയ ട്യൂട്ടോറിയലിൽ നോക്കാം. |
09:13 | പലപ്പോഴും നമ്മൾ അടുത്ത സമയത്ത് എക്സിക്യൂട്ട് ചെയ്ത കമാൻഡ് നമുക്ക് വീണ്ടും എക്സിക്യൂട്ട് ചെയ്യേണ്ടി വരാറുണ്ട്. എന്ത് ചെയ്യും? മുഴുവൻ കമാൻഡും ഒരിക്കൽ കൂടി ടൈപ്പ് ചെയ്യണോ ? |
9:22 | വേണ്ട, അതിന് പല മാർഗങ്ങൾ ഉണ്ട്. |
09:26 | സാധാരണയായി നിങ്ങളുടെ കീബോർഡിലെ up കീ അമർത്തുമ്പോൾ അവസാനം ടൈപ്പ് ചെയ്ത കമാൻഡ് കാണിക്കും. |
09:33 | അമർത്തി പിടിച്ചു കൊണ്ടിരിക്കുക, ഇത് മുൻപ് ഉപയോഗിച്ച കമാൻഡുകൾ ഓരോന്നായി കാണിച്ചു കൊണ്ടിരിക്കും. |
09:37 | തിരിച്ച് പോകാനായി down കീ പ്രസ് ചെയ്യുക. |
09:42 | ഇങ്ങനെ ധാരാളം കമാൻഡുകൾ ഉള്ളപ്പോൾ ഇങ്ങനെ സ്ക്രോൾ ചെയ്യുന്നത് ബുദ്ധിമുട്ടാണ്. അപ്പോൾ history കമാൻഡ് ഉപയോഗിക്കുന്നതാണ് എളുപ്പം. |
09:52 | പ്രോംപ്റ്റിൽ history എന്ന് ടൈപ്പ് ചെയ്യുക. |
09:58 | എന്റർ അമർത്തുക, നേരത്തേ എക്സിക്യൂട്ട് ചെയ്യപ്പെട്ട കമാൻഡിന്റെ ഒരു ലിസ്റ്റ് കാണാം. |
10:04 | വലിയ ഒരു ലിസ്റ്റിന് പകരം അവസാനത്തെ പത്തെണ്ണം മാത്രമാണ് നിങ്ങൾക്ക് കാണേണ്ടതെങ്കിൽ |
10:08 | history space 10 ടൈപ്പ് ചെയ്തിട്ട് എന്റർ കൊടുക്കുക. |
10:20 | ശ്രദ്ധിക്കുക, ഈ ലിസ്റ്റിൽ നേരത്തേ അസൈൻ ചെയ്തിട്ടുള്ള കമാൻഡുകൾക്ക് ഓരോ നമ്പർ നൽകിയിട്ടുണ്ട്. |
10:27 | ഒരു പ്രത്യേക കമാൻഡ് ആവർത്തിക്കുന്നതിനായി |
10:32 | exclamation മാർക്കിന് ശേഷം കമാൻഡിന്റെ നമ്പർ ടൈപ്പ് ചെയ്യുക. ഉദാഹരണമായി എന്റെ കേസിൽ 442ടൈപ്പ് ചെയ്താൽ echo space dollar PATH എക്സിക്യൂട്ട് ചെയ്യും. (redubb) |
10:51 | അവസാനത്തെ കമാൻഡ് വീണ്ടും എക്സിക്യൂട്ട് ചെയ്യണമെങ്കിൽ exclamation മാർക്ക് രണ്ട് പ്രാവശ്യം ടൈപ്പ് ചെയ്ത് എന്റർ ചെയ്താൽ മതിയാകും. |
11:03 | അടുത്തതായി tilde substitution നോക്കാം. tilde(~) character ഹോം directoryയുടെ ഒരു ഷോർട്ട് ഹാൻഡ് ആണ്. |
11:12 | അതായത് ഹോം directoryയിലെ testtree എന്ന directoryയിലേക്ക് പോകണമെങ്കിൽ ഇങ്ങനെ ടൈപ്പ് ചെയ്താൽ മതിയാകും, cd space ~(tilde) slash testtree. |
11:25 | നിലവിൽ പ്രവർത്തനത്തിലുള്ള directoryയിൽ നിന്നും അവസാന directoryയിലേക്കും തിരിച്ചും പോകുന്നതിനായി cd '~(tilde)' minus അല്ലെങ്കിൽ cd minus കമാൻഡ് ഉപയോഗിക്കാവുന്നതാണ്. |
11:35 | അതായത്, നമ്മൾ ഇപ്പോൾ testtree directoryയിൽ ആണ്. അത് പോലെ നമ്മൾ അവസാനം സന്ദർശിച്ചത് ഹോം directory ആയിരുന്നു. |
11:41 | cd space minus റണ് ചെയ്ത് എന്റർ കൊടുത്താൽ നമ്മൾ ഹോം directoryയിലേക്ക് പോകും. |
11:47 | ഇത് വീണ്ടും റണ് ചെയ്യുകയാണെങ്കിൽ testtree directoryയിലേക്ക് തിരിച്ച് പോകും. |
11:55 | അവസാനമായി വളരെ പ്രധാനപ്പെട്ട alias കമാൻഡ് നോക്കാം. |
11:59 | നിങ്ങൾക്ക് ഒരു വലിയ കമാൻഡ് വീണ്ടും വീണ്ടും റണ് ചെയ്യേണ്ടതായി വന്നേക്കാം. |
12:04 | ഈ അവസരങ്ങളിൽ, ഇതിന് നമുക്ക് ചെറിയ ഒരു alias നെയിം നൽകാം, എന്നിട്ട് കമാൻഡ് റണ് ചെയ്യാനായി ഈ alias നെയിം ഉപയോഗിക്കാം. |
12:11 | പാട്ടുകൾക്കായി നിങ്ങൾ സ്ഥിരമായി സന്ദർശിക്കുന്ന directoryയ്ക്ക് ഒരു വലിയ path ഉണ്ടെന്ന് കരുതുക. ഇതിനായി നിങ്ങൾക്ക് ഒരു aliasസൃഷ്ടിക്കാവുന്നതാണ്. |
12:20 | ടൈപ്പ് ചെയ്യുക, alias space cdMusic 'equal-to' ഡബിൾ quotesനുള്ളിൽ cd space slash home slash arc slash files slash entertainment slash music എന്നിട്ട് എന്റർ. (redubb arc) |
12:47 | ഇനി ഈ directoryയിലേക്ക് പോകേണ്ടുമ്പോഴെല്ലാം cdMusic type ചെയ്ത് എന്റർ കൊടുക്കുക. |
12:55 | നോക്കു, നമ്മളിപ്പോൾ music directory യിലാണ്. |
12:58 | ഇപ്പോൾ നിങ്ങൾക്ക് മുൻപത്തെ directoryയിലേക്ക് തിരികെ പോകണമെങ്കിൽ പ്രോംപ്റ്റിൽ ടൈപ്പ് ചെയ്യുക, cd space minus |
13:08 | ഒരു alias അണ് സെറ്റ് ചെയ്യാനായി typeചെയ്യുക, unalias space cdMusic എന്നിട്ട് എന്റർ കൊടുക്കുക. |
13:20 | ഇപ്പോൾ വീണ്ടും ടെർമിനലിൽ cdMusic നൽകിയാൽ “command was not found” എന്ന എറർ സന്ദേശം ലഭിക്കും. |
13:30 | നിലവിൽ പ്രവർത്തനത്തിലുള്ള directoryയിൽ test1, test2 എന്നീ രണ്ട് ഫയലുകൾ ഉണ്ടെന്ന് കരുതുക. |
13:38 | rm test1 കൊടുക്കുമ്പോൾ test1 നിശബ്ദമായി നീക്കം ചെയ്യപ്പെടുന്നു. |
13:45 | rmകമാൻഡിനോടൊപ്പം hyphen i ഓപ്ഷൻ നൽകിയാൽ നീക്കം ചെയ്യുന്നതിന് മുൻപ് അനുവാദം ചോദിക്കുമെന്ന് നമുക്ക് അറിയാം. |
13:52 | അത് കൊണ്ട് നമുക്കൊരു alias സെറ്റ് ചെയ്യാം, alias rm equal-to, quotesനുള്ളിൽ rm space hyphen i |
14:03 | ഇപ്പോൾ നമ്മൾ rm റണ് ചെയ്യുമ്പോൾ യഥാർത്ഥത്തിൽ റണ് ചെയ്യുന്നത് rm hyphen i ആണ്. |
14:13 | അതായത് test1 നിശബ്ദമായി നീക്കം ചെയ്യപ്പെടുന്നു, എന്നാൽ test2 നീക്കം ചെയ്യുന്നതിന് മുൻപ് സിസ്റ്റം അനുവാദം ചോദിക്കുന്നു. |
14:20 | ഇവിടെ പഠിച്ചത്, environment variables, history, aliasing. |
14:25 | ഇതോടെ ട്യൂട്ടോറിയലിന്റെ അവസാന ഭാഗത്ത് എത്തിയിരിക്കുന്നു. |
14:28 | സ്പോകെന് ട്യൂട്ടോറിയല് പ്രൊജക്റ്റ്, ടോക്ക് ടു എ ടീച്ചര് പ്രൊജക്റ്റിന്റെ ഭാഗമാണ്. ഇതിനെ പിന്താങ്ങുന്നത് "നാഷണല് മിഷന് ഓണ് എഡ്യൂക്കേഷന് ത്രൂ ICT, MHRD, ഗവന്മെന്റ് ഓഫ് ഇന്ത്യ". |
14:36 | ഈ മിഷനെ കുറിച്ചുള്ള കുടുതല് വിവരങ്ങള് ഇവിടെ ലഭ്യമാണ്. |
14:39 | ഈ ട്യൂട്ടോറിയല് സമാഹരിച്ചത് ദേവി സേനന്, IIT Bombay, നന്ദി. |