லினக்ஸ் ** பயிற்சி - 3 ** ஆசிரியர்: மு. கே. சரவணன். மின்னஞ்சல்: mksarav@mitindia.edu இணைய முகவரி: http://mksarav.tripod.com தமிழ்ப்பதிப்பு: 16 அக்டோபர் 2000. நன்றி: அகரம் எடிட்டிரை உருவாக்கிய திரு. சின்னச்சாமி நாகராஜன். உங்களின் ஆலோசனைகள் மற்றும், இக்கட்டுரையில் உள்ள பிழைத்திருத்தங்களை சிரமம் பாராமல் எனக்கு மின்னஞ்சல் செய்யவும். ****** லினக்ஸில் ஒரே நேரத்தில் பல பேர் பணியாற்றலாம் என்று சொன்னேன். முன்பெல்லாம் (1970-80 களில்) பல்கலைக்கழகம் மற்றும் ஆராய்ச்சிக்கூடங்களில் மட்டுமே கணிப்பொறி வசதி இருந்தது. அக்கால கட்டத்தில் மெயின்-பிரேம் மற்றும் மினி-பிரேம் போன்ற வகைக் கணிப்பொறிகள் தான் இருந்தன. இன்று பயன்படுத்தப்படும் பி.சி. க்கள் அப்போது கண்டுபிடிக்கப்படவேயில்லை. ஒரு பிரதான யுனிக்ஸ் செர்வர் இருக்கும். ஒவ்வொரு துறையிலும் dumb terminal என்று சொல்லக்கூடிய கணிக்கும் திறனற்ற கணியாப்பொறிகள் சில இருக்கும். இவையனைத்தும் யுனிக்ஸ் செர்வருடன் பிணைக்கப்பட்டிருக்கும். (dumb terminal-னலில் மானிட்டர் மற்றும் விசைப்பலகை மட்டுமே இருக்கும். நீங்கள் டைப்செய்யும் ஒவ்வொரு எழுத்தும் dumb terminal மூலமாக பிரதான யுனிக்ஸ் செர்வரையடைந்து அங்கு உங்களின் உள்ளீடு பரிசீலிக்கப்பட்டு விடை மீண்டும் dumb terminalலுக்கே அனுப்பி வைக்கப்படும்) ஒவ்வொரு டம் டெர்மினலிலும் ஒருவர் அமர்ந்து பணியாற்றலாம். ஒரே நேரத்தில் பலர் இவ்வாறு பணியாற்றிக்கொண்டிருப்பார்கள். உண்மையில் இவர்கள் உள்ளிடும் அனைத்து கட்டளைகளையும் பிராசஸ் செய்வது யுனிக்ஸ் செர்வராகும். யுனக்ஸில் பல்வேறு பயன்பாட்டாளர்களையும் அடையாளம் காண ஒவ்வொருவருக்கும் பிரத்யேக "யூசர்நேம்" என்று ஒன்று இருக்கும். அவர் தனக்கு ஒரு பாஸ்வேர்டையும் வைத்துக்கொள்ளலாம். இப்படி ஒரே நேரத்தில் பல பேர் கைவைத்தால் கணிப்பொறி உருப்படுமா? என்று நீங்கள் கேட்பீர்கள். அதற்காகத்தான் எல்லா யூசர்களையும் கட்டி மேய்ப்பதற்குகென்றே ஒரு எஜமானையும் வைத்திருக்கிறார்கள். அவருக்கு "சூப்பர்-யூசர்" (super user) என்று பெயர். யுனிக்ஸ் சாம்ராஜ்யத்தில் அவர் தான் ராஜா. அவர் வைத்தது தான் சட்டம். அவர் நினைத்தால் என்ன வேண்டுமானாலும் செய்யலாம். யூசரை ஆக்கவும், அழிக்கவும், ஆட்டிப்படைக்கவும் அதிகாரம் படைத்த சர்வாதிகாரி. சூபர்-யூசருக்கென்றே "root" என்ற ஒர விஷேச யூசர்நேம் உண்டு. இந்த root-டின் பாஸ்வேர்டை மறந்தும் கூட பிறருக்கு கூறக்கூடாது. மிகப் பாதுகாப்பாக வைத்திருக்க வேண்டும். 1. லினக்ஸ¤ம் யுனிக்ஸ் குடும்பத்தில் பிறந்தவன் என்பதால் மேற்சொன்ன அனைத்து அம்சங்களும் அவனுக்கும் பொருந்தும். உதாரணமாக எனது அலுவலகத்தில் உள்ள லினக்ஸ் கணிப்பொறியில் பணியாற்ற எனக்கு (சூபர் யூசரால்) கொடுக்கப்பட்ட யூசர்-நேம் mksarav. நீங்கள் லினக்ஸ் சிஸ்டத்தில் நுழையும் முன் முதலில் உங்கள் லாகின் நேமை (யூசர்நேம் தான்) கேட்கும். பிறகு உங்கள் கடவுச்சொல்லைக் (password) கேட்கும். அதைச்சரி பார்த்து உங்களை உள்ளே அனுப்புவதா வேண்டாமா என்பதை முடிவெடுக்கும். Red Hat Linux release 6.2 (Zoot) Kernel 2.2.14-12 on an i686 login: mksarav Password: **** ஒரு யூசர் தன்னுடைய கடவுச்சொல்லை (password) மாற்றிக்கொள்ள passwd என்ற கட்டளையை பயன்படுத்தலாம். முதலில் உங்களது தற்போதைய கடவுச்சொல்லையும், பின்பு நீங்கள் புதியதாக தேர்ந்தெடுக்கும் கடவுச்சொல்லையும் கேட்டும். உங்கள் வசதிக்காக passwd கட்டளை கொடுத்தால் என்ன நடக்கும் என்று கீழே கொடுத்துள்ளேன். இதில் [mksarav@localhost]$ என்று காட்டிக்கொண்டிருப்பதை லினக்ஸ் பிராம்ட் (linux prompt) என்று கூறுவார்கள் (தாஸில் c:\> ஐப்போன்றது). இந்த பிராம்ட்டை உங்கள் இஷ்டப்படி எப்படி வேண்டுமானாலும் மாற்றியமைத்துக் கொள்ளலாம். அதைப்பற்றியெல்லாம் பின்னால் காண்போம். [mksarav@localhost]$ passwd (current) UNIX password: New UNIX password: Retype new UNIX password: passwd: all auhtentication tokens updated successfully. [mksarav@localhost]$ 2. இனி சில சுவாரசியமான கட்டளைகளைப் பார்ப்போம். whoami (ஜாக்கிசான் படம் அல்ல) என்று ஒரு கட்டளை உண்டு. உதாரணமாக நான் mksarav என்ற யூசர்நேமோடு பணியாற்றிக்கொண்டிருக்கும்போது whoami என்ற கட்டளை கொடுத்தால் mksarav என்று காட்டும். என்ன இது! சுத்த மடத்தனமான கட்டளையாக இருக்கிறதே... யாராவது தன்னைத்தானே whoami என்று கேட்டுக்கொள்வார்களா? (ரமண மஹரிஷியைத் தவிர) என்று உங்களுக்குத் தோன்றும். superuser எப்போதும் root என்ற யூசர் நேமில் பணியாற்ற மாட்டார். தனக்கென்று தனியாக ஒரு யூசர் அக்கவுண்டை உருவாக்கிக் கொண்டு அந்த யூசர் நேமில் தான் பணியாற்றுவார். உதாரணமாக எங்கள் அலுவலகத்தில் உள்ள லினக்ஸ் கணிப்பொறிக்கு நான் தான் superuser. என்றாலும் எனக்கென்று தனியாக mksarav என்ற மற்றொரு யூசர் அக்கவுண்ட் உண்டு. எப்பொழுதும் நான் mksarav என்ற யூசர்நேமில் தான் பணியாற்றுவேன். ஒருவேளை superuser ஆக பணியாற்ற வேண்டி வந்தால், mksarav பிராம்டில் இருந்துகொண்டே su என்ற கட்டளையைக் கொடுத்தால், superuser-ரின் கடவுச்சொல்லைக் கேட்கும். சரியாகக் கொடுத்துவிட்டால் superuser ஸ்தானத்தை அடைந்துவிடுவேன். கீழ்கண்ட உதாரணத்தை கவனிக்கவும்: [mksarav@localhost]$ su Password: [root@localhost]# whoami root [root@localhost]# exit [mksarav@localhost]$ whoami mksarav [mksarav@localhost]$ "மடையன், லினக்ஸ் பிராம்டில் தான் username@localhost என்ற பாணியில் எப்பொழுதுமே யூசர்நேமைக் கண்முன்னால் காட்டிக்கொண்டிருக்கிறது, பிறகு எதற்கு இந்த whoami ? " என்று நீங்கள் கேட்பது என் காதில் விழுகிறது. லினக்ஸ் பிராம்ட் எப்பொழுதுமே யூசர்நேமைக் காட்டிக்கொண்டிருக்க வேண்டும் என்ற அவசியம் கிடையாது. PS1 என்ற ஒரு நண்பர் இருக்கிறார். இதை environmental variable என்று சொல்வார்கள். environmental variable-கள் நிறையவே உண்டு, தேவைப்படும்போது ஒவ்வொன்றாக அவிழ்த்து விடுகிறேன். இந்த PS1 னிடம், லினக்ஸ் பிராம்ட்டாக என்ன காட்சியளிக்கவேண்டும் என்று நீங்கள் வரையறுக்கலாம். PS1 என்ற environmental variable-லில் தற்போது என்ன இருக்கிறது என்று கண்டுபிடிப்பதற்கு கீழ்கண்ட கட்டளையைக் கொடுத்துப் பார்க்கலாம். echo $PS1 உதாரணமாக, இக்கட்டளையை எனது கணிப்பொறியில் கொடுத்தபோது, கீழ்கண்டவாறு பதில் வந்தது. [mksarav@localhost] $ echo $PS1 [\u@\h] \$ [mksarav@localhost] இதில் \u என்பது யூசர்நேமையும், \h என்பது உங்களது கணிப்பொறியின் பெயரையும் குறிக்கிறது. (இதை hostname என்று கூறுவார்கள் - லினக்ஸை இன்ஸ்டால் செய்யும் போதே உங்கள் கணிப்பொறிக்கு ஒரு பெயரை வைக்கச் சொல்லும். பெயரைக் வைக்காமல் அனாதையாக்கினால் அதுவாகவே localhost என்ற பெயரை வைத்துவிடும். hostname-ஐப் பற்றி நெட்வொர்க்கிங் அத்தியாயத்தில் விரிவாகக் காண்போம்) யுனிக்ஸில் Linux, Sun Solaris, Digital UNIX, HP-UX, IRIX, FreeBSD என்று பல்வேறு வகையுண்டு. லினக்ஸைத் தவிர பிற வகைகளிளெல்லாம், லாகின் பிராம்ட் வெறுமனே $ சின்னத்தை காட்டிக்கொண்டிருக்கும். உதாரணமாக Sun Solaris சில் பணியாற்றும் போது கீழ்கண்டவாறு காட்சியளிக்கும்: SunOS 5.7 login: mksarav Password: $ எந்த யூசருக்காவது தாங்கள் பணியாற்றும்போது ஏதேனும் இடையூறு ஏற்பட்டால் பொதுவாக superuser ரிடம் தங்களது பிரச்சனையைக் கூறுவார்கள். அவர்களின் பிரச்சனையைத் தீர்ப்பதற்கு சூப்பர்யூசர் எழுந்து அவர் சிஸ்டத்திற்கே வந்து சரிசெய்ய வேண்டும் என்பதில்லை. உட்கார்ந்த இடத்திலிருந்தே பிறர் பெயரில் லாகின் செய்ய முடியும். கீழ்க்கண்ட உதாரணத்தைக் கவனியுங்கள்: $ whoami mksarav $ su vijay Password: $ whoami vijay $ exit $ whoami mksarav $ ஒரேயடியாக whoami ஐப் பற்றிக்கூறி போரடிக்கிறேனா . . . இப்பொழுதாவது புரிந்ததா, ஒவ்வொருவரும் தான் யாரென்று தெரிந்து கொள்ளுவது அவ்வளவு சுலபமல்ல என்று. (நல்லவேளை நமது பல அவதாரங்களைக் காட்டிக் கொடுக்க நிஜ வாழ்க்கையில் whoami கட்டளை இல்லை [மனசாட்சியைத் தவிர] ) 3. (அ) ஒரு பல்கலைக்கழகத்தில் இயற்பியல் கணிப்பொறிக்கூடத்திலிருந்து பத்துப்பேர் மற்றும் வேதியியல் கணிப்பொறிக்கூடத்திலிருந்து ஐந்து பேர் dumb terminal வாயிலாக லினக்ஸில் பணியாற்றிக்கொண்டிருக்கிறார்கள் என்று வைத்துக்கொள்வோம். தற்போது யாரெல்லாம் லாகின் செய்திருக்கிறார்கள் என்பதைக் கண்டறிய who என்ற கட்டளையைப் பயன்படுத்தலாம். எ.கா. [mksarav@localhost] $ who mksarav tty6 Oct 13 22:29 [mksarav@localhost] $ பின்குறிப்பு: dumb terminal தான் இருக்க வேண்டும் என்ற அவசியமில்லை. telnet, rlogin போன்ற கட்டளைகளைப் பயன்படுத்தி விண்டோஸ் போன்ற பிற சிஸ்டத்திலிருந்தும் லாகின் செய்ய வழிகள் உண்டு. அவற்றைப் பற்றி நெட்வொர்க்கிங் அத்தியாயத்தில் விரிவாகக் காண்போம். (ஆ) who போன்றே w என்ற ஒரு கட்டளை உண்டு. w வின் பணியென்ன என்பதை நீங்களே பயன்படுத்திக் கற்றுக் கொள்ளுங்கள். 4. (அ) நீங்கள் பயன்படுத்தும் பெரும்பாலான கட்டளைகள் அனைத்தும் C புரோகிராம்களே. பொதுவாக இவற்றை /usr/bin (or) /bin (or) /usr/local/bin (or) /sbin (or) /usr/sbin (or) /usr/local/sbin போன்ற டைரக்டரிகளில் வரிசையாக அடுக்கி வைத்திருப்பார்கள். ஒரு கட்டளைக்குண்டான மூல புரோகிராம்கள் எங்கிருக்கின்றன என்பதைக் கண்டறிய whereis என்ற கட்டளையைப் பயன்படுத்தலாம். [mksarav@localhost] $ whereis ls ls: /bin/ls /usr/man/man1/ls.1.gz [mksarav@localhost] $ இங்கே ls என்ற கட்டளையின் மூல புரோகிராம் /bin னில் இருக்கிறது என்றும், அதற்குண்டான உதவிக்குறிப்புகள் /usr/man/man1/ls.1.gz என்ற ·பைலில் இருக்கிறது என்றும் whereis கட்டளை நமக்கு அறிவுறுத்துகிறது. (ஆ) whereis ஐப் போன்றே which என்ற கட்டளையையும் பயன்படுத்தலாம். which ls which date which mkdir 5. ஒரு கட்டளையைப் பற்றி உதவிக்குறிப்புகள் பெற man (or) info கட்டளைகளைப் பயன்படுத்தலாம் என்று சொன்னேன். கட்டளையே என்னவென்று தெரியவில்லை - உங்களுக்கு ஒரு keyword மட்டுமே தெரிந்திருக்கிறது. உதாரணத்திற்கு sort பற்றி ஏதேனும் கட்டளையிருக்கிறதா என்று நீங்கள் கண்டறிய வேண்டும். எப்படிக் கண்டிறிவது? man -k sort -k என்ற ஸ்விட்சைப் பயன்படுத்தி உங்களுக்குத் தேவையான keywordஐக் கொடுக்கவும். இதற்கு நிகராக apropos என்ற மற்றொரு கட்டளையும் உண்டு. முயன்று பாருங்கள்: apropos sort apropos who ** நன்றி **