Showing posts with label shell. Show all posts
Showing posts with label shell. Show all posts

Apr 21, 2010

shell என்றால் என்ன?


  • ஷெல் என்பது ஒரு நிரல் ஆகும்
  • பயனாளர் மற்றும் லினக்ஸ் இவை இரண்டுக்கும் இடையில் ஒரு பாலமாக செயல்படும்
  • நீங்கள் முனையத்தில் ஒரு கட்டளையை கொடுத்தவுடன் அந்த கட்டளை லினக்ஸினுடைய ஷெல்லினால் செயல்படுத்தப்பட்டு ,லினக்ஸினுடைய கெர்னலுக்கு செலுத்தப்படும்.
  • கெர்னலினுடைய வெளியீடு ஷெல்லுக்கு கொடுக்கப்படும்,அதை பெற்று ஷெல் பயனாளருக்கு தெரிவிக்கும்.
  • பயனாளரால் நேரடியாக கெர்னலை தொடர்புகொள்ள இயலாது.
  • ஷெல்லானது சொந்தமாகவே கட்டளைகளை வைத்திருக்கும்.
  • நீங்கள் முனையத்தில் ஒரு கட்டளையை கொடுத்த உடனே அந்த கட்டளை தனது உள்ளிருப்பான கட்டளையா என ஷெல் முதலில் பார்க்கும், இருந்தால் அதை செயல்படுத்தும்.இல்லையென்றால் அது ஒரு பயன்பாட்டு நிரலா(Application program) என்று பார்க்கும்.இருந்தால் அதை செயல்படுத்தும்.இல்லையென்றால் நீங்கள் கொடுத்த கட்டளை தவறான கட்டளை என்ற செய்தியினை தெரிவிக்கும்.
  • நிறைய ஷெல்கள் லினக்ஸ் இயங்குதளத்தில் உள்ளன.அவற்றில் பிரபலமானவை
  1. Bourne shell (sh)
  2. c shell (csh)
  3. korn shell (ksh)
  • இவையில்லாமல் tcsh,zsh,rsh,pdsksh போன்ற ஷெல்களும் பயன்படுத்தப்படுகின்றன.
  • பெரும்பான்மையான லினக்ஸ் இயங்குதளங்களில் GNU bash(Bourne Again Shell) ஷெல் இருப்பியல்பாக பயன்படுத்தப்படுகிறது.
  • நீங்கள் உங்களினுடைய லினக்ஸ் இயங்குதளத்தில் வெவ்வேறு வகையான ஷெல்களை பயபடுத்திக்கொள்ளலாம்.ஆனால் அது உங்களினுடைய லினக்ஸ் இயங்குதளத்தில் நிறுவியிருக்கப்பட வேண்டும்.
  • நீங்கள் கொடுக்கும் ஷெல் நிறுவப்பட்டு இருக்கிறதா இல்லையா என்பதை தெரிந்து கொள்ள which என்ற கட்டளையை பயன்படுத்தலாம்.
உதாரணமாக உங்களினுடைய லினக்ஸ் இயங்குதளத்தில் bash shell நிறுவப்பட்டு இருக்கிறதா என்பதை கண்டுபிடிக்க இவ்வாறு கட்டளையை அமைக்கலாம்.

which bash

உபுண்டு லினக்ஸில் sh,bash,rsh இந்த மூன்று ஷெல்களும் இருப்பியல்பாக இருக்கும்.
நீங்கள் ஒரு ஷெல்லிலிருந்து வேறொரு ஷெல்லுக்கு மாற விரும்பினால் chsh என முனையத்தில் கட்டளையை கொடுங்கள்.கடவுச்சொல்லைக் கேட்கும் கடவுச்சொல்லை உள்ளிடவும்.கடவுச்சொல்லை உள்ளிட்டப்பிறகு
Enter the new value or press ENTER for the default
Login shell[/bin/bash]:
என்று கேட்கும் நீங்கள் மாற விரும்பும் ஷெல்லை உள்ளிட்டு Enter key யினை அழுத்துங்கள்.
உதாரணமாக rsh ஷெல்லுக்கு மாற விரும்பினால் /usr/bin/rsh என்று கொடுத்து Enter key யினை அழுத்துங்கள்.

Apr 9, 2010

இரண்டு எண்களை கூட்டுவதற்கு ஷெல் நிரல் எழுதுவோமா

முனையத்தை (Terminal) திறந்துக்கொள்ளுங்கள்.ஒரு நிரலை எழுத வேண்டுமானால் ஏதாவதொரு Editor வேண்டும்.நாம் இங்கு nano எடிட்டரை பயன்படுத்தப்போகிறோம்.ஆகையால் முனையத்தில் nano add.sh என்று கொடுத்து Enter key யினை அழுத்துங்கள்.அழுத்தியவுடன் nano Editor திறக்கப்பட்டு விடும்.திறந்தவுடன் படம்-2 உள்ளது போன்ற நிரலை அமையுங்கள்.நிரலை தட்டச்சு செய்ய படம்-2 ஐ பெரிதுபடுத்தி பார்த்து அதில் இருப்பது நிரலை தட்டச்சு செய்து கொள்ளுங்கள்.
படம்-2
நிரலை தட்டச்சு செய்து முடித்தவுடன் Ctrl+O கொடுத்து Enter key யினை அழுத்தி நிரலை சேமியுங்கள்.நிரலை சேமித்தவுடன் nano Editor ஐ விட்டு வெளியேற Ctrl+X key யினை ஒரு சேர அழுத்துங்கள்.
படம்-3
நிரலை இயக்க முனையத்தில் sh add.sh என்று கொடுத்து Enter key யினை அழுத்துங்கள.
நிரல் இயங்க ஆரம்பிக்கும்.

Enter a value : என்று கேட்கும் a யினுடைய மதிப்பினை உள்ளிட்டு Enter key யினை அழுத்துங்கள்.அடுத்து
Enter b value : என்று கேட்கும் b யினுடைய மதிப்பினை உள்ளிட்டு Enter key யினை அழுத்துங்கள்.
அழுத்தியவுடன் a,b இவ்ற்றின் மதிப்பினை கூட்டி உங்களுக்கு விடையாக கொடுக்கும்.
படம்-3 னை பெரிது படுத்தி பார்த்துக்கொள்ளுங்கள்.

இந்த நிரலில் பயன்படுத்தியிருக்கும் read a, read b என்பவைகள் நாம் கொடுக்கு a,b யினுடைய மதிப்பினை உள்ளிடாக பெறுவதற்காக உள்ளது.

$a, $b, $c என்பது a,b,c யினுடைய மதிப்புகளைப் பிரதி செய்யும்.அதாவது அங்கு assign செய்யும்.நிரலைப் பார்ப்பதற்கு படம்-2 ஐ பெரிதுபடுத்திப் பார்த்துக்கொள்ளுங்கள்.நிரலில் இடைவெளி விட்டிருக்கும் இடங்களில் கண்டிப்பாக இடைவெளி விட்டிருக்க வேண்டும்.
குறிப்பு:
c=`expr $a + $b` என்பதில் பயன்படுத்தியிருக்கும் ` குறியீடானது " னுடன் சேர்ந்து இருக்கும் ' குறியீடு அல்ல ~ சேர்ந்து இருக்கும் ` குறியீடு.

இந்த நிரலையே சிறிய மாற்றங்கள் செய்தால் கழித்தல்,வகுத்தல்,பெருக்கல் போன்றவற்றை செய்ய பயன்படுத்தலாம்.அதை எப்படி செய்வது என்று பார்ப்போம்.

நிரலில் c=`expr $a + $b` என்ற வரியில் + என்பதற்கு பதிலாக

-
என்று கொடுத்தால் கழித்தல் வேலையினை செய்யும்.
/
என்று கொடுத்தால் வகுத்தல் வேலையினை செய்யும்.
\*
என்று கொடுத்தால் பெருக்கல் வேலையினை செய்யும்.

Mar 26, 2010

லினக்ஸில் ஷெல் நிரல்களை (shell program) இயக்குவோமா

படம்-1

படம்-2
படம்-3
லினக்சில் shell script என்பது முக்கியமான பகுதியாகும்.இந்த ஷெல் நிரல்களை எப்படி இயக்குவது என்பதை இப்பொழுது பார்ப்போம்.முனையத்தை திறந்துக்கொள்ளுங்கள் முனையத்தில் nano filename.sh என கொடுத்து Enter key -யினை அழுத்துங்கள்.(பார்க்க படம்-1).இங்கு ஏன் நாம் nano என்று கொடுக்கிறோம் என்றால் nano என்பது ஒரு editor ஆகும்.nano editor தான் பயன்படுத்த வேண்டும் என்ற அவசியமில்லை vi, gEdit போன்ற editor களைக் கூட பயன்படுத்திக்கொள்ளலாம்.nano editor பயன்படுத்த எளிமையாக இருக்கும் என்பதால் கொடுத்துள்ளேன்.முனையத்தில் nano என்று கொடுத்து Enter key -யினை அழுத்தியவுடன் nano editor க்குள் சென்று விடும்.இப்பொழுது நாம் நமக்கு தேவையான நிரலை தட்டச்சு செய்ய வேண்டும்.நிரலை தட்டச்சு செய்தால் மட்டும் போதுமா சேமிக்க வேண்டுமல்லவா அதற்கு Ctrl + O key களை ஒரு சேர அழுத்துங்கள் அழுத்தி விட்டு Enter key -யினை அழுத்துங்கள்.அழுத்தியவுடன் நிரல் சேமிக்கப்பட்டு விடும்.இப்பொழுது nano editor ஐ விட்டு வெளியேற வேண்டும் அல்லவா அதற்க்கு Ctrl+X களை ஒரு சேர அழுத்துங்கள்.அழுத்தியவுடன் nano editor ஐ விட்டு வெளியேறி முனையத்திற்கு திரும்பி வந்து விடுவோம்.இபோழுது நிரலை தயார் செய்து விட்டாச்சு.இயக்க வேண்டும் அல்லவா,அதற்கு முனையத்தில் sh filename.sh கொடுத்து Enter key -யினை அழுத்துங்கள்.இபோழுது நிரலின் வெளியீடு காண்பிக்கப்படும்.நிரலில் தவறுகள் ஏதேனும் இருந்தாலும் சுட்டி காண்பிக்கப்படும்.

குறிப்பு:நான் இங்கு filename.sh என்று கொடுத்திருக்கும் இடத்தில் நீங்கள் உங்களுக்கு விருப்பமான கோப்பின்பெயரை கொடுத்துக்கொள்ளலாம்.கண்டிப்பாக கோப்பின் பெயருடன் .sh என்பது இடம் பெற வேண்டும்.

ஒரு சின்ன நிரலை உதாரணமாக பார்ப்போம்.

$nano myshellpgm.sh

echo "welcome"
echo "periyar"
echo "tamilan"
echo "tamilnadu"

save => Ctrl+O Enter key அழுத்தவும்
exit => Ctrl+X

$sh myshellpgm.sh

இந்த நிரல்

welcome
periyar
tamilan
taminadu

என்ற வெளியிட்டினை கொடுக்கும்