எளிய தமிழில் GNU/Linux பாகம் - 1

து. நித்யா


1 GNU/Linux - ஓர் அறிமுகம் 2 உபுண்டு நிறுவுதல் 3 எளிய GNU/Linux commands 4 Directory commands-ன் செயல்பாடுகள் 5 GNU/Linux-ன் File System 6 Files-ன் உருவாக்கமும் பயன்பாடும் 7 உள்ளீடு மற்றும் வெளியீட்டின் திசைமாற்றம் (Input/Output Redirection) 8 Text Handling 9 Link files பற்றிய விளக்கம் 10 vim editor 11 Pipes and Filters 12 File Permissions 13 மேலும் சில commands 14 Jobs Control

சமர்ப்பணம்


GNU/Linux க்கு உழைக்கும் அனைவருக்கும் இந்தப் புத்தகம் சமர்ப்பணம்.


நன்றி


ஏதாவது புதிதாக செய்ய வேண்டும் என்ற எண்ணம் எனக்குள் எப்போதும் ஓடிக்கொண்டெ இருக்கும். அதை நோக்கி நான் தொடங்கும் ஒருசில முயற்சிகளை, அன்றாட வேலைப்பளுவின் காரணமாக பாதியிலேயே விட்டுவிடுவேன். பின்னர் எப்போதும் போல் என் வாழ்க்கை, “ஏதாவது புதிதாக செய்ய வேண்டும்” எனும் எண்ணத்தை தாங்கிக் கொண்டு சாதாரணமாக சென்று கொண்டிருக்கும்.
அப்போது தான் எனது பல முயற்சிகளில் ஒன்றாக, MySQL-க்கு தமிழில் ஒர் புத்தகத்தை எழுதத் தொடங்கினேன். அவ்வாறு எழுதும் போது, இந்த முயற்சியையும், நான் பாதியிலேயெ விட்டுவிடுவேனா அல்லது முழுதாக செய்து முடிப்பேனா என்று எனக்குத் தெரியாது. எப்படியோ ஒரு வழியாக அதை செய்து முடித்து விட்டேன்.
பின்னர், சில மாதங்களுக்கு முன்பு “கணியம்” இதழ் மூலம் அந்தப் புத்தகம் வெளியிடப்பட்டது. அதற்குக் கிடைத்த மாபெரும் வரவேற்ப்பு என்னை மிகவும் மகிழ்ச்சிக்கு உள்ளாக்கியது. இந்தப் புத்தகத்திற்கு இவ்வளவு பெரிய வரவேற்பும், பாரட்டுக்களும் என்னை வந்து சேரும் என்று நான் சற்றும் எதிர்பார்க்கவில்லை. உண்மையிலேயே நான் ஏதோ உருப்படியாக செய்திருக்கிறேன் என்று என்மேல் எனக்கே மதிப்பு வரத் தொடங்கியது.
இவ்வாறு நான் அடைந்த மகிழ்ச்சியே, என்னை மீண்டும் GNU/Linux-க்குத் தமிழில் ஒரு புத்தகம் எழுதுவதற்குத் தூண்டியது. எனது முயற்சிகளுக்கு ஊக்கமளிக்கும் வகையில், என்னைப் பாராட்டிவரும் ஒவ்வொருவரும் தான், நாம் இந்தப் புத்தகம் எழுதுவதற்குக் காரணமானவர்கள். உங்கள் அனைவருக்கும் என் மனமார்ந்த நன்றிகளைத் தெரிவித்துக் கொண்டு இந்த அடுத்தப் புத்தகத்தை சமர்ப்பிக்கிறேன்.
என்னை இந்தப் புத்தகம் எழுதுவதற்கு ஊக்கமளித்த அனைவருக்கும் நன்றி .


து . நித்யா
கிழக்கு தாம்பரம் ,
சென்னை
1 3 ஜூலை 2013
மின்னஞ்சல் : nithyadurai87@gmail.com



1

GNU/Linux - ஓர் அறிமுகம்


நம்முடைய சமுதாயத்தின் அனைத்து இடங்களிலும் தற்போது கணிப்பொறிகள் பயன்படுத்தப்பட்டு வருகின்றன. எனவே அத்தகைய கணிப்பொறிகளை இயக்குவதற்குத் தேவையான இயங்கு தளத்தைப் பற்றியும் (Operating System) மொழிகளைப் பற்றியும் (Programming Languages) மற்றும் Software Packages-ஐப் பற்றியும் தெரிந்துகொள்ள வேண்டியது இன்றியமையாததாகிறது.
இந்தப் புத்தகத்தில் நாம் ‘GNU/Linux’ என்னும் பெயர் கொண்ட இயங்குதளத்தைப் பற்றி விரிவாகக் கற்க உள்ளோம். இதைப்பற்றிக் கற்பதற்கு முன்னால் நாம் முதலில் இயங்குதளத்தைப் பற்றி விளக்கமாகத் தெரிந்து கொள்ள வேண்டும். இதைப்பற்றிய அறிமுகம் பின்வருமாறு.


இயங்குதளம் (Operating System) ஓர் அறிமுகம்

இயங்குதளம் என்பது கணிப்பொறியின் மிக முக்கியமான பகுதியாகும். இது ஒரு சாதாரண Software Program தான். ஆனால் இதுதான் நமக்கும் கணிணிக்கும் நடுவே நின்று தகவல் பரிமாற்றங்களைச் செய்ய உதவும் ஓர் Interface போன்று செயல்படும். மேலும் கணினியுடன் இணைக்கப்பட்டுள்ள அனைத்து Hardwares-ஐயும், வேறுசில System Resources-ஐயும் சிறப்பாக நிர்வாகம் செய்கிறது.
இந்த OS-ன் செயல்பாடுகளைப் பின்வருமாறு காணலாம்.


Command Interpreter


பயனர்களால் அளிக்கப்படும் Commands-ஐ கணினி புரிந்துகொள்ளும் வகையில் Machine Language-க்கு மாற்றி கணினிக்கு வழங்குவதும், அவ்வாறே கணினி கொடுக்கும் தகவல்களை நாம் புரிந்துகொள்ளும் வகையில் நம்முடைய மொழிக்கு மாற்றுவதுமே Command Interpreter எனப்படும்.


Peripherals Manager


கணிப்பொறியுடன் இணைக்கப்பட்டுள்ள அனைத்து devices-ஐயும் சிறப்பாக நிர்வாகம் செய்வதால் இதனை Peripherals Manager என்கிறோம். அதாவது Keyboard மூலம் செலுத்தப்படுவதை Commands-ஆக கணினிக்கு வழங்குதல் மற்றும் கணினி கொடுக்கும் தகவல்களை Printer அல்லது Monitor-க்கு அனுப்புதல் போன்ற வேலைகளை சிறப்பாகச் செய்கிறது.


Memory Manager


நமது கணினியில் இயங்கும் பல்வேறு Process-க்குத் தேவையான Memory-யை CPU-விலிருந்து பகிர்ந்தளிக்கும் வேலையைச் செய்வதால் இதனை Memory Manager என்கிறோம்.


Process Manager


நமது கணினியில் இயங்கும் பல்வேறு Process-க்குத் தேவையான நேரத்தை CPU-விலிருந்து பகிர்ந்தளிக்கும் வேலையைச் செய்வதால் இதனை Process Manager என்கிறோம்.


இயங்குதளத்தின் (Operating S ystem) வகைகள்

இயங்குதளத்தை பல்வேறு வகைகளாகப் பின்வருமாறு பிரிக்கலாம்.
Single User Operating System என்பது ஒரு பயனர் அவரது PC-யில் பயன்படுத்தக்கூடிய இயங்குதளம் ஆகும். உதாரணம்: DOS


Multi User Operating System என்பது ஒரே நேரத்தில் பல்வேறு பயனர்களையும், பல்வேறு Peripherals-ஐயும் கையாளும் வகையில் உள்ள OS ஆகும். உதாரணம்: GNU/Linux
Network Server என்பது சிறிய எண்ணிக்கையிலான resources-ஐ பகிர்ந்து கொள்வதற்காகவோ அல்லது data-வை பகிர்ந்து கொள்வதற்காகவோ, ஓர் network அமைப்பில் இணைக்கப்படும் பல்வேறு systems ஆகும். உதாரணம்: LAN.
இதுவும் GNU/Linux-ஐப் போன்றே ஒரு multi-user environment தான். ஆனால் இரண்டுமே ஒன்று கிடையாது. இரண்டிற்கும் அவற்றுக்கென்றே ஒருசில தனித்தியல்புகள் உள்ளன.


GNU/Linux - ன் வளர்ச்சி நிலைகள்

கணிப்பொறிகளானது சமுதாயத்தின் அனைத்து இடங்களிலும் உருவெடுக்கத் தொடங்கியவுடன், பல்வேறு வகையான கணினி மொழிகளும், இயங்குதளங்களும் சந்தையில் போட்டியிட ஆரம்பித்துவிட்டன. ஆனால் ஒருசிலவற்றாலேயே அந்தப் போட்டிகளில் ஜெயிக்க முடிந்தது. GNU/Linux-ம் அவ்வாறு ஜெயித்து இன்றுவரை பயன்பாட்டில் உள்ள ஒரு OS ஆகும். இது அதே காலகட்டத்தில் தோன்றிய வேறுசில OS-ஐப் போன்று அழிந்துவிடாமல், எவ்வாறு மிகவும் சிறப்பாக தற்போதைய காலகட்டத்தை எட்டியுள்ளது என்பதைப் பற்றி இங்கு விரிவாகக் காணலாம்.
GNU/Linux-ன் வளர்ச்சி நிலைகளைப் பின்வருமாறு பிரிக்கலாம்.


நிலை I


1969-க்கு முன்னால் இருந்த OS-ல், கணினி செய்யும் ஒவ்வொரு வேலைக்குமான காத்திருப்பு நேரம் (Waiting Time) என்பது மிகவும் அதிகமாக இருந்தது. இது அந்தக் கணினியின் வேகத்தையும், வேலை செய்யும் திறனையும் குறைத்துக் கொண்டிருந்தது.


நிலை II


1969-ல் Bell Laboratories-ல் உள்ள கணிப்பொறி அறிவியல் ஆராய்ச்சித் துறையானது, General Electric’s Mainframe 645என்பதை OS-வுடன் இணைத்து “Multics” என்ற பெயரில் பயன்படுத்தியது. ஆனால் இதில் உள்ள குறை என்னவெனில், அதற்கு முந்தைய OS-ன் Batch Code-ஐத் தாங்கியே இது இருந்தது. எனவே இதே ஆண்டில், Ken Thomsonஎன்பவர் ஓர் OS-ன் எளிய version-ஐ உருவாக்கினார். இவ்வாறாக Unix-ஆனது படிப்படியாக வளர்ச்சி அடைந்து கொண்டிருந்தது.


நிலை III


இதுதான் Unix-ன் வளர்ச்சி நிலைகளில் திருப்பத்தை ஏற்படுத்தும் ஓர் மிக முக்கிய நிலையாகும். Ken Thomson என்பவர் “Space Travel” எனப்படும் ஓர் சோதனையை உருவாக்கினார். இந்த சோதனையானது சூரிய குடும்பத்தில் உள்ள celestical bodies-ன் இயக்கம் பற்றிய ஓர் சோதனை ஆகும். இந்தச் சோதனையை அவரால் அப்போதிருந்த OS கொண்டு செய்ய இயலவில்லை. எனவே அவர், “Unix” எனப்படும் ஓர் OS-ஐ Assembly Language-ல் எழுதினார்.

இந்த மொழியில் எழுதப்பட்டதே இதற்க்கு மீண்டும் ஒரு பிரச்சனை ஆகிவிட்டது. ஏனெனில் இது Assembly Language-ல் எழுதப்பட்டு விட்டதால், இதனை எளிதில் ஒரு கணினியில் இருந்து மற்றொரு கணினிக்கு இடமாற்றம் செய்ய முடியவில்லை. ஏனெனில் ஒவ்வொரு கணினியும் அதற்கென்றே ஓர் Assembly Language-ஐக் கொண்டிருக்கும். எனவே Ken Thomson இத்தகைய Portability தன்மைக்காக “B” எனப்படும் ஒரு கணினி மொழியை உருவாக்கினார். இதுவே பின்னாட்களில் Dennis Ritchie என்பவரால் “C” என்று பெயர்மாற்றம் செய்யப்பட்டது.


நிலை IV


1976-க்கும் 1983-க்கும் இடையில் Unix-ஆனது பல்வேறு வகையான மாற்றங்களுக்கும் வளர்ச்சிகளுக்கும் உள்ளானது. 1980-ல் unix-ஆனது முழுவதுமாக “C” மொழியில் மீண்டும் எழுதப்பட்டது. இந்தக் காலகட்டத்தில் unix-ன் பல்வேறு version-கள் வெளிவரத் தொடங்கின. அவை Berkeleyகணிப்பொறி அறிவியல் துறையால் வெளியிடப்பட்ட BSD version 4.2, AT&T Corporation-ஆல் வெளியிடப்பட்ட unix-ன் பல்வேறு versions மற்றும் Microsoft corporation-ஆல் வெளியிடப்பட்ட XENIX போன்றவை ஆகும்.


GNU/Linux-ன் வடிவமைப்பு

GNU/Linux-ன் சிறப்பியல்புகளில் மிக முக்கியமான ஒன்று அதன் வடிவமைப்பு. இது Kernel, Shell மற்றும் Tools and Applications எனும் 3சிறப்பு அங்கங்களை உள்ளடக்கியது.


Kernel


இதுதான் மொத்த GNU/Linux-லும் மிக முக்கியமான அங்கமாகும். இதுவே Hardware-வுடன் தொடர்பு கொள்கிறது . மேலும் இந்த Kernelநமது கணினியானது Boot செய்யப்படும்போது Memory-யைச் சென்றடைந்து பின்வரும் வேலைகளைப் புரிகிறது.

பல்வேறு வகையான Users-க்கும் Process-க்கும் தேவையான நேரத்தினை ஒதுக்கி அளித்தல்
எந்த Process-க்கு முன்னுரிமை அளிக்க வேண்டும் என்பதைத் தீர்மானித்து, அதனை முதலில் இயக்குதல்
பல்வேறு System Resource-ஐ நிர்வாகம் செய்தல்


இந்த Kernel-ஆனது User Programs-யிடம் இருந்து விலகி இருப்பதால் இது பல்வேறு Systems-ல் இயங்கவல்லது. இந்த Kernel நேரடியாக நம்மிடம் எந்தத் தொடர்பும் கொள்ளாது. Shell எனும் ஒரு தனி Program மூலம் மட்டுமே நம்மை தொடர்பு கொள்ளும்.


Shell

GNU/Linux-ன் இந்த shell நமக்கும், கணினிக்கும் இடையில் ஒரு தொடர்பை ஏற்படுத்தும். இதன் செயல்பாடுகளைப் பின்வருமாறு காணலாம்.
Interactive Processing: நமக்கும் கணினிக்கும் இடையேயான தொடர்பு நேரடியாக வார்த்தைகள் மூலம் shell environment-ல் நடைபெறுவதே Interactive Processing எனப்படும்.
Background Processing: சில processes நேரடியாக வார்த்தைகள் மூலம் நடைபெற முடியாத வகையிலோ அல்லது மிகுந்த நேரம் பிடிக்கக்கூடியதாகவோ இருக்கும். எனவே இவ்வகையான process, background-ல் இயக்கப்படுவதன் மூலம் நாம் தொடர்ச்சியாக அடுத்தடுத்த வேலைகளை front-ல் செய்யலாம். இவ்வாறாக background-ல் process இயக்கப்படுவதே background processing எனப்படும்.
Input/Output Redirection: ஒரு Program-க்கு Input-ஆனது Keyboard வழியாக அல்லாமல் ஒரு file மூலம் செலுத்தப்படுவதும், அவ்வாறே அதன் output, monitor-க்கு செலுத்தப்படாமல் ஒரு file-க்குள் செலுத்தப்படுவதுமே Input/Output Redirection எனப்படும்.
Pipes: பல எளிதான programs-ஐ நாம் pipes மூலம் ஒன்றாக சேர்த்து, கடினமான வேலைகளையும் சுலபமாகச் செய்து முடிக்கலாம். எந்த ஒரு கடினமான programs-ஐயும் இதற்கென்று நாம் தனியாக எழுதத்தேவையில்லை. இதுவே pipes-ன் மிகச்சிறந்த பயன்பாடு ஆகும்.
Wild Card Patterns: இது ஒரே மாதிரியான Pattern-ல் இருக்கும் Text-ஐக் கண்டுபிடித்து அதன்மீது அடுத்தடுத்த வேலைகளைச் செய்யத் துவங்குகிறது.
Shell scripts: இது பல commands-ஐ உள்ளடக்கிய ஒரு file ஆகும். இதற்கு ஒரு filename இருக்கும். நாம் இந்த filename-ஐ execute செய்வதன் மூலம், அதனுள் உள்ள commands அனைத்தையும் execute செய்யலாம். ஒரு சில data-ஆனது variable-ல் சேமிக்கப்படுவதன் மூலம் நாம் shell-ன் செயல்முறைகளைக் கட்டுப்படுத்தலாம். இவ்வாறு data-வைத் தாங்கியிருக்கும் variable “shell variable” எனப்படும்.
Programming Language Constructs: Shell-ம் ஒருசில programming language-ஐப் போன்றே இயங்குவதற்கான பண்புகளைக் கொண்டுள்ளது. எனவே நாம் கடினமான programs-ஐக் கூட இத்தகைய பண்புகளைக் கொண்டு எளிதில் எழுதி விட முடியும்.
Shell-ன் வகைகள்: Shell-ல் பல வகைகள் உள்ளன. அவை Bourne shell, C shell, Korne shell & Restricted shell. பொதுவாக Bourne shell-ஆனது GNU/Linux systems-வுடனேயே வரும் ஒரு shell ஆகும். இது பொதுவாக அனைவராலும் பயன்படுத்தப்பட்டு வருகிறது.


Tools & Applications

வர்த்தக ரீதியாக பயன்படுத்தப்படும் word processors,electronic spreadsheets, data bases போன்ற பல applications-களையும் GNU/Linux அனுமதிக்கிறது. எனவே இதனால் பல்வேறு வர்த்தக நிலையங்களிலும், அலுவலகங்களிலும் சிறப்பாகப் பயன்படுத்தப்பட்டு வருகிறது.
மேலும் இதில் , விளையாட்டுகள், கல்வி மென்பொருட்கள் மல்டிமீடியா, அறிவியல், கணிதம், மருத்துவம், போன்ற அனைத்து துறை சார்ந்த மென்பொருட்கள் , Networking Servers, Databases, Programming Languages என பல்லாயிரம் மென்பொருட்கள் கட்டற்ற முறையில் கிடைக்கின்றன.


Login செய்யும் முறை


GNU/Linux System-க்குள் உள்நுழைவதையே நாம் loginஎன்கிறோம். இதையே sign-in, log-on என்றும் கூறலாம். அதேபோல் GNU/Linux system-ல் இருந்து வெளிவருவது log off, sign-off அல்லது log-outஎனப்படும்.
இப்போது நாம் login செய்ய user-idமற்றும் passwordதேவை. தொடக்கத்தில் இந்த இரண்டு விவரங்களையும் நமக்கு System Administrator என்பவர் அளிப்பார்.

பின்னர் நாம் ‘passwd’ எனும் command-ஐப் பயன்படுத்தி, நமக்கு அளிக்கப்பட password-ஐ மாற்றி, நமக்கு மட்டுமே தெரியுமாறு ஒரு புதிய password-ஐ அமைத்துக்கொள்ளலாம். இதன் மூலம் நாம் நம்முடைய files-ஐ யாரும் தவறுதலாகக் கூடப் படிக்க முடியாதவாறு பாதுகாப்பாக வைத்துக்கொள்ள முடியும்.

மேலும் GNU/Linux, case-sensitive என்பதால், நாம் அளிக்கும் password, lowercase, uppercase, special charecter, number-கலந்து
இருக்க வேண்டும் என்பதை நினைவில் கொள்ளவும்.


Commands-ஐ இயக்குதல்

GNU/Linux commands அனைத்தும் shell prompt-ல் இயக்கப்படும். இந்த shell prompt-ஆனது பொதுவாக dollar ($) symbol மூலம் வெளிப்படும். இதைத் தான் command line என்கிறோம்.

எனவே $ வெளிப்பட்டபின், அதனைத் தொடர்ந்து நாம் command-ஐ அடிக்க வேண்டும். பின்னர் enter-ஐ அழுத்துவதன் மூலம் அந்த command-ஆனது execute செய்யப்படும்.

நாம் ஒன்றுக்கும் மேற்பட்ட commands-இ ஒரே நேரத்தில் இயக்க முடியாது. ஒன்றன்பின் ஒன்றாகத் தான் இயக்க முடியும்.




2

உபுண்டு நிறுவுதல்


உபுண்டு :
Debian-ஐ அடிப்படையாகக் கொண்ட GNU/Linux வழங்கல்களில் இதுவும் ஒன்றாகும். இங்கு Debian என்பது Linux kernel-வுடன் கூடிய GNU இயங்குதளத்தை அடிப்படையாகக் கொண்ட மற்றொரு வழங்கலாகும். இது Canonical Ltd-ன் product ஆகும்.
குறைந்தபட்ச கணிணி தேவைகள் :
உபுண்டு நிறுவுவதற்கு கீழ்கண்ட வன்பொருள் அமைப்புடன் கூடிய தேவைகள் கணிணியாக இருக்க வேண்டுமென்று சிபாரிசு செய்யப்படுகிறது.
1.4Ghz Processor Pentium4
512 MB RAM
5GB Hard Disk Drive
Sound Card
Graphics Card
இணையத் தொடர்பு
இப்போது உபுண்டு நிறுவுதலை பார்ப்போம்.
படி 1 :
http://www.ubuntu.com/download/ubuntu/download என்ற இணைப்பிலிருந்து ISO file-ஐ இறக்கம் செய்த பிறகு அதை CD/DVD-ல் எழுதவும். இந்த வழிகாட்டி புதிய GNU/Linux பயனருக்கு உதவும் வகையில் எழுதப்பட்டுள்ளது. நீங்கள் ஏற்கனவே விண்டோஸ் பயன்படுத்திக் கொண்டிருந்தால் அதனை பாதிக்காமல்
தேவையான நினைவகத்தை (குறைந்தபட்சம் 4.4) விண்டோசில் ஒதுக்கிக் கொள்ளவும்.
படி 2 :
புதிய உபுண்டு Live CD-ஐ உள்ளிடவும்.

குறிப்பு : CD இயங்குவதற்கு, BIOS அமைப்பில் CD-ஐ முதன்மைக் கருவியாகவும், HDD-ஐ இரண்டாம்நிலைக் கருவியாகவும் மாற்றி அமைக்கப்பட்டிருக்க வேண்டும்.
சிறிது நேரத்த்திற்குப் பிறகு நீங்கள் கீழ்க்கண்ட திரையினை காணலாம்.

இதில் Try Ubuntu மற்றும் Install Ubuntu என்ற இரு விருப்பத்தேர்வுகளை காணலாம். Try Ubuntu-ஐ தேர்வு செய்தவதன் மூலமாக Ubuntu-ஐ கணிணியில் நிறுவாமல் அதில் வேலை செய்யலாம். Ubuntu-வை நிறுவுவதற்கு, முகப்புத்திரை(Desktop)யில் உள்ள Installபணிக்குறியின்(Icon) மூலமாகவோ அல்லது திரையில் உள்ள Install Ubuntu வழியாகவோ செல்லலாம்.
படி 3 :
அடுத்து வரும் திரையில் மொழியைத் தேர்வு செய்து Continue பொத்தானை அழுத்தவும்.


படி 4 :
இப்போது தோன்றும் திரையில், கணிணி சம்பந்தப்பட்ட சில தகவல்களை Ubuntu சோதித்து அதனை வெளியிடும். இத்தகவல்களுடன் தேவையான மென்பொருளை
மேம்படுத்துவதற்கான விருப்பத்தேர்வு மற்றும் third-party மென்பொருளை நிறுவுவதற்கான விருப்பத்தேர்வினையும் கொண்டிருக்கும். இந்த விருப்பங்களைத் தேர்வு செய்ய கணிணி இணையத்துடன் இணைக்கப்பட்டிருக்க வேண்டும்.

படி 5 :
வன்வட்டு பயன்பாட்டின் அடிப்பையில் நீங்கள் கீழ்க்கண்ட இரு திரையில் ஒன்றைக் காணலாம்.


உங்கள் கணிணியில் எந்த இயங்குதளத்தையும் Ubuntu கண்டறியவில்லையெனில் முதல் திரையானது தோன்றும். மாறாக, அடுத்த திரையானது உபயோகத்தில் உள்ள இயங்குதளத்துடன் எவ்வாறு Ubuntu-ஐ நிறுவ முடியும் போன்ற விருப்பத்துடன் கூடுதல் விருப்பத்தேர்வுகள் கொடுக்கப்பட்டிருக்கும். இவையிரண்டிலும், கடைசி விருப்பத்தேர்வின் மூலமாக பயனரின் தேவைக்கேற்ப வன்வட்டின் அளவினை நிர்ணயிக்காலம்.
படி 6 :
கடைசி விருப்பத்தின் வழியாக வந்தால் கீழ்க்கண்ட திரையினை காணலாம்.

இதில் பயனர், தேவையான வன்வட்டுப் பிரிவினை(Partition)த் தேர்வு செய்து Delete செய்யவும். பிறகு, தேவையான பிரிவின் அளவை நிர்ணயிக்க Add பொத்தானை அழுத்தவும்.
படி 7 :
a.
i) இங்கே வன்வட்டினை இரு வகைகளில் பிரிக்கலாம். ஒன்று Primary, மற்றொன்று Logical வகையாகும். இதில் Primary வகையில் பிரிக்கும்போது, வன்வட்டினை 4-க்கு மேல் பிரிக்க முடியாது. மீதமுள்ள நினைவகத்தை பயன்படுத்த முடியாது. பயனர் 4-க்கு மேல் பிரிக்க வேண்டுமெனில் Logical வகையினை தேர்வு செய்து கொள்ளலாம்.
ii) அடுத்து நினைவக அளவினை கொடுத்து, அது வன்வட்டின் முதலிலிருந்து தொடங்கவேண்டுமா (அ) இறுதியிலிருந்து எடுத்துக் கொள்ளவேண்டுமா என்பதை தேர்வு செய்யவும்.
iii) windows-ன் ntfs-ஐப் போல, Ubuntu ‘ext4 journaling filesystem’ மற்றும் பல வகையான filesystem-ஐ பயன்படுத்துகிறது.
iv) Mount point என்பது Ubuntu-ஐ எங்கு நிறுவ வேண்டும் என்ற இடத்தைக் குறிக்கின்றது. இது எப்போதும் ‘ / ‘ ஆகும்.

b.

பிறகு நீங்கள் swap அளவினை வன்வட்டில் அமைக்கலாம். அதாவது, உங்கள் வன்வட்டில், ஒரு குறிப்பிட்ட நினைவக அளவை RAM-ஆக பயன்படுத்த முடியும். இதனை Virtual RAM என்றும் கூறலாம். பொதுவாக உங்கள் RAM-ன் அளவினை (அ) அதிகபட்சமாக RAM-ன் இருமடங்கு அளவினை swap-ஆக அமைக்க அறிவுறுத்தப்படுகிறது. இந்த swap-ன் மூலமாக உங்கள் processor-ன் செயல்திறனை சீராக பார்த்துக்கொள்ளமுடியும்.

இப்போது Install Now பொத்தானை அழுத்தவும்.


படி 8 :
இப்போது Ubuntu நிறுவ தொடங்கிவிடும். அதே சமயத்தில் Ubuntu-க்குத் தேவயான மேலும் சில அமைப்புகளை மேற்கொள்ள வேண்டும். அதாவது, உங்களின் அமைவிடம் (Kolkatta), Keyboard Layout-க்கான மொழி (Englis(US)) மற்றும் பயனரின் பெயர் மற்றும் கடவுச்சொல் (Password) ஆகியவற்றை கொடுக்க வேண்டும். அவ்வளவுதான்.
Ubuntu நிறுவிய பிறகு,சிறிய தகவல் பெட்டி ஒன்று தோன்றி கணிணியை மறுபடியும் தொடங்குமாறு கேட்கும். Restart Now பொத்தானை அழுத்தியதும், உங்கள் கணிணி மீண்டும் துவக்கப்படும். இப்போது ஒன்றுக்கு மேற்ப்பட்ட இயங்குதளம் இருந்தால், அதன் பட்டியல் காட்டப்படும். அதில் Ubuntu-ஐ தேர்வு செய்தால், கீழ்க்கண்ட நுழைவுத்திரையைக் காணலாம். இங்கு உங்களின் கடவுச்சொல்லினைக் கொடுத்து Ubuntu-வினுள் செல்லலாம்.
இப்போது Ubuntu-ஐப் பயன்படுத்தி, அதனுடைய அனுபவத்தைப் பெறுங்கள்.

நன்றி
செல்வமணி சம்பத்



3

எளிய GNU/Linux commands


இந்தப் பாகத்தில் நாம் ஒருசில எளிய GNU/Linux commands-ஐப் பற்றியும், அதன் பயன்பாட்டினைப் பற்றியும் பின்வருமாறு காணலாம்.

ஒரு சில commands, arguments-ஐ எடுத்துக்கொள்கின்றன. உதாரணத்துக்கு man, echo போன்றவை arguments-ஐ கொடுத்தால் மட்டுமே செயல்படக் கூடியவை.

ஒரு சில commands-க்கு arguments தேவையில்லை. date, who, ifconfig போன்றவை arguments இல்லாமலேயே செயல்படுகின்றன.

Arguments என்பது ஒரு command-ன் செயல்பாட்டிற்காக நாம் வழங்கும் மதிப்புகள் ஆகும். இதனை parameters என்றும் கூறலாம்.

மேலும் GNU/Linux commands அனைத்தும் case sensitive ஆனவை. பொதுவாக அவை lower case-ல் அமையும். upper case-ல் கொடுத்துப்பார்த்தீர்களானால் அவை எதுவும் செயல்படாது.


date


இது தற்போதைய தேதி மற்றும் நேரத்தினை வெளிப்படுத்துகிறது.

$ date


who


இது தற்போது நமது system-ல் யாரெல்லாம் login செய்துள்ளார்கள் எனும் விவரங்களை அளிக்கிறது.
$ who


whoami


இது நாம் எந்த user-ஆக login செய்துள்ளோம் எனும் விவரத்தை அளிக்கிறது.

$ whoami


who am i


இந்த command-ஐ நாம் இவ்வாறு இடைவெளி விட்டு அளிக்கும் போது இது இன்னும் கொஞ்சம் விவரங்களையும் சேர்த்து அளிப்பதைக் காணலாம்.

$ who am i


ifconfig


இது நமது system-ன் network configurations-ஐப் பற்றித் தெரிந்து கொள்ளப் பயன்படுகிறது. உதாரணத்துக்கு ip address, mac address, broadcast address மற்றும் netmask address போன்ற விவரங்களை வெளிப்படுத்துகிறது.

$ ifconfig


uname


இது நமது கணினியில் உள்ள OS-ன் பெயரை வெளிப்படுத்துகிறது.

$ uname


$ uname -a


இவ்வாறு ‘-a’ எனும் option-வுடன் சேர்த்து command-ஐ அளிக்கும்போது, நமது OS-ஐப் பற்றிய கூடுதல் விவரங்களையும் சேர்த்து அளிக்கிறது.


man


man என்பது manual என்பதன் சுருக்கமே ஆகும். உதாரணத்துக்கு uname எனும் command-ன் பயன்பாடுபற்றி நமக்கு சரியாகத் தெரியவில்லையெனில், man எனும் command-ன் துணைகொண்டு அதன் manual-ஐப் படித்து நாம் முழுமையாகத் தெரிந்துகொள்ளலாம்.

$ man uname


பின்னர் ‘q’ எனும் எழுத்தானது இந்த manual-ஐ quit செய்து அதிலிருந்து வெளியேறப் பயன்படுகிறது.


echo


நாம் திரையில் வெளிப்படுத்த விரும்புவதை இந்த echo command வெளிப்படுத்தும். உதாரணத்துக்கு “I Love India” என்று நாம் திரையில் வெளிப்படுத்த விரும்பினால் இந்த வாசகத்தை echo-ன் argument-ஆக கொடுக்க வேண்டும். இது பின்வருமாறு.

$ echo “I Love India”

வெறும் ஒரே ஒரு வார்த்தையை நாம் வெளிப்படுத்த விரும்பினால் double quotes (” “) கொடுக்கத் தேவையில்லை. இது பின்வருமாறு.

$ echo Nithya


exit


இது shell prompt-ல் இருந்து வெளியேறப் பயன்படும். ctrl+d -ம் இதே வேலையைச் செய்கிறது.




4

Directory commands-ன் செயல்பாடுகள்


pwd


தற்போது நாம் எந்த directory-ல் வேலை செய்து கொண்டிருக்கிறோம் என்பதை வெளிப்படுத்தும். இதற்கு எந்தஒரு option-ம் கிடையாது. பொதுவாக login செய்தவுடன், நாம் நமது home directory-ல் விடப்படுவோம்.

இங்கு நாம் login செய்தவுடன், pwd எனும் command-ஐ கொடுத்திருப்பதால், இது நமது home directory-ஆன /home/nithya என்பதை வெளிப்படுத்தியுள்ளது.

$pwd


ls


இது, நாம் தற்போது வேலை செய்து கொண்டிருக்கும் directory-ல் உள்ள அனைத்து files மற்றும் folders-ஐயும் பட்டியலிடும்.

$ ls


mkdir


ஒரு புதிய directory-ஐ உருவாக்கப் பயன்படுகிறது.

$ mkdir school

என்று கொடுக்கும் போது, “school” எனும் பெயரில் ஒரு புதிய directory உருவாக்கப்பட்டுவிடும். இதனை ls மூலம் நாம் உறுதிபடுத்திக் கொள்ளலாம்.


இங்கு மற்ற directory-களுடன் சேர்த்து, நாம் புதிதாக உருவாக்கிய ‘school’ எனும் directory-ம் பட்டியலிடப்பட்டுவதை கவனிக்கவும்.


cd


ஒரு directory-ல் இருந்து மற்றொரு directory-க்கு இடம்பெயர உதவுகிறது.

$ cd school

என்று கொடுக்கும்போது நாம் ‘school’ எனும் directory-க்குள் கொண்டு செல்லப்படுவோம். பின்னர்,

$ pwd

என்று கொடுப்பதன் மூலம் நாம் school எனும் directory-க்குள் உள்ளதை உறுதி செய்து கொள்ளலாம்.


இங்கு நாம் /home/nithya எனும் directory-ல் இருந்து /home/nithya/school எனும் directory-க்கு மாற்றப்படுள்ளதைக் காணலாம்.


Dot directories


single dot-ஐ . command-ல் குறிப்பிடும் போது, அது தற்போதைய directory-ஐக் குறிக்க உதவுகிறது.

double dots-ஐ .. command-ல் குறிப்பிடும் போது, அது தற்போதைய directory-ன் parent directory-ஐக் குறிக்கிறது. அதாவது ஒரு directory பின்னோக்கிக் குறிப்பிடும்.

இங்கு cd .. எனக் கொடுக்கும் போது தற்போதைய directory-ஆன ‘school’-ல் இருந்து, அதன் முந்தைய directory-ஆன ‘nithya’-க்குச் செல்வதைக் காணலாம்.

$ cd ..


ஒருவேளை 2 directory பின்னோக்கிச் செல்ல விரும்பினால் அதற்கு ../.. எனக் குறிப்பிடலாம். இது பின்வருமாறு.


rmdir


ஒரு காலி directory-ஐ அழிக்கப் பயன்படுகிறது.

$ rmdir school

என்று கொடுக்கும் போது, “school” எனும் பெயரில் இருக்கும் காலி directory-ஆனது நீக்கப்படும். இதனை ls மூலம் நாம் உறுதிபடுத்திக் கொள்ளலாம்.


Home Directory-க்குச் செல்லுதல்

நாம் பின்வரும் 3 வழிகளில் எங்கிருந்தாலும், நமது home directory-ஐ நேரடியாகச் சென்றடைய முடியும்.

$ cd


$ cd ~


$ cd /home/
உதாரணம்
$ cd /home/nithya




5

GNU/Linux-ன் File System


இந்தப் பகுதியில் நாம் GNU/Linux-ன் மிக முக்கிய அங்கமான File System-ஐப் பற்றிப் பார்க்கலாம். GNU/Linux-ஐப் பொருத்தவரை எல்லா வகையான தகவல்களுமே ஒரு file-ஆகவே கருதப்படும்.

ஒரு file என்பது binary data-வைக் கொண்டதாகவோ, machine language-ல் எழுதப்பட்ட data-வைக் கொண்டதாகவோ அல்லது எளிய text file-ஆகவோ இருக்கலாம். இத்தகைய files-ஐக் கையாள உதவும் GNU/Linux commands-ஐப் பற்றி இங்கு கற்கலாம்.
மேலும் GNU/Linux என்பது பல்வேறு பயனர்கள் பயன்படுத்தக் கூடிய இயங்குதளமாக உள்ளதால், ஒரு user-ன் files-ஐ மற்றொரு user பயன்படுத்தாத வகையில் பாதுகாக்க வேண்டியது இன்றியமையாததாகிறது. இதற்காக GNU/Linux-ல் பயன்படுத்தப்படும் மிக முக்கிய பாகமான file system-ஐப் பற்றி முதலில் பார்க்கலாம்.


File System-க்கான விளக்கம்

ஏற்கனவே கூறியதுபோல GNU/Linux-ஐப் பொருத்தவரை அதனுடன் சம்பந்தப்பட்ட அனைத்தும் ஒவ்வொரு file-ஆகவே கருதப்படுவதால், இந்த file system-ஐப் பற்றி நாம் தெளிவாகப் புரிந்து கொள்வது இன்றியமையாததாகிறது.
GNU/Linux file system-ல் உள்ள directory structure பின்வருமாறு அமையும்.




மேற்கண்ட படத்தில் உள்ள ஒவ்வொரு பெட்டியும் ஒரு directory-யைக் குறிக்கிறது. இந்த ஒவ்வொரு directory-யைப் பற்றியும் பின்வருமாறு காணலாம்.


/


இது root என அழைக்கப்படும். இதுவே அனைத்து directories-க்கும் ஆதிமூலமான directory ஆகும். எனவே நாம் எந்த directory-யைக் குறிப்பிட்டாலும் / (root)-லிருந்து துவங்கி அந்த directory-ஐக் குறிப்பிடுவது நல்ல வழக்கமாக அமையும்.

இந்த / எனும் directory, நமது கணினியை நாம் துவக்கும்போது அதனுள் உள்ள linux எனப்படும் ஒரு kernel file-ஐ /boot எனும் மற்றொரு folder மூலமாக, disk-லிருந்து memory-க்கு மாற்றுகிறது. இந்த செயலுக்குப் பின்னர்தான் GNU/Linux நமது கணினியில் OS-ஆக load செய்யப்படுகிறது.


/bin


இந்த directory-ல் பெரும்பாலான GNU/Linux commands-க்கான executable filesகாணப்படும். பொதுவாக GNU/Linux commandsஎன்பது நமது வேண்டுதலின் பெயரில் ஒருசில வேலைகளைச் செய்யக்கூடிய ‘C’ programs-ஆகவோ அல்லது shell scripts-ஆகவோ இருக்கும். இதற்கான executable filesதான் இங்கு காணப்படும்.


/etc


நமது கணிணியை நிர்வாகம் செய்து ஒழுங்குமுறைப்படுத்துவதற்கான Configuration Files இந்த directory-ல் காணப்படும். மேலும் server adminisration சம்பந்தப்பட்ட பல்வேறு files-ம் இதில் காணப்படும். அதாவது நமது கணினியைப் பயன்படுத்தும் பயனர்கள்(users) பற்றிய files மற்றும் நமது கணிணியுடன் இணைக்கப்பட்டுள்ள கருவிகள்(devices) பற்றிய files அனைத்தும் இங்கு காணப்படும்.


/lib


Programmers-க்காக GNU/Linux வழங்கும் பல்வேறு library functions அனைத்தும் இங்கு காணப்படும். system calls-ஐ உருவாக்கி இத்தகைய functions-ஐ நாம், நமது programs-ல் பயன்படுத்திக் கொள்ளலாம்.


/dev


உள்ளீடு மற்றும் வெளியீடு(Input & Output) செய்வதற்காக நாம் பயன்படுத்தும் கருவிகள்(devices), storage devices பற்றிய files அனைத்தும் இங்கு காணப்படும்.


/ home


இது நமது கணினியைப் பயன்படுத்தும் ஒவ்வொரு பயனருக்கும் உருவாக்கப்படும் ஒரு home directory ஆகும். இந்த directory எவ்வாறு வேண்டுமானாலும் பெயரிடப்படலாம். இங்கு தான் ஒரு பயனருடைய private files அனைத்தும் சேமிக்கப்படுகின்றன.
இங்கு சேமிக்கப்படும் ஒரு பயனருடைய files வேறு எந்த பயனராலும் பயன்படுத்த முடியாத வகையில் அவருக்கென்றே உரித்தான ஒரு தனிப்பட்ட இடத்தில் சேமிக்கப்படுகின்றன.
/usr

மேலும் இந்த directory-க்குள் இருக்கும் bin எனும் மற்றொரு directory-ல் அதாவது /usr/bin எனும் இடத்தில் கூடுதலாக இன்னும் சில GNU/Linux commands-ம் காணப்படும்.
/tmp

இந்த இடத்தில் temporary files அனைத்தும் சேமிக்கப்படும். நமது கணிணியானது ஒவ்வொருமுறை restart செய்யப்படும்போதும், இங்கு சேமிக்கப்பட்டுள்ள temporary files அனைத்தும் அழிக்கப்பட்டுவிடும். எனவே மற்ற directory-களுடன் இதனை ஒப்பிடும்போது, இது அந்த அளவு அதிக முக்கியத்துவம் பெறாது.


Files-ஐக் குறிக்கும் முறை

GNU/Linux Commands-ல் files-ஐக் குறிப்பிடும் போது, அந்த file இருக்கும் இடத்தை absolute path மற்றும் reference path எனும் இரு வகைகளில் குறிப்பிடலாம். இவற்றைப் பற்றி இங்கு விளக்கமாகக் காண்போம்.


Absolute path

ஒரு file இருக்கும் இடத்தை ஆதியிலிருந்து அதாவது root(/) directory-ல் இருந்து, ஒவ்வொரு directory-ஆக இறங்கி வந்து குறிப்பிட்டுக் கூறுவது absolute path எனப்படும்.
உதாரணத்துக்கு LKG எனும் file-ஐ copy செய்து, UKG எனும் file-ல் சேமிக்க,
$ cp LKG UKG
எனக் குறிப்பிடாமல்,
$ cp /home/nithya/school/LKG /home/nithya/school/sub/UKG

என்று குறிப்பிடுவது absolute path எனப்படும்.


பொதுவாக shell script-ல் file-களைக் குறிப்பிடும்போது, இவ்வகையான absolute path முறையைக் கையாளுவது சிறந்தது.


Reference path

ஒரு file எந்த directory-ல் உள்ளதோ, அந்த directory-க்குள் சென்று, command-ல் file-ஐ நேரடியாகக் குறிப்பிடுவது reference path எனப்படும். இதனை relative path என்றும் கூறலாம்.
அதாவது LKG எனும் file, school directory-க்குள் உள்ளதால், அந்த directory-க்குள் சென்று, copy செய்வது reference path எனப்படும்.
$ cp LKG UKG




6

Files-ன் உருவாக்கமும் பயன்பாடும்


touch


நாம் தற்போது வேலை செய்து கொண்டிருக்கும் directory-ல் ஒரு புதிய empty file-ஐ உருவாக்கப் பயன்படும்.

$ touch LKG

இது ‘LKG’ எனும் பெயரில் ஒரு புதிய file-ஐ உருவாக்கும்.


இந்த file உருவாக்கப்பட்டுவிட்டதை ls command மூலம் உறுதிபடுத்திக்கொள்ளலாம்.

இதே போன்று touch command-ஐத் தொடர்ந்து, தொடர்ச்சியாக பல்வேறு பெயர்களைக் கொடுத்து ஒன்றுக்கும் மேற்பட்ட files-ஐ ஒரே நேரத்தில் உருவாக்க முடியும். இது பின்வருமாறு.

$ touch tamil english maths

என்று கொடுக்கும்போது tamil, english & maths எனும் 3 files உருவாக்கப்படும்.


Hidden Files

அடுத்ததாக, touch command-ஐத் தொடர்ந்து ஒரு புள்ளி வைத்து filename-ஐக் குறிப்பிடும்போது அது hidden file-ஆக உருவாக்கப்படும். அதாவது,

$ touch .UKG

என்று கொடுத்தோமானால், ‘UKG’ எனும் பெயரில் ஒரு புதிய hidden file உருவாக்கப்படும். இது போன்ற files நமது கண்களுக்குத் தெரியாது. ls command-வுடன் -a எனும் option-ஐ சேர்த்து execute செய்யும்போது மட்டுமே இதுபோன்ற files-ஐ நாம் பார்க்க முடியும். இது பின்வருமாறு.


cat


ஒரு file-க்குள் சேமிக்கப்பட்டிருக்கும் தகவல்களை வெளிப்படுத்த உதவும். மேலும் ஒரு file-ஐ உருவாக்கி, அதற்குள் ஒருசில விவரங்களை சேமிக்கவும் பயன்படுகிறது.
உதாரணத்துக்கு ‘Names’ எனும் file-ஐ உருவாக்கி, அதற்குள் ஒருசில பெயர்களை சேமிப்பதற்கான cat command பின்வருமாறு அமையும்.
$ cat > Names
Nithya
Akila
Sharmila
Pavithra
(press ctrl+d)

இதில் ctrl+d என்பது file நிறைவுற்றதைக் குறிக்கிறது.

இங்கு ‘Names’ எனும் file உருவாக்கப்பட்டிருப்பதைக் காணலாம்.
அடுத்ததாக ‘Names’ எனும் file-க்குள் சேமிக்கப்பட்டிருக்கும் தகவல்களை வெளிப்படுத்துவதற்கு cat command-ஐ பின்வருமாறு அமைத்தால் போதுமானது.
$ cat Names

இங்கு ‘Names’ file-க்குள் சேமிக்கப்பட்டிருக்கும் பெயர்கள் அனைத்தும் வெளிப்படுத்தப்பட்டுள்ளது.


tac

இதுவும் cat command-ஐப் போலவே செயல்படும். ஆனால் reverse order-ல் செயல்படும். அதாவது output-ஐ கீழிருந்து மேலாக வெளிப்படுத்தும். இது பின்வருமாறு.

$ tac Names


rev


இது ஒரு file-ல் உள்ள அனைத்து எழுத்துக்களையும் இடமிருந்து வலமாக, அதாவது reverse order-ல் வெளிப்படுத்தும்.

$ rev Names


Append செய்தல்


ஏற்கனவே இருக்கும் file-ல் ஒருசில கூடுதல் தகவல்களை இணைக்க(append) விரும்பினால் >> எனும் குறியைப் பயன்படுத்தலாம்.

$ echo ‘Lavanya’ >> Names


வெறும் ஒரே ஒரு முறை மட்டும் இந்த குறியைப் > பயன்படுத்தினால் file-ல் உள்ள பழைய தகவல்கள் அனைத்தும் அழிக்கப்பட்டு நாம் கொடுக்கும் புதிய தகவல்கள் மட்டுமே சேமிக்கப்படும். எனவே தவறாமல் இதை இரண்டு முறை >> பயன்படுத்த வேண்டும் என்பதை நினைவில் கொள்ளவும்.


TAB key-ன் சிறப்பு பயன்பாடு


சில சமயங்களில், நம்முடைய file-ன் பெயர் மிகவும் நீளமானதாக இருப்பின், அந்த முழு பெயரையும் type செய்யத் தேவையில்லை. அந்தப் பெயரின் தொடக்க எழுத்துக்களை மட்டும் அடித்து TAB key-யை அழுத்தினால் போதுமானது. அதுவே மீதி எழுத்துக்களை நிரப்பிக் கொள்ளும்.

$ cat Na(press TAB)


pushd மற்றும் popd commands

நாம் ஏதேனும் ஒரு குறிப்பிட்ட பகுதியில் உள்ள directory-க்குள் வேலை செய்து கொண்டிருக்கும்போது, திடீரென்று மற்றொரு பகுதியில் உள்ள directory-க்குள் செல்ல விரும்பினால் இந்த pushd-ஐப் பயன்படுத்தலாம்.

இவ்வாறு pushd மூலம், நாம் வேறொரு directory-ஐச் சென்றடையும்போது, அந்தப் பகுதியில் நமக்குத் தேவையான வேலைகளைச் செய்து முடித்தபின் வெறும் popd என்று கொடுத்தால் போதுமானது. நாம் மீண்டும் நமது பழைய directory-க்கே வந்து விடுவோம்.

பின்வரும் உதாரணத்தில், தற்போது நாம் /home/nithya/school/sub எனும் directory-க்குள் உள்ளோம்.


இங்கு pushd என்று கொடுத்து ~ (home directory)-ஐக் குறிப்பிடும்போது, நாம் /home/nithya -க்குள் விடப்பட்டுள்ளதைக் காணலாம். இங்கு ls command-ஐ execute செய்தபின், popd எனக் கொடுக்கும்போது மீண்டும் நாம் /home/nithya/school/sub -க்குள்ளேயே விடப்பட்டுவதைக் காணலாம்.


file

ஒரு file-ஆனது பல்வேறு வகைகளில் இருக்கும். உதாரணத்துக்கு text files, executable files மற்றும் directory files போன்றவாறு இருக்கும்.

எனவே இந்த file command-ஆனது, ஒரு file எந்த வகையைச் சேர்ந்தது என்பதைக் கண்டுபிடிக்கப் பயன்படுகிறது.

$ file


Timestamp-ஐ மாற்றுதல்


நாம்
touch -t
எனக் கொடுத்து ஒரு file-ன் timestamp-ஐ மாற்றலாம்.

பின்வரும் உதாரணத்தில், ‘animals’ எனும் file, ஏப்ரல் மாதம் 7-ஆம் தேதி, 8 மணி 17 நிமிடங்களில் உருவாக்கப்பட்டுள்ளதைக் காணலாம்.

இதனை நாம் 1987-ஆம் வருடம், august மாதம் 4-ஆம் தேதி, 9 மணி 15 நிமிடங்களில் உருவாக்கப்பட்டுள்ளதாக மாற்ற விரும்பினால், tocuh command-ஐ பின்வருமாறு அமைக்கவும்.

$ touch -t 198708040915 animals


History-ல் உள்ள commands-ஐ பயன்படுத்துதல்


சில சமயங்களில் நாம் முன்னர் execute செய்த command-ஐயே மீண்டும் execute செய்ய விரும்புவோம். அப்போது நாம் அதே command-ஐ திரும்பவும் command line-ல் type செய்யத் தேவையில்லை. வெறும் UP arrow-ஐ அழுத்தினால் போதுமானது. நாம் கடைசியாக என்ன command-ஐ execute செய்தோமோ அதே command-ஆனது command line-ல் வந்து விடும். மீண்டும் UP arrow-ஐ அழுத்தினால், அதற்கும் முன்னதாக execute செய்யப்பட்ட command வந்து நிற்கும்.

இவ்வாறாக UP மற்றும் DOWN arrow marks key-ஐப் பயன்படுத்தி இதுவரை நாம் execute செய்த commands-ஐ ஒவ்வொன்றாக command line-ல் வரவழைப்பதே command line history எனப்படும்.

மேலும் LEFT மற்றும் RIGHT arrow marks keys-ஆனது command-ல் தேவையான திருத்தங்களைச் செய்யப் பயன்படுகிறது.


History-ல் உள்ள commands-ஐ argument-ஆக பயன்படுத்துதல்


History-ல் இருக்கும் command-ஐ, நாம் இயக்க இருக்கும் command-க்கு argument-ஆக அமைக்க !! குறியைப் பயன்படுத்தலாம்.

அதாவது history-ல் உள்ள ‘cat animals’ எனும் command- ஐ, !! மூலம் தற்போதைய command-க்கு argument-ஆக பின்வருமாறு அமைக்கலாம்.

$ echo !!


History-ல் உள்ள command-ன் argument-ஐ மட்டும் பயன்படுத்துதல்:


History-ல் உள்ள command-ன் argument-ஐ மட்டும், தற்போதைய command-க்கு argument-ஆக அமைக்க !$ எனும் குறியைப் பயன்படுத்தலாம்.

அதாவது history-ல் உள்ள cat command-ன் argument-ஐ ls-க்கு argument-ஆக அமைக்க விரும்பினால் !$ குறி மூலம் பின்வருமாறு அமைக்கலாம்.

$ ls !$


ls command-வுடன் வரும் options-ன் பயன்பாடுகள்


ls -l command


இது long format-ல் ஒரு file அல்லது folder பற்றிய விவரங்களைத் தருகிறது.

$ ls –l


மேற்கண்ட உதாரணத்தில், school எனும் directory-க்குள் sectionஎனும் sub-directory உள்ளதைக் காணலாம்.

இதன் output-ல் முதலில் உள்ள hyphen(-) எனும் குறியீடு file-ஐயும், d எனும் எழுத்து directory-ஐயும் குறிக்கிறது.
அடுத்து உள்ள 9 எழுத்துக்களும் அந்த file-க்கு உரிய அனுமதிகளைக் குறிக்கிறது. இதில் rwx என்பது read, write மற்றும் execute எனும் 3 வகையான அனுமதிகளைக் குறிக்கிறது.

முதலில் உள்ள 3 எழுத்துக்களும் அந்த file owner-க்கு உரிய அனுமதிகளையும், அடுத்து உள்ள 3-ம் group-க்கான அனுமதிகளையும், கடைசி 3 எழுத்துக்களும் மற்றவர்களுக்கான (others-க்கான) அனுமதிகளையும் குறிக்கிறது.

அடுத்து உள்ள எண் அந்த file-க்கு உரிய reference-ன் எண்ணிக்கையைக் குறிக்கிறது.
அடுத்து உள்ளது அந்த user-ன் பெயர். அதனைத் தொடர்ந்து உள்ளது அந்த user group-ன் பெயர் ஆகும்.
பின்னர் கொடுக்கப்பட்டுள்ள விவரங்களெல்லாம் அந்தfile அல்லது folder உருவாக்கப்பட்டுள்ள தேதி மற்றும் நேரத்தினைக் காட்டுகிறது.
கடைசியாக அந்த file-ன் பெயர் கொடுக்கப்பட்டுள்ளது.


ls -la command


இதுவும் ls -l ஐப் போலவே செயல்படும். ஆனால் மறைக்கப்பட்ட கோப்புகளைப் (hidden files-ஐப் ) பற்றிய விவரங்களையும் சேர்த்துத் தரும்.

$ ls -la


ls -lt command


இதுவும் ls -l ஐப் போலவே செயல்படும். ஆனால் ஒரு file சேமிக்கப்பட்ட தேதி மற்றும் நேரத்தின் அடிப்படையில், இது files-ஐ இறங்குவரிசையில் ஒழுங்குபடுத்தி வெளிப்படுத்தும். அதாவது சமீபத்திய files பற்றிய விவரங்கள் முதலில் வெளிப்படுத்தப்பட்டிருக்கும்.


ls -lat command


இது hidden files-ஐயும் கணக்கில் கொண்டு ஒரு file உருவாக்கப்பட்ட தேதி மற்றும் நேரத்தின் அடிப்படையில், files-ஐ இறங்குவரிசையில் வெளிப்படுத்தும்.

$ ls -lat


ls -ltr command


இது ls -lt command-ன் output-ஐ reverse order-ல் காண்பிக்கும். அதாவது files அனைத்தும் அவை உருவாக்கப்பட்ட தேதி மற்றும் நேரத்தின் அடிப்படையில், ஏறுவரிசையில் வெளிப்படுத்தப்படும்.

$ ls -ltr


ls -latr command


இது hidden files-ஐயும் கணக்கில் கொண்டு தேதி மற்றும் நேரத்தின் அடிப்படையில், files-ஐ ஏறுவரிசையில் வெளிப்படுத்தும்.

$ ls -latr


ls -i command


இது ஒரு file-க்கான inode எண்ணை வெளிப்படுத்துகிறது. பொதுவாக ஒவ்வொரு file-ம் ஒரு inode table-ஐக் கொண்டிருக்கும். அந்த table-ல் தான் அந்த file பற்றிய அனைத்து விவரங்களும் சேமிக்கப்பட்டிருக்கும். இந்த command அத்தகைய inode table-க்கான எண்ணை வெளிப்படுத்துகிறது.

$ ls -i


ls –R command


இது நாம் தற்போது வேலைசெய்துகொண்டிருக்கும் path-ல் உள்ள files மற்றும் folders-ஐ வெளிப்படுத்துவதோடு அல்லாமல், வெளிப்படுத்தப்படும் folder-க்குள் இருக்கும் files மற்றும் folders-ஐயும் சுழற்சியாக(recursive- ஆக) வெளிப்படுத்த உதவுகிறது.

$ ls -R


மேற்கண்ட உதாரணத்தில், school எனும் folder-க்குள் sectionஎனும் subfolder உள்ளதைக் காணலாம். இங்கு ls -R என்று கொடுக்கும்போது, school folder-ல் இருக்கும் files பட்டியலிடப்படுவதோடு மட்டும் அல்லாமல், section எனும் subfolder-க்குள் இருக்கும் files-ம் பட்டியலிடப்படுவதைக் காணலாம்.


ls –F command


இது ls -l command மூலம் பட்டியலிடப்படுபவைகளில் files எது? , folders எது? என்று வேறுபடுத்திக் காட்ட உதவுகிறது.

வெளிப்படுத்தப்படும் வரியின் இறுதியில் / காணப்பட்டால், அது directory பற்றிய விவரங்களைக் கொண்டுள்ளது என்று அர்த்தம். அவ்வாறே ஒரு வரியின் இறுதியில் * காணப்பட்டால், அது executable files பற்றிய விவரங்களைக் கொண்டுள்ளது. மீதமுள்ள அனைத்தும் சாதாரண files பற்றிய விவரங்கள் என்று கணக்கில் கொள்ளலாம்.

$ ls -F

இங்கு section என்பது folder என்பதால், அதன் இறுதியில் / உள்ளதைக் காணலாம்.


cp command


ஒரு file-ஐ பிரதியெடுத்து(copy) வேறொரு பெயரில் சேமிக்க உதவுகிறது.

$ cp tamil language1


இங்கு tamil எனும் file பிரதியெடுக்கப்பட்டு language1 எனும் புதிய பெயரில் சேமிக்கப்படுகிறது.


mv command


ஒரு file-ஐ ஓரிடத்தில் இருந்து மற்றொரு இடத்திற்கு மாற்ற உதவுகிறது.

$ mv english section


இங்கு english எனும் file அதன் தற்போதைய directory-ல் இருந்து section எனும் மற்றொரு directory-க்குள் இடம்பெயர்ந்துள்ளது.


rm command


இது ஒரு file-ஐ நீக்கப் பயன்படுகிறது.

$ rm maths


இங்கு maths எனும் file அழிக்கப்பட்டுள்ளதைக் காணலாம்.

மேலும்,

$ rm -r section

என ஒரு folder-ன் மீது இந்த rm command-ஐ கொடுக்கும்போது, அந்த folder, அதனுள் இருக்கும் files-வுடன் சேர்த்து அழிக்கப்படுகிறது. இது பின்வருமாறு.


locate command


ஒரு குறிப்பிட்ட வார்த்தையில் தொடங்கும் files அனைத்தும் சரியாக எங்கே சேமிக்கப்பட்டுள்ளது என்று தெரியவில்லையெனில், இந்த locate command-ன் துணைகொண்டு அதனை நாம் தெரிந்து கொள்ளலாம்.


$ locate Maths


ஒன்றுக்கும் மேற்பட்ட parameters-ஐ கொடுத்தல்


சில சமயங்களில் நாம் ஒரே command-ல் ஒன்றுக்கும் மேற்பட்ட parameters-ஐக் கொடுத்து நமது வேலையை சுலபமாக செய்து முடிக்கலாம்..

உதாரணத்துக்கு Accounts, Reports, Finance எனும் 3 directory-களை உருவாக்க, நாம் ஒரே முறையில் mkdir command-க்கு இவை அனைத்தையும் parameters-ஆக கொடுப்பதன் மூலம் செய்து முடிக்கலாம்.

$ mkdir Accounts Reports Finance


இவ்வாறே rm, cat, touch போன்ற commands-ம் ஒன்றுக்கும் மேற்பட்ட parameters-ஐ எடுத்துக் கொண்டு செயல்பட வல்லவை.


Braces-ன் பயன்பாடு


நாம் braces-ன் துணைகொண்டு அடுக்கடுக்காக directories-ஐப் பின்வருமாறு உருவாக்கலாம்.

$ mkdir -p accounts/20{11,12}/{0{1,2,3,4,5,6,7,8,9},1{0,1,2}}


இங்கு –p என்பது ‘account’ எனும் பெயரில் ஒரு parent directory-ஐ உருவாக்கும்.

இதன் பின்னர் /-ஐத் தொடர்ந்து 20{11,12} எனக் கொடுக்கப்பட்டுள்ளதால் 2011 , 2012 எனும் பெயரில் இரண்டு sub-directories உருவாக்கப்படும்.

இதற்கு அடுத்தபடியாக மீண்டும் /-ஐத் தொடர்ந்து, ஒரு set-க்குள் 0{1,2,3,4,5,6,7,8,9},1{0,1,2} எனக் கொடுக்கப்பட்டுள்ளதால், 2011 மற்றும் 2012 directory-க்குள் 01,02,03,04,05,06,07,08,09,10,11,12 எனும் பெயரில் sub directories உருவாக்கப்படும்.




7

உள்ளீடு மற்றும் வெளியீட்டின் திசைமாற்றம் (Input/Output Redirection)


Input மற்றும் Output-ஐ திசைமாற்றம் செய்வது பற்றி கற்பதற்கு முன்னால் முதலில் நாம் Standard Input, Standard Output மற்றும் Standard Error என்றால் என்ன என்பதைப் பற்றித் தெரிந்து கொள்ள வேண்டும்.

GNU/Linux -ஆனது Keyboard-ஐ Standard Input ஆகவும், VDU (Visual Display Unit)-ஐ Standard Outputமற்றும் Standard Errorஆகவும் கருதுகிறது.

இவை 0,1 மற்றும் 2 எனும் எண்களால் பின்வருமாறு குறிப்பிடப்படகின்றன

Standard Input = 0
Standard Output = 1
Standard Error = 2

இதில் Keyboard வழியாக அல்லாமல் வேறு ஏதாவது மூலத்தின் வழியாக Input வருவதோ, அதேபோல் Monitor(VDU)-க்கு அல்லாமல் வேறு ஏதாவது மூலத்துக்கு Output செலுத்தப்படுவதோதான் Input/Output Redirection எனப்படும்.


Input Redirection


இங்கு wc command-க்கு Argument-ஆனது Input Redirection வழியாக குறிப்பிடப் பட்டுள்ளதைக் காணலாம்.

$ wc < animals


Output Redirection


அவ்வாறே இங்கு கொடுக்கப்பட்டுள்ள echo command-ஆனது Rhymes-எனும் சொல்லை திரையில் செலுத்தாமல், LKG எனும் file-க்குள் செலுத்துவதை Output Redirection எனலாம்.

$ echo Rhymes > LKG


இங்கு cat command மூலம் LKG file-க்குள் Rhymes உள்ளதா என்பது சரிபார்க்கப்பட்டுள்ளது.


tr command


tr என்பது translate எனப் பொருள்படும். ஒரு file-ல் உள்ள எழுத்துக்கள் அனைத்தையும் lower case-ஆகவோ அல்லது upper case எழுத்துக்களாக மாற்றுவதற்கு இது பயன்படும்.

$ tr a-z A-Z < animals
$ tr A-Z a-z < animals


அவ்வாறே tr -d என்பது ஒரு குறிப்பிட்ட எழுத்தை நீக்குவதற்கும், tr -s என்பது தொடர்ச்சியாக இருக்கும் ஒரே எழுத்துக்களை ஒரு முறை மட்டும் வைத்துவிட்டு மற்றவற்றை நீக்கவும் பயன்படுகிறது.

$ tr -d C < animals
$ tr -s a < animals




8

Text Handling


sed Command

sed-ஆனது ஒரு file-ல் உள்ள ஒவ்வொரு வரியையும் process செய்யும்.

sed-ஐத் தொடர்ந்து ஒரு தனி command-ஐக் கொடுக்கப் போகிறோம் என்றால் -e option-ஐயும் அல்லது ஒரு script file-ஐக் கொடுக்கப் போகிறோம் என்றால் -f option-ஐயும் பயன்படுத்த வேண்டும்.

உதாரணத்துக்கு ஒரு file-ல் உள்ள ‘luv’ எனும் வார்த்தையை ‘love’ எனும் வார்த்தையால் மாற்றம் செய்ய sed-ஐப் பின்வருமாறு பயன்படுத்தலாம்.

$ sed -e ‘s/luv/love/g’ lesson1


இந்த command-ல் g எனும் எழுத்து global occurrence என்பதைக் குறிக்கும். இது கொடுக்கப்படவில்லை எனில், ஒரே ஒரு முறை மட்டும் இந்த substitution நடைபெறும்.


paste Command

paste-ஆனது இரண்டு வெவ்வேறு file-ல் இருக்கும் ஒவ்வொரு வரியையும் எடுத்து, நாம் கொடுக்கும் delimiter-ஐ இடையில் வைத்து அதனை ஒரே வரியாக வெளிப்படுத்துகிறது.

மேலும் -d எனும் option எந்த delimiter-ஐ இடையில் வைக்க வேண்டும் என்பதைக் குறிப்பிட உதவுகிறது. இது பின்வருமாறு.

$ paste -d: animals lesson1


join Command

ஒரு database-ல் இரண்டு tables இணைக்கப்படுவது போலவே, இரண்டு files-க்கு இடையில் ஒரு inner join-ஐ ஏற்படுத்த இந்த join command பயன்படும். இது பின்வருமாறு.
$ join suppliers products


split Command

Split-ஆனது ஒரு மிகப்பெரிய file-ஐ சிறு சிறு பகுதிகளாகப் பிரிக்க உதவும்.

split -l என்பது ஒரு file-ல் உள்ள வரிகளின் எண்ணிக்கையின் அடிப்படையில் அதை சிறு சிறு பகுதிகளாகவும்,
split -b என்பது அந்த file-ன் அளவினை அடிப்படையாகக் கொண்டு, அதனை சிறு சிறு bytes கொண்ட file-ஆகவும் பிரிக்க உதவும்.

பின்வரும் உதாரணத்தில், 5 வரிகளை உள்ளடக்கிய lesson1 எனும் file-ஆனது இரண்டிரண்டு வரிகளை உள்ளடக்கிய சிறு சிறு file-களாக பிரிக்கப்படுவதைக் காணலாம். இது பின்வருமாறு.

$ split -l 2 lesson1 lsn_


இங்கு split -l என்பது வரிகளை மையமாகக் கொண்டு பிரிக்க வேண்டும் என்பதையும், 2 என்பது அந்த வரிகள் 2 தான் இருக்க வேண்டும் என்பதையும், பின்னர் எந்த file பிரிக்கப்பட வேண்டும் என்பதையும், கடைசியாக அவ்வாறு பிரிக்கப்படும் file-ன் தொடக்கம் எவ்வாறு அமைய வேண்டும் என்பதையும் குறிக்கிறது.




9

Link files பற்றிய விளக்கம்


Link file என்பது மற்றொரு file-ஐ குறிப்பிட்டு அதிலிருந்து தகவல்களைப் பெற உதவும் ஒரு சிறப்புவகை file ஆகும். ln command-ஆனது ஒரு link file-ஐ உருவாக்கப் பயன்படும். இது hard link மற்றும் soft link என இரு வகைப்படும்.


Soft Link


Soft link என்பது மற்றொரு file-ன் பெயரைக் குறிப்பிடுவதன் மூலம் அந்த file-வுடன் ஓர் இணைப்பை ஏற்படுத்துகிறது. எனவே soft link-மூலம் ஓர் இணைப்பு உருவாக்கப்படும்போது அதன் original file நீக்கப்பட்டுவிட்டதெனில், இந்த link file-ம் செயலிழந்துவிடும். இதனை symbolic link எனவும் கூறலாம்.

$ ln –s Names abc


இங்கு Names-எனும் file-க்கு abc எனும் பெயர்கொண்ட ஓர் soft link-உருவாக்கப்பட்டுள்ளது. எனவே cat abc என கொடுக்கும்போது, அது Names file-ன் content-ஐ வெளிப்படுத்துவதைக் காணலாம்.

மேலும் Names எனும் original file-ஐ நீக்கியபின்னர், இந்த abc எனும் link file-ம் செயலிழந்திருப்பதைக் காணலாம்.


Hard Link


Hard link என்பது ஒரு file-ன் inode எண்ணை பகிர்ந்துகொள்வதன் மூலம், அந்த file-வுடன் இணைப்பை ஏற்படுத்துகிறது. எனவே original file நீக்கப்பட்டுவிட்டாலும், இந்த link file நிலைபெற்றிருக்கும்.

$ ln LKG xyz


இங்கு LKG-எனும் file-க்கு xyz எனும் பெயர்கொண்ட ஒரு hard link உருவாக்கப்பட்டுள்ளது. இந்த LKG எனும் file நீக்கப்பட்டு விட்ட பின்னரும் கூட xyz எனும் hardlink file நிலைபெற்றிருப்பதைக் காணலாம்.


Symbolic link files-ஐக் கண்டுபிடித்தல்


ஒரு file-க்கு உரிய symbolic links அனைத்தையும் கண்டுபிடிக்க find -lname எனும் command பயன்படும்.

$ find -lname ’BE’


இங்கு find command-ஆனது BE எனும் file-க்கு உரிய BE1, BE2, BE3 எனும் 3 symbolic links-ஐயும் கண்டுபிடித்து வெளிப்படுத்தியுள்ளது.


Hard link files-ஐக் கண்டுபிடித்தல்


ஒரு file-க்கு உரிய hard links அனைத்தையும் கண்டுபிடிக்க find -inum எனும் command பயன்படும். இங்கு file-ன் பெயரைக் குறிப்பிடுவதற்கு பதிலாக, அதன் inode எண்ணைக் குறிப்பிட வேண்டும். ஏனெனில், hard link-ல் உள்ள அனைத்து file-களும் ஒரே inode எண்ணைப் பகிர்ந்து கொள்வதால், இதனைக் குறிப்பிட்டால் மட்டும் போதுமானது.


$ find -inum 1577115


இங்கு find command-ஆனது MBA எனும் file-க்கு உரிய MBA1, MBA2, MBA3 எனும் 3 hard links-ஐயும் கண்டுபிடித்து வெளிப்படுத்தியுள்ளது.




10

vim editor


Vi iMproved என்பதன் குறுகிய பதமே vim என்பதாகும். இது ஒரு file-ஐ உருவாக்கி அதற்குள் தகவல்களை சேமிப்பதற்கும், ஏற்கனவே இருக்கும் file-ல் நமக்கு வேண்டிய திருத்தங்களை செய்வதற்கும் பயனர்களை அனுமதிக்கிறது.


vim மூலம் ஒரு புதிய file-ஐ உருவாக்குதல்


பின்வரும் command-ஆனது vi மூலம் ஒரு புதிய file-ஐ உருவாக்குகிறது.

$ vim animals
(press) i
“Baa, Baa,” says The Sheep.
“Bow, Wow,” says The Dog.
“Mew, Mew,” says The Cat.
“Caw, Caw,” says The Crow.
(press) Esc:wq
(press) Enter

இங்கு vim animals என்று கொடுக்கும்போது ‘animals’ எனும் பெயர்கொண்ட ஒரு file உருவாக்கப்படும். பின்னர் i எனும் எழுத்தை keyboard-ல் அழுத்தும் போது இந்த file-ஆனது insert mode-க்கு மாற்றப்படும். இதைத்தொடர்ந்து கொடுக்கப்பட்டுள்ள அடுத்தடுத்த 4 வரிகள் அனைத்தும் இந்த file-ன் content-ஆக செலுத்தப்படும். கடைசியாக நாம் ‘Esc’ button ஐ keyboard-ல் அழுத்திய பின்னர் :wq என்று கொடுக்கும்போது, w என்பது ‘write’ எனவும், q என்பது ‘quite’ எனவும் பொருள்கொள்ளப்படுவதன் மூலம் இந்த file சேமிக்கப்படும். கடைசியாக enter-ஐ அழுத்தும்போது இந்த முடிவடையும்.


vim மூலம் ஒரு file-ஐ modifyசெய்தல்


தற்போது நாம் உருவாக்கியுள்ள animals எனும் file-ல் 4 வரிகள் உள்ளன. இப்போது நாம் ஐந்தாவதாக ஒரு வரியை இந்த file-ல் சேர்க்க விரும்பினால், அதற்கான command பின்வருமாறு அமையும்.

$ vim animals
(press) i
“Quack, Quack,” says The Duck.
(press) Esc
(press) Esc:wq

இங்கு animals எனும் file ஆனது vim மூலம் open செய்யப்படும்போது, அது command mode-ல் open செய்யப்படும் . இங்கு நாம் எதையும் புதிதாக சேர்க்க முடியாது. எனவே open செய்யப்படும் file-ஐ edit mode-க்கு மாற்றுவதற்காக i எனும் எழுத்து அழுத்தப்படுகிறது. பின்னர் நமக்கு வேண்டிய இடத்தில் புதிய வரியானது இணைக்கப்படுகிறது. அடுத்ததாக ESC என்று அழுத்தும்போது file-ஆனது மீண்டும் command mode-க்கே செல்லுகிறது.

கடைசியாக இந்த file-ஐ அதில் செய்யப்பட்டுள்ள மாற்றங்களுடன் சேர்த்து சேமிப்பதற்காக ESC:wq என்பது அழுத்தப்படுகிறது.


இந்த file-ல் நீங்கள் செய்த மாற்றங்கள் சேமிக்கப்பட வேண்டாம் என்று விரும்பினால் ESC:q! என்பதை அழுத்தவும். இது நாம் செய்த புதிய மாற்றங்களை நீக்கிவிட்டு file-ஐ பழையபடியே சேமிக்க உதவுகிறது.


vim-ல் cursor-ன் இடப்பெயர்ச்சி


ஒரு file ஆனது vim மூலம் open செய்யப்படும்போது, அது command mode-ல் தான் open ஆகும். இவ்வாறு ஒரு file-ஆனது command mode-ல் இருக்கும்போது நாம் 1G என்று keyboard-ல் அழுத்தினால், அது file-ன் முதல் வரிக்குச் செல்லும். 5G என்று அழுத்தினால், அது file-ன் 5வது வரிக்குச் செல்லும். வெறும் G என்று அழுத்தினால், அது file-ன் இறுதி வரிக்குச் செல்லும். மேலும் $ எனும் குறியை keyboard-ல் அழுத்தினால் cursor எந்த வரியில் உள்ளதோ அந்த வரியின் இறுதிக்குச் செல்லும். அவ்வாறே ^ எனும் குறியை அழுத்தினால் cursor எந்த வரியில் உள்ளதோ அந்த வரியின் தொடக்கத்துக்குச் செல்லும். இது பின்வருமாறு.

$ vim lines.txt
(press) 1G
(press) 5G
(press) G
(press) ^
(press) $
(press) Esc:q

இங்கு கடைசியாக ‘Esc’ button ஐ keyboard-ல் அழுத்திய பின்னர் :q எனக்கொடுத்து file-ஐ close செய்திருப்பதைக் காணலாம். வெறும் command mode-ல் வேலை செய்து விட்டு file-ஐ நாம் close செய்யும்போது ESC:q எனக்கொடுத்தால் போதுமானது. இங்கு ESC:wq எனவோ அல்லது ESC:q! எனவோ கொடுக்கத் தேவையில்லை என்பதை நினைவில் கொள்ளவும்.


vim மூலம் file-ல் உள்ள வரிகளுக்கு எண்ணிடல்


ஒரு file-ல் உள்ள வரிகள் அனைத்துக்கும் தொடர்ச்சியான எண்களால் எண்ணிட விரும்பினால் file-ஆனது command mode-ல் இருக்கும்போது :set nu என type செய்துவிட்டு enter-ஐ அழுத்தவும். இது file-ல் உள்ள வரிகள் அனைத்தையும் தொடர்ச்சியான எண்களால் எண்ணிட்டு வெளிப்படுத்தும்.

இவ்வாறு வெளிப்படுத்தப்பட்ட எண்களை மீண்டும் file-லிலிருந்து நீக்க விரும்பினால் :set nonu எனக் கொடுத்து enter-ஐ அழுத்தினால் போதுமானது.

இது பின்வருமாறு.

$ vim lines.txt
:set nu (press enter)
:set nonu (press enter)
(press) Esc:q


vim-ல் Cut, Copy, Paste செய்ய உதவுபவை


ஒரு file-ஐ vim கொண்டு open செய்தபின்னர் எந்த வரியை copy செய்ய வேண்டுமோ அந்த வரி மீது cursor-ஐ வைத்துவிட்டு, yy என்று அழுத்தவும். இது அந்த வரியை copy செய்ய உதவும். நீங்கள் அந்த வரியை cut செய்ய விரும்பினால் dd என்று அழுத்தவும். பின்பு எங்கு நீங்கள் அந்த வரியை paste செய்ய விரும்புகிறீர்களோ, அங்கு cursor-ஐ கொண்டு சென்று p என்று அழுத்தவும். இது அந்த வரியை paste செய்துவிடும்.


$ vim animals
(press) yy
(press) p
(press) dd
(press) p
(press) Esc:wq

இங்கு நாம் file-ல் புதிதாக ஒருசில வரிகளை இணைத்துள்ளதால் ESC:wq என்பதை அழுத்தவும். இது நமது file-ஐ நாம் செய்த மாற்றங்களுடன் சேர்த்து சேமிக்க உதவும்.

அடுத்ததாக ஒன்றுக்கும் மேற்பட்ட வரிகளை நாம் ஒரே நேரத்தில் copy செய்ய விரும்பினால், file-ஐ vim-ல் open செய்தபின்னர், :1,4yஎன type செய்யவும். இது முதல் 4 வரிகளை copy செய்ய உதவும். இதே போன்றே நீங்கள் முதல் 4 வரிகளை cut செய்ய விரும்பினால் :1,4d எனக் கொடுக்கவும். இது முதல் 4 வரிகளை cut செய்ய உதவும். அடுத்ததாக ‘ESC’ button-ஐ keyboard-ல் அழுத்தவும். இது file-ஐ மீண்டும் command mode-க்கு கொண்டு செல்லும். பின்பு எங்கு நீங்கள் அந்த வரியை paste செய்ய விரும்புகிறீர்களோ, அங்கு cursor-ஐ கொண்டு சென்று p என அழுத்தவும். இது அந்த வரியை paste செய்துவிடும்.

$ vim animals
:1,4 y
(press) Esc
(press) p
:1,4 d
(press) Esc
(press) p
(press) Esc:wq


vim-ல் Find and Replace செய்தல்

Find and Replace பற்றி சுலபமாக அறிந்து கொள்ள பின்வருமாறு ஒரு file-ஐ உருவாக்குக.

$ vim Introduction
(press) i
His Name is Nithya.
This is his dress.
I just want to be his friend.
(press) Esc:wq


இந்த file-ல் நித்யா எனும் ஒரு பெண்ணைப் பற்றிக் குறிப்பிடும்போதெல்லாம் her என்று குறிப்பிடாமல் his என்று தவறுதலாகக் குறிப்பிட்டுள்ளோம். எனவே இந்த his எனும் பதத்தை her எனும் பதமால் மாற்றுவதற்கு file-ஐ vim மூலம் open செய்க. பின்னர் his-ஐ her-ஆல் substitute செய்க எனக் குறிப்பிடும் வகையில் :%s/his/her என type செய்யவும். இதில் %s என்பது substitute எனவும், அதைத்தொடர்ந்து வரும் வார்த்தை replace செய்யப்பட வேண்டிய வார்த்தையாகவும், அதைத் தொடர்வது replace செய்யும் வார்த்தையாகவும் பொருள் கொள்ளப்படும். இது பின்வருமாறு.

$ vim Introduction
:%s/his/her
(press) Enter
(press) :wq


இவ்வாறு நாம் செய்யும்போது, file-ன் கடைசி வரியில் இருக்கும் his எனும் வார்த்தை மட்டும் her எனும் வார்த்தையால் திருத்தி அமைக்கப்பட்டிருப்பதைக் காணலாம்.


இந்தத் திருத்தம் file முழுவதும் நிகழ வேண்டுமெனில், /g எனும் எழுத்தை அந்த command-வுடன் இணைத்துக் கொடுக்கவும். இங்கு g என்பது global occurrence எனப் பொருள்படும். இது பின்வருமாறு.

$ vim Introduction
:%s/his/her/g
(press) Enter
(press) :wq!




11

Pipes and Filters


wc command

wc எனும் command-க்கு argument-ஆக ஒரு file-ஐக் கொடுக்கும்போது, அது அந்த file-ல் உள்ள சொற்கள், வரிகள்மற்றும் எழுத்துக்களின் எண்ணிக்கையை வெளிப்படுத்தும். இதே போன்று

wc –l என்பது வெறும் வரிகளின் எண்ணிக்கையையும்,
wc –w என்பது வெறும் சொற்களின் எண்ணிக்கையையும்,
wc –c என்பது வெறும் எழுத்துக்களின் எண்ணிக்கையையும்

தனித்தனியே வெளிப்படுத்துகின்றன. இது பின்வருமாறு.

$ wc lines.txt
$ wc -l lines.txt
$ wc -w lines.txt
$ wc -c lines.txt


head & tail command

இயல்பாகவே head எனும் command-க்கு argument-ஆக ஒரு file-ஐக் கொடுக்கும்போது, அது அந்த file-ல் இருந்து முதல் 10 வரிகளை வெளிப்படுத்தும். அவ்வாறே tail command-ம் கடைசி 10 வரிகளை வெளிப்படுத்த உதவும்.
இதில் நாம் குறிப்பிட்ட எண்ணிக்கையிலான வரிகளை இந்த command வெளிப்படுத்த வேண்டும் என்று விரும்பினால், அந்த எண்ணிக்கையை இந்த command-ன் option-ஆக அமைத்துக் கொடுக்க வேண்டும். அதாவது head -5 என்பது முதல் 5 வரிகளையும், head -8 என்று command-ஐ அமைக்கும் போது அது முதல் 8 வரிகளையும் வெளிப்படுத்தும். இதே முறை tail command-க்கும் பொருந்தும். இது பின்வருமாறு.

$ head alphabets
$ tail alphabets


$ head -3 alphabets
$ tail -5 alphabets


pipe command


ஒரு command-ன் output-ஐ மற்றொரு command-க்கு input-ஆக செலுத்த, இந்த pipe command பயன்படுகிறது. இதனை | எனும் குறியால் குறிக்கலாம். உதாரணத்துக்கு alphabets எனும் file-ன் output-ஐ head -7 எனும் command-க்கு input-ஆக செலுத்துவதன் மூலம் முதல் 7 வரிகள் வெளிப்படுவதைக் காணலாம்.

$ cat alphabets | head -7


அடுத்ததாக இவ்வாறு வெளிப்பட்ட முதல் 7 வரிகள் மீண்டும் input-ஆக tail -3 command-க்கு input-ஆக செலுத்தப்படுவதால் அந்த முதல் 7 வரிகளில் கடைசி 3 வரி மட்டும் வெளிப்படுவதைக் காணலாம்.

$ cat alphabets | head -7 | tail -3


grep command


grep command-ஆனது ஒரே மாதிரியான pattern-ல் இருக்கும் வரிகளை ஒரு file-லிலிருந்து கண்டுபிடித்து வெளிப்படுத்த உதவுகிறது. உதாரணத்துக்கு apple எனும் வார்த்தையை வெவ்வேறு pattern-ல் பின்வருமாறு ஒரு file-ல் சேமிக்கவும்.

$ vim fruits
(press) i
apple
APPLE
Apple
I like apple
I am here
Apple for me
(press)Esc:wq


இப்போது நீங்கள் apple எனும் வார்த்தையைப் பெற்றிருக்கும் வரிகளை மட்டும் பார்க்கவிரும்பினால் grep apple எனக் கொடுக்கவும். இது capital lettersல் இருக்கும் Apple-ஐ வெளிப்படுத்தாது. அப்படி நீங்கள் capital letters-ல் இருக்கும் வார்த்தையையும் சேர்த்து இந்த grep command வெளிப்படுத்த வேண்டும் என்று விரும்பினால் grep –i apple எனக் கொடுக்க வேண்டும். இது பின்வருமாறு.

$ cat fruits | grep apple
$ cat fruits | grep -i apple


அடுத்ததாக இந்த apple எனும் வார்த்தையை பெற்றிருக்கும் வரிகளைத் தவிர மற்ற வரிகளை நீங்கள் பார்க்க விரும்பினால் grep –v apple எனக் கொடுக்கவும். ஆனால் இது capital letters-ல் இருக்கும் வார்த்தையை வெளிப்படுத்தும். இதையும் சேர்த்து நீங்கள் தவிர்க்க விரும்பினால் grep –iv apple எனக் கொடுக்கவும். இது பின்வருமாறு.

$ cat fruits.txt | grep -v apple
$ cat fruits.txt | grep -iv apple


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

grep –i ^apple

எனவும், அதேபோன்று apple எனும் வார்த்தையில் முடியும் வரிகளை வெளிப்படுத்துவதற்கு

grep –i apple$

எனவும் command-ஐ அமைக்கலாம். மேலும் வெறும் apple-ஐ மட்டும் கொண்டிருக்கும் வரியை வெளிப்படுத்துவதற்கு

grep –i ^apple$

என அமைக்கலாம். இது பின்வருமாறு.

$ cat fruits.txt | grep -i ^apple
$ cat fruits.txt | grep -i apple$
$ cat fruits.txt | grep -i ^apple$


ஒரு directory-ல் உள்ள அனைத்து file களிலும் உள்ளே சென்று apple எனும் வார்த்தை உள்ளதா எனத் தேடுவதற்கான command பின்வருமாறு அமையும்.

$ grep -r apple *

இங்கு –r என்பது recursive என்பதைக் குறிக்கும். அதாவது அந்த directory-ன் sub-directory-களிலும் சேர்த்து apple எனும் வார்த்தையைத் தேடும்.

இந்த ^,$,*,? குறியீடுகள் regular expressions குறிகள் ஆகும்.


cut Command


Cut command-ஆனது ஒரு file-ல் உள்ள வரிகளை ஏதேனும் ஒரு delimiter-ஐ கணக்கில் கொண்டு தனித்தனி fields-ஆகப் பிரித்து வெளிப்படுத்த உதவுகிறது. உதாரணத்துக்கு பின்வருமாறு ஒரு file-ஐ உருவாக்கவும்.

$ vim Companies
(press) i
Cognizant Technology Solutions
Tata Consultancy Services
Infosys Technologies Limited
(press)Esc:wq


இப்போது நீங்கள் வெறும் Cognizant, Tata, Infosys என்பது போன்ற முதல் வார்த்தையை மட்டும் பெற விரும்பினால் இந்த cut command-ஐப் பயன்படுத்தலாம். அதாவது இடைவெளிகளை மையமாகக் கொண்டு வார்த்தைகளைப் பிரிப்பதற்கு cut –d “ “ எனக் கொடுக்கவேண்டும். இங்கு –d என்பது delimiter-ஆகவும் double quotes “ “ -க்குள் ஒன்றுமே கொடுக்காமல் இருப்பதால் அது இடைவெளியாகவும் கணக்கில் கொள்ளப்பட்டு வார்த்தைகள் பிரிக்கப்படும்.

பின்னர் –f1,1 எனும்போது முதல்வரியின் முதல் வார்த்தையும், -f2,2 இரண்டாவது வரியின் இரண்டாவது வார்த்தையும் குறிப்பிடப்படுகிறது. இது பின்வருமாறு.


$ cat Companies | cut -d “ “ -f1,1
$ cat Companies | cut -d “ “ –f2,2
$ cat Companies | cut -d “ “ –f3,3


Wild card patterns


இது ஒரே மாதிரியான pattern-ல் இருக்கும் files-ஐக் கண்டுபிடிக்க உதவுகிறது. Asterisk(*) மற்றும் Question mark (?) எனும் 2 வகையான wildcard characters-ஐ நமது தேவைக்கேற்ப நாம் பயன்படுத்தலாம்.

உதாரணத்துக்கு KG எனும் எழுத்தில் முடியும் அனைத்து file-களையும் பட்டியலிட * character-ஐப் பயன்படுத்தலாம்.

$ ls *KG


அடுத்தபடியாக ஒரே ஒரு எழுத்தில் தொடங்கி KG எனும் எழுத்தில் முடியும் file-களை மட்டும் பட்டியலிட ? character-ஐப் பயன்படுத்தலாம்.

$ ls ?KG


மேலும் 2 முறை ? ஐப் பயன்படுத்தினால், அவை 2 எழுத்துக்களை மட்டும் replace செய்வதைக் காணலாம்.

$ ls ??KG


கடைசியாக ஒரு வரிசைக்குள் பொருந்தும் file-களை மட்டும் பட்டியலிட set []-ஐப் பயன்படுத்தலாம். மேலும் இந்த set-க்குள் அமையாத file-களை மட்டும் பட்டியலிட ^ குறியானது பயன்படுத்தப்படுகிறது.

$ ls [0-5]*

இது 0,1,2,3,4,5 ல் தொடங்கும் file களை தருகிறது.


$ ls [^0-5]*

இது 0,1,2,3,4,5 தவிர பிற எழுத்துகளில் தொடங்கும் file களை தருகிறது.


Less Command

ஒரு சில பெரிய அளவிலான files-ஐ terminal-ல் முழுவதுமாக பார்க்க முடியாது. எனவே அவற்றை சிறு சிறு பகுதிகளாக பிரித்துப் பார்ப்பதற்கு less command பயன்படும்.
$ man ls | less

பின்னர் down arrow mark-ஐ அழுத்துவதன் மூலம் அதன் அடுத்தடுத்த வரிகளுக்குச் செல்லலாம்.
கடைசியாக q எனும் எழுத்தை அழுத்தி, இதனை close செய்யலாம்.
இது file களை படிப்பதற்கும் உதவுகிறது.
less
என தந்து பெரிய file களை எளிதில் படிக்கலாம்.


Sort Command


ஒரு file-ல் உள்ளவற்றை alphabetical முறைப்படி வரிசைப்படுத்தி வெளிப்படுத்த இந்த sort command பயன்படுகிறது.
உதாரணத்துக்கு பின்வருமாறு ‘lesson’ எனும் ஒரு file-ஐ உருவாக்கவும்.

பின்னர் அதை sort command கொண்டு execute செய்யும் போது, அந்த file-ல் உள்ள வரிகள் அனைத்தும் முறைப்படுத்தப் பட்டிருப்பதைக் காணலாம்.
$ sort lesson


Uniq command

ஒரு file-ல் ஒருசில வரிகள் ஒன்றுக்கும் மேற்பட்ட இடத்தில் இடம்பெற்றிறுப்பின், அவற்றைக் கண்டுபிடிக்க இந்த uniq command பயன்படுகிறது.
மேலும்
uniq –u என்பது ஒருமுறை மட்டுமே இடம்பெற்ற (uniq) வரிகளையும், uniq -d என்பது பலமுறை இடம்பெற்ற (duplicates) வரிகளையும் வெளிப்படுத்துகிறது.

அவ்வாறே uniq –c என்பது ஒவ்வொரு வார்த்தையும் எத்தனை முறை இடம்பெற்றுள்ளது எனும் விவரத்தை அளிக்கிறது.


expand command

பொதுவாக நாம் file-ல் tab key-ஐ அழுத்தும்போது தொடர்ச்சியாக 8 இடைவெளிகள் விடப்படும். இவ்வாறாக tab key-ஆல் விடப்படும் இடைவெளிகளின் எண்ணிக்கையை கூட்டவோ குறைக்கவோ இந்த expand command பயன்படும்.
உதாரணத்துக்கு நாம் உருவாக்கிய lesson எனும் file-ல், ஒவ்வொரு வரியின் தொடக்கத்திலும் tab key-ஐ அழுத்தி பின்வருமாறு மாற்றி அமைக்கவும்.

பின்னர் expand command-ஐப் பயன்படுத்தி, அந்த tab space-ன் அளவினை 3-ஆக மாற்றலாம்.
$ expand -3 lesson


fmt command

இது ஒரு file-ஐ ஒழுங்காக வடிவமைக்கப் பயன்படுகிறது.
உதாரணத்துக்கு
fmt -u என ஒரு file-ன் மீது கொடுக்கும்போது, அது file-ல் உள்ள வார்த்தைகளுக்கு நடுவே சீரான இடைவெளியைக் கொடுக்கிறது.
இங்கு u என்பது uniform spacing எனப் பொருள்படும். அதாவது வார்த்தைகளுக்கு நடுவே 1 இடைவெளியையும், வரிகளுக்கு நடுவே 2 இடைவெளிகளையும் அமைக்கிறது.
$ fmt -u lesson

பொதுவாக ஒரு file-ல் உள்ள ஒவ்வொரு வரியும், 75 எழுத்துக்கள் நீளம் வரை தாங்கும் அளவுக்கு அமைக்கப்பட்டிருக்கும். இந்த width-ஐ நீங்கள் 50 எழுத்துக்கள் நீளம் கொண்டதாக மாற்ற விரும்பினால், fmt -w எனக் கொடுத்து மாற்றலாம். இங்கு w என்பது width எனப் பொருள்படும். பின்வரும் 2 command-ம் ஒரே பொருள் தரும்.
$ fmt -w 50 lesson
$ fmt -50 lesson


GUI-லிருந்து CLI-க்கு தொடர்பு கொள்ளல்

Ctrl+Alt+F1 என அழுத்துவதன் மூலம் நாம் GUI (Graphical User Interface) -லிருந்து CLI (Command LIne Interface)-க்கு தொடர்பு கொள்ளலாம்.

அவ்வாறே முறையே Ctrl+Alt+F2, Ctrl+Alt+F3 ….. Ctrl+Alt+F6 வரை அழுத்துவதன் மூலம் நாம் வெவ்வேறு 6 virtual terminals-ஐ உருவாக்க முடியும்.
கடைசியாக Ctrl+Alt+F7 என்பதானது நம்மை மீண்டும் GUI-க்கே கொண்டு செல்லும்.




12

File Permissions


chmod Command


chmod Command-ஆனது ஒரு file-ன் மீது ஒருவருக்கு இருக்கும் அனுமதிகளை மாற்றி அமைக்கப் பயன்படுகிறது.

பொதுவாக ஒரு file-ஐ நாம் படிக்கலாம்(read), அதில் ஏதேனும் எழுதலாம்(write) மற்றும் அது ஒர் script file-ஆக இருப்பின், அதனை execute செய்யலாம்.

எனவே இத்தகைய read,write மற்றும் execute என்பவையே, ஒரு file-ன் மீது ஒரு நபருக்கு வழங்கப்படும் 3 வகையான அனுமதிகள். மேலும், இத்தகைய 3 வகையான அனுமதிகளும், அனைவருக்கும் ஒரே மாதிரியாக இருப்பது இல்லை.

உதாரணத்துக்கு, Companies எனும் file-ன் மீது யார் யாருக்கு என்னென்ன அனுமதிகள் உள்ளன என்பதைத் தெரிந்து கொள்ள,

$ ls -lt Companies
எனக் கொடுக்கவும்.


இதன் output-ல் முதலில் உள்ள hyphen(-) எனும் குறியீடு இது ஒரு file என்பதைக் குறிக்கிறது. -d என இருந்தால் அது directory ஆகும்.

இதைத் தொடர்ந்து வரும் முதல் 3 எழுத்துக்கள் (rw-) user-க்கு உரிய அனுமதிகளைக் குறிக்கிறது. அதாவது இந்த file-ஐ உருவாக்கும் நபர், user-ன் கீழ் வருவார்.

அடுத்து உள்ள 3-ம் (rw-) group-க்கான அனுமதிகளைக் குறிக்கிறது. அதாவது இந்த file-ஐ உருவாக்கியவர், யார் யாரெல்லாம் இந்த file-ஐ அணுகலாம் எனும் ஒரு group பட்டியலை உருவாக்குவார். இந்தப் பட்டியலில் இடம்பெரும் அனைவரும் group-ன் கீழ் வருவார்.

கடைசி 3 எழுத்துக்களும் (r–) others-க்கான அனுமதிகளைக் குறிக்கிறது. இவை எதிலும் இடம் பெறாத மற்றவர்கள் அனைவரும் others-ன் கீழ் வருவார்.

எனவே இப்போது group-ல் உள்ள அனைவருக்கும், execute permission-ஐ அளிக்க விரும்பினால்,

$ chmod g+x Companies
எனக் கொடுக்கவும்.


அவ்வாறே o+x என்பது others-க்கும், u+x என்பது user-க்கும் execute permission-ஐ அளிக்கும். இது பின்வருமாறு.


அடுத்ததாக அனைவருக்கும் read மற்றும் write permission-ஐக் கொடுக்க விரும்பினால்,

$ chmod a+rw Companies
எனக் கொடுக்கவும். இங்கு a என்பது all என்பதைக் குறிக்கும்.


இவ்வாறு யார் யாருக்கு என்னென்ன permissions வழங்கலாம் என்பதை இந்த chmod command மூலம் முடிவு செய்யலாம்.

[to check – add numerical details here ]


Preserving permissions

பொதுவாக ஒரு file-ஆனது copy செய்யப்படும்போது, அந்த file-க்குரிய permissions அனைத்தும் copy செய்யப்படாது. அவ்வாறு நீங்கள் copy செய்ய விரும்பினால், -p எனும் option-ஐcopy command-வுடன் பயன்படுத்தவும். இதுவே preserving permissions எனப்படும்.

$ cp -p Companies Company1


Sticky Permission(chmod +t)


Sticky என்பது ஒரு directory-க்கு வழங்கப்படும் சிறப்பு வகை அனுமதி ஆகும். இத்தகைய அனுமதி பெற்ற ஒரு directory-ல், files-ஐ போடுவதற்கு எல்லோருக்கும் அனுமதி இருக்கும். ஆனால் files-ஐ நீக்குவதற்கு அதன் owner-க்கு மட்டுமே அனுமதி இருக்கும்.

உதாரணத்துக்கு tmp எனும் directory-க்கு sticky permission-ஐ கொடுக்க பின்வரும் command பயன்படும்.

$ chmod +t /tmp


மேலும் இந்த directory-க்கு, sticky permission கொடுக்கப்பட்டுவிட்டதா
என்பதை பின்வருமாறு தெரிந்து கொள்ளலாம்.

$ ls –l /tmp


இதன் output-ன் முதல் வரியின் தொடக்கத்தில் d rwx rwx rwt என்று உள்ளது. அதாவது others-க்கான permissions இருக்கும் இடத்தில் rwt என்று இருப்பதை கவனிக்கவும். இங்கு t எனும் எழுத்து sticky permission இருப்பதைக் குறிக்கிறது.


Setuid Permission(chmod u+s)


setuid (set user-id) என்பது ஒரு command/file-க்கு வழங்கப்படும் சிறப்பு வகை அனுமதி ஆகும். இத்தகைய அனுமதி பெற்ற ஒரு command/file-ஐ எந்த user இயக்கினாலும் அவர் root user-ஆகக் கருதப்படுவார்.

உதாரணத்துக்கு passwd எனும் command-ஐ பயன்படுத்தி ஒரு user அவருடைய password-ஐ மாற்றுபோது, அது /etc/shadow எனும் file-ல் எழுதப்படும். ஆனால், இந்த shadow file-ல் எழுதுவதற்கு root user-க்கு மட்டுமே அனுமதி இருக்கும். மற்றவர்களுக்கு அனுமதி கிடையாது.

எனவே இந்த passwd command-ஐ இயக்கும் ஒவ்வொரு user-ம் root user-ஆகக் கருதப்பட, அந்த command-க்கு setuid எனும் சிறப்புவகை permission கொடுக்க வேண்டும், இது பின்வருமாறு.

$ chmod u+s /usr/bin/passwd


மேலும் இந்த command-க்கு, setuid permission கொடுக்கப்பட்டுவிட்டதா
என்பதை பின்வருமாறு தெரிந்து கொள்ளலாம்.

$ ls –l /usr/bin/passwd


இதன் output-ல் – rws r-x r-t என்று உள்ளது. அதாவது users-க்கான permissions இருக்கும் இடத்தில் rws என்று இருப்பதை கவனிக்கவும். இங்கு s எனும் எழுத்து setuid permission இருப்பதைக் குறிக்கிறது.


Setgid Permission(chmod g+s)


setgid (set group-id) என்பது setuid- ஐப் போன்றே செயல்பட வல்லது. ஆனால் user-க்கு பதிலாக group-க்கு அவ்வகை சிறப்பு permission-களை அளிக்கும். உதாரணத்துக்கு projects எனும் directory-க்கு, setgid permission- ஐக் கொடுக்க, command-ஐ பின்வருமாறு அமைக்கவும்.

$ chmod g+s ~/school/sub

மேலும் இந்த directory-க்கு, setgid permission கொடுக்கப்பட்டுவிட்டதா
என்பதை பின்வருமாறு தெரிந்து கொள்ளலாம்.

$ ls –l ~/school | grep sub


இதன் output-ல் d rwx rws r-x என்று உள்ளது. அதாவது group-க்கான permissions இருக்கும் இடத்தில் rws என்று இருப்பதை கவனிக்கவும். இங்கு s எனும் எழுத்து setgid permission இருப்பதைக் குறிக்கிறது.




13

மேலும் சில commands


mailx command


ஒருவருக்கு மின்னஞ்சல் அனுப்ப இந்த mailx command பயன்படுகிறது. உதாரணத்துக்கு பின்வரும் முதல் command-ஆனது Companies எனும் file-ஐ nithyadurai87@gmail.com எனும் மின்னஞ்சல் முகவரிக்கு அனுப்புகிறது.

அடுத்ததாக உள்ள command, Test mail எனும் subject-வுடன் சேர்த்து மின்னஞ்சல் செய்கிறது.

கடைசியாக உள்ள command-ஆனது CC-யில் tshrinivasan@gmail.com எனும் நபரை வைத்து மின்னஞ்சல் செய்கிறது.

$ cat Companies | mailx nithya.duraisamy@cognizant.com
$ cat longfile.txt | mailx -s “Test mail” nithya.duraisamy@cognizant.com

$ cat longfile.txt | mailx -s “Test mail” nithya.duraisamy@cognizant.com -c tshrinivasan.gmail.com


find command


இது ஒரு file-ஐயோ அல்லது directory-ஐயோ ஒரு குறிப்பிட்ட பகுதியில் தேடப் பயன்படுகிறது. உதாரணத்துக்கு பின்வரும் முதல் command-ஆனது introduction எனும் file-ஐ /home/nithya/school எனும் பகுதியில் தேடுகிறது.

அடுத்ததாக உள்ள command-ஆனது –type f என்பதன் மூலம் தேடப்படுவது ஒரு file எனும் கூடுதல் விவரத்தை அளிக்கிறது.

அவ்வாறே கடைசியாக உள்ள command-ல் –type d என்பது தேடப்படுவது ஒரு directory என்பதைக் குறிக்கிறது.

$ find /home/nithya/school -name introduction
$ find /home/nithya/school -name introduction -type f
$ find /home/nithya/school -name smalldir -type d


xargs command

xargs-ஆனது பொதுவாக find command-வுடன் pipe செய்யப்பட்டு பயன்படுத்தப்படும். இவ்வாறு pipe -ஐத் தொடர்ந்து வரும் xargs-ஆனது, வெளிப்படுத்தப்பட்ட output files-ஐ வைத்து அடுத்தபடியாக என்ன வேலை செய்ய வேண்டும் என்பதைக் குறிக்கிறது.

உதாரணத்துக்கு பின்வரும் command-ல் xargs-ஆனது find மூலம் வெளிப்படுத்தப்பட்ட files அனைத்தையும் அழிக்கும் வேலையைச் செய்கிறது.

$ find /home/nithya/school/ -name *.txt | xargs rm


tee command

tee -ஆனது ஒரு command-ன் output-ஐ திரையில் வெளிப்படுத்தி, அதே சமயம் ஒரு file-க்குள்ளும் செலுத்த உதவுகிறது. இது பின்வருமாறு.

$ echo “I Love Kanchipuram” | tee places


tar command


இது ஒன்றுக்கும் மேற்பட்ட file-களை ஒன்றாக இணைத்து ஒரு புதிய package-ஐ உருவாக்கப் பயன்படுகிறது. உதாரணத்துக்கு animals, language1, tamil எனும் 3 files-ஐ ஒன்றாக இணைத்து பின்வருமாறு backup எனும் ஒரு tar file-ஐ உருவாக்கலாம். இங்கு –cvf என்பது compress verify files என்பதைக் குறிக்கும்.

$ tar -cvf backup.tar animals language1 tamil

பின்னர் இந்த tar file-ஐ பிரித்து file-களைத் தனித்தனியே எடுக்க வேண்டும் என்றால், அதே tar command-ஐ –xvf எனும் option-வுடன் சேர்த்துப் பயன்படுத்தலாம். இங்கு xvf என்பது extract verify file என்பதைக் குறிக்கும்.

$ tar -xvf backup.tar


gzip & gunzip command


gzip command-ஆனது ஒரு tar file-ஐ zip file-ஆக மாற்றப் பயன்படுகிறது. இவ்வாறு செய்வதன் மூலம் tar file-ன் அளவு(size) குறைக்கப்படுகிறது. அவ்வாறே zip செய்யப்பட்ட ஒரு tar file-ஐ மீண்டும் unzip செய்வதற்கு gunzip எனும் command பயன்படுகிறது. இது பின்வருமாறு.

$ gzip backup.tar
$ gunzip backup.tar




14

Jobs Control


Command line-ல் execute செய்யப்படும் ஒவ்வொரு command-ம் ஒரு job-ஆகக் கருதப்படும். இத்தகைய jobs-ஐ நாம் தற்காலிகமாக நிறுத்தி வைக்கவோ (suspend) அல்லது சிறிது நேரம் background-ல் ஓட விட்டு மீண்டும் அதனை foreground-க்கு கொண்டு வரவோ முடியும். இது பின்வருமாறு.


jobs command


Jobs எனும் command தற்காலிகமாக நிறுத்தி வைக்கப்பட்ட jobs-ஐயும், background-ல் ஓடிக்கொண்டிருக்கும் jobs-ஐயும் பட்டியலிடும் எனவே,

$ jobs

என command line-ல் type செய்து ஏதேனும் jobs, ‘suspend’ செய்யப்பட்ட நிலையிலோ அல்லது background-லோ ஓடிக்கொண்டோ இருக்கிறதா எனப் பார்க்கவும். இது எதுவும் பட்டியலிடவில்லை எனில், எந்த ஒரு job-ம் அத்தகைய நிலையில் இல்லை என்று அர்த்தம்.


Suspending Jobs

ஒரு job-ஐ தற்காலிகமாக நிறுத்தி வைப்பதே suspend எனப்படும். Ctrl+z என்பது ஒரு job-ஐ suspend செய்ய உதவும். எனவே

$ man sed
$ (press) Ctrl+z

என command line-ல் type செய்யவும். இது man sed எனும் command- ஐ தற்காலிகமாக நிறுத்தி வைக்கும். இப்போது மீண்டும் jobs என type செய்து பார்த்தீர்களானால், அது தற்போது suspend செய்யப்பட்ட command-ஐப் பட்டியலிடும்.


Background Processing


ஒரு command-ன் இறுதியில் & எனக் குறிப்பிடும்போது அந்த command–ஆனது background-ல் run செய்யப்படும். எனவே

$ xclock &

என command line-ல் type செய்யவும். இப்போது மீண்டும் Jobs என type செய்து, suspend செய்யப்பட்ட job எண்ணையும், background-ல் run செய்து கொண்டிருக்கும் job-ன் எண்ணையும் குறித்துக்கொள்ளவும்.


Foreground Processing


இப்போது எந்த job-ஐ நீங்கள் மீண்டும் foreground-க்கு கொண்டுவர விரும்புகிறீர்களோ, அந்த job-ன் எண்ணை –fg % ஐத் தொடர்ந்து கொடுக்கவும். அதாவது

$ fg %2

எனக் கொடுக்கும்போது இரண்டாவதாக suspend செய்யப்பட job, foreground-க்கு வந்துவிடும். கடைசியாக இதனை ctrl+c எனக்கொடுத்து close செய்து விடலாம்.


இதேபோன்று foreground-க்கு ஒவ்வொரு job-ஆக கொண்டு வந்து செய்து முடிக்கலாம்.