ආරම්භය
අපි මුලින්ම කතා කරමු Linux හැදුණු හැටි ගැන. 1970 දී Bell Laboratories හිදී Unix කියන Operating System එක release වෙනවා. මේ OS එක C programming language එක භාවිතා කරලා develop කරලා තියෙනවා.
ඊට පස්සේ 1987 දී MINIX කියන Unix-like OS එකක් release වෙනවා. Operating Systems ගැන ඉගෙනගන්න ශිෂ්යයන් වෙනුවෙන් නිර්මාණය කරපු මේ OS එකේ තිබුණු යම් යම් limitations නිසා බොහෝ දෙනා වෙනත් විකල්ප සොයන්න පටන් ගත්තා.
1991 දී Finland වලදී Linus Torvalds කියන ශිෂ්යයා තමන්ගේ Personal Computer එක වෙනුවෙන් තමන්ගේම Operating System Kernel එකක් develop කරන්න පටන් ගන්නවා.
මෙතනදී ප්රශ්නයක් එනවා නේද? Kernel එකක් කියන්නේ මොකක්ද?
සරලවම කිව්වොත් Kernel එකක් කියන්නේ Operating System එකක මූලික කොටසයි. Memory Management, Process Management, Device Management සහ File System Management වගේ මූලික කාර්යයන් හසුරවන්නේ Kernel එකෙන් තමයි. හරියට අපේ මොළය අපේ ශරීරයේ විවිධ පද්ධති පාලනය කරනවා වගේ.
ඉතින් Linus මේ Kernel එකට මුලින්ම Freax කියන නම දාන්න හිතාගෙන හිටියත්, පසුව Linux කියන නම භාවිතයට එනවා. මේ නම Linus සහ Unix කියන වචන දෙකේ එකතුවක් විදියට සැලකෙනවා.
ඊට පස්සේ 1991 සැප්තැම්බර් 17 වෙනිදා Linux Kernel එකේ පළමු Version එක වන Version 0.01 release කරනවා.
අපි කලින් කතා කළා වගේ Kernel එකක් විතරක් තිබුණා කියලා සම්පූර්ණ Operating System එකක් වෙන්නේ නැහැ. ඒ නිසා Richard Stallman ආරම්භ කරපු GNU Project එකේ Shells, Compilers සහ Libraries වැනි Components එකතු වීමෙන් සම්පූර්ණ Linux-based Operating Systems නිර්මාණය කරන්න පුළුවන් වුණා.
Linux Distributions
Kernel එකට අමතරව File System Tools, Package Managers, Desktop Environments සහ Drivers වැනි Components එකතු කරලා විවිධ අවශ්යතා සඳහා Linux-based Operating Systems නිර්මාණය කරනවා. මේවා Linux Distributions හෙවත් Distros කියලා හඳුන්වනවා.
එකිනෙකට වෙනස් Distros වල User Interface (UI), Built-in Applications සහ System Configuration වගේ දේවල් වෙනස් වෙන්න පුළුවන්.
ප්රධාන Linux Distribution Families තුනක් විදියට පහත ඒවා හඳුන්වා දෙන්න පුළුවන්.
- Red Hat — RHEL (1994)
- SUSE — SUSE Linux (1994)
- Debian — Debian (1993)
Red Hat
Red Hat Enterprise Linux (RHEL) කියන්නේ Enterprise-level Environments සඳහා නිර්මාණය කරපු Linux Distribution එකක්. Stable සහ Reliable Platform එකක් වගේම Commercial Support ලබාගන්නත් පුළුවන්.
Child Distribution Examples: Fedora, CentOS, AlmaLinux සහ Rocky Linux.
SUSE
SUSE කියන්නෙත් Enterprise-level Environments සඳහා Linux Solutions ලබාදෙන Distribution Family එකක්. විශේෂයෙන් Business සහ Enterprise Systems සඳහා SUSE Linux Enterprise Server (SLES) භාවිතා කරනවා.
Child Distribution Examples: openSUSE, GeckoLinux සහ SUSE Linux Enterprise Server (SLES).
Debian
Debian කියන්නේ Free සහ Open-source Linux Distribution එකක්. Stability, Reliability සහ විශාල Software Repository එකක් තිබීම නිසා ජනප්රියයි.
Child Distribution Examples: Ubuntu, Kali Linux සහ Linux Mint.
Linux File System
හරි, අපි ඊළඟට බලමු Linux File System එක හැදිලා තියෙන විදිය ගැන.
Linux වල විශේෂත්වයක් තමයි Open-source Nature එක. ඒත් Open-source වීම කියන්නේ හැම File එකකටම ඕනෑම User කෙනෙකුට Access තියෙනවා කියන එක නෙවෙයි. Linux වල File Permissions සහ User Privileges අනුව Files සහ Directories වලට Access ලැබෙනවා.
Root Directory (/)
/ කියන්නේ Linux File System එකේ ඉහළම Directory එකයි. File System එකේ අනෙකුත් Directories සහ Files සියල්ලම මේ Root Directory එක යටතේ සංවිධානය වෙලා තියෙනවා.
Linux Distribution එක සහ System Configuration එක අනුව Directories වල භාවිතයේ සුළු වෙනස්කම් තියෙන්න පුළුවන්.
දැන් අපි බලමු Root Directory එක යටතේ තියෙන ප්රධාන Directories සහ ඒවායේ භාවිතයන් මොනවාද කියලා.
/bin—ls,cp,mvවැනි මූලික System Commands අඩංගු Directory එක. නවීන Linux Systems වල මේක බොහෝවිට/usr/binසමඟ සම්බන්ධ කරලා තියෙනවා./boot— Operating System එක Boot වීමට අවශ්ය Kernel Files සහ Bootloader Files අඩංගු Directory එක./dev— Hardware Devices සහ වෙනත් System Devices නිරූපණය කරන Special Device Files අඩංගු Directory එක./etc— System Configuration Files අඩංගු Directory එක./home— සාමාන්ය Users ලාගේ Personal Directories අඩංගු Directory එක. උදාහරණයක් විදියට/home/username./lib— System Programs ක්රියාත්මක වීමට අවශ්ය Shared Libraries සහ සමහර System Files අඩංගු Directory එක. නවීන Systems වල මෙය බොහෝවිට/usr/libසමඟ සම්බන්ධ වෙනවා./media— USB Drives සහ වෙනත් Removable Media Mount කරන ස්ථානය./mnt— File Systems තාවකාලිකව Mount කිරීම සඳහා භාවිතා කරන Directory එක./opt— අමතර හෝ Third-party Software Packages ස්ථාපනය කිරීම සඳහා භාවිතා කරන Directory එක./proc— Kernel සහ Running Processes පිළිබඳ තොරතුරු Virtual File System එකක් හරහා පෙන්වන Directory එක./root— Root User ගේ Personal Home Directory එක./sbin— System Administration සඳහා භාවිතා කරන Commands අඩංගු Directory එක. නවීන Systems වල මෙය බොහෝවිට/usr/sbinසමඟ සම්බන්ධ වෙනවා./srv— Web Server වැනි System Services මඟින් ලබාදෙන Data ගබඩා කිරීමට භාවිතා කරන Directory එක./tmp— Temporary Files ගබඩා කරන Directory එක. මෙහි Files සමහර Systems වල Reboot වීමෙන් පසුව Delete වෙන්න පුළුවන්./usr— User Applications, Libraries සහ Documentation වැනි Files අඩංගු ප්රධාන Directory එකක්./var— Logs, Cache, Mail සහ වෙනත් නිතර වෙනස් වන Data අඩංගු Directory එක.
Basic Linux Commands
හරි, දැන් අපි Linux Commands පැත්තට එමු. Linux Terminal එක භාවිතා කරලා Files සහ Directories සමඟ වැඩ කරන්න අවශ්ය මූලික Commands කිහිපයක් ගැන බලමු.
cd — Change Directory
cd කියන්නේ Change Directory කියන එකයි. අපි දැනට ඉන්න Directory එක වෙනස් කරලා වෙනත් Directory එකකට යන්න මේ Command එක භාවිතා කරනවා.
උදාහරණයක් විදියට, අපි ඉන්නේ පහත Path එකේ කියලා හිතමු.
/home/nimal/downloads/movies/
දැන් අපිට marvel/captain america කියන Directory එකට යන්න ඕනේ නම් මෙහෙම Command එක ලබාදෙන්න පුළුවන්.
cd "marvel/captain america"
මෙතනදී marvel Directory එක ඇතුළේ තියෙන captain america Directory එකට Navigate වෙනවා.
දැනට ඉන්න Directory එකෙන් එක මට්ටමක් ඉහළට යන්න ඕනේ නම්:
cd ..
movies Directory එකේ ඉඳලා downloads Directory එකට කෙළින්ම යන්න:
cd ../../
ls — List Directory Contents
ls Command එකෙන් අපි දැනට ඉන්න Directory එකේ අඩංගු Files සහ Directories ලැයිස්තුව පෙන්වනවා.
ls
විස්තර සහිතව Files පෙන්වන්න:
ls -l
Hidden Files ඇතුළුව සියල්ල පෙන්වන්න:
ls -la
pwd — Print Working Directory
pwd Command එකෙන් අපි දැනට වැඩ කරමින් ඉන්න Directory එකේ සම්පූර්ණ Path එක පෙන්වනවා.
pwd
උදාහරණයක් විදියට Output එක මෙහෙම වෙන්න පුළුවන්.
/home/nimal/downloads/movies
cp — Copy Files
cp Command එකෙන් Files Copy කරගන්න පුළුවන්.
උදාහරණයක් විදියට, file.txt කියන File එක Documents Directory එකට Copy කරන්න:
cp file.txt /home/username/Documents/
Directory එකක් එහි ඇතුළත Files සමඟ Copy කරන්න -r Option එක භාවිතා කරන්න පුළුවන්.
cp -r movies /home/username/Documents/
mv — Move or Rename Files
mv Command එකෙන් Files සහ Directories වෙනත් ස්ථානයකට Move කරන්න හෝ ඒවායේ නම් වෙනස් කරන්න පුළුවන්.
File එකක නම වෙනස් කිරීම:
mv oldname.txt newname.txt
File එකක් වෙනත් Directory එකකට Move කිරීම:
mv file.txt /home/username/Documents/
rm — Remove Files
rm Command එකෙන් Files Delete කරන්න පුළුවන්.
rm file.txt
Directory එකක් සහ එහි අන්තර්ගතය Delete කිරීම සඳහා:
rm -r foldername
සැලකිලිමත් වන්න: rm Command එකෙන් Delete කරන Files සාමාන්යයෙන් Recycle Bin එකට යන්නේ නැහැ. ඒ නිසා Command එක ලබාදීමට පෙර Path එක සහ File Name එක නිවැරදිද කියලා පරීක්ෂා කරන්න.
cat — Display File Contents
cat Command එකෙන් Text File එකක අන්තර්ගතය Terminal එකේ පෙන්වන්න පුළුවන්.
cat notes.txt
මෙහිදී notes.txt File එකේ අන්තර්ගතය Terminal එකේ Display වෙනවා.
man — Manual Pages
man Command එකෙන් වෙනත් Linux Commands ගැන විස්තර සහ භාවිතා කරන ආකාරය ඉගෙනගන්න පුළුවන්.
උදාහරණයක් විදියට, ls Command එක ගැන Manual Page එක බලන්න:
man ls
grep — Search Text
grep Command එකෙන් File එකක නිශ්චිත වචනයක් හෝ Text Pattern එකක් අඩංගු Lines සොයාගන්න පුළුවන්.
grep "error" log.txt
මෙහිදී log.txt File එකේ error කියන වචනය අඩංගු Lines පෙන්වනවා.
mkdir — Make Directory
mkdir Command එකෙන් අලුත් Directory එකක් Create කරන්න පුළුවන්.
උදාහරණයක් විදියට, අපි දැන් /home/nimal/movies/ Directory එකේ ඉන්නවා කියලා හිතමු. අපිට Ironman කියලා අලුත් Directory එකක් හදන්න ඕනේ නම්:
mkdir Ironman
ඊට පස්සේ ls Command එක ලබාදුන්නොත් අලුතින් හදපු Ironman Directory එකත් දැකගන්න පුළුවන්.
ls
අවසානය
අද අපි Linux වල ඉතිහාසය, Linux Distributions, File System Structure එක සහ මූලික Linux Commands කිහිපයක් ගැන ඉගෙනගත්තා.
මේක Linux ඉගෙනගන්න පටන්ගන්න අයට මූලික දැනුමක් ලබාගන්න උදව්වක් වෙයි කියලා මම හිතනවා.
ඉදිරියේදී Linux Commands, File Permissions, User Management සහ System Administration වැනි මාතෘකා ගැන තවත් Articles ගේන්න බලාපොරොත්තු වෙනවා.
Article එක සම්බන්ධයෙන් ඔයාලගේ අදහස් සහ යෝජනා Comment කරන්නත් අමතක කරන්න එපා.
සුබ දවසක්!
