-
- লিনাক্স কি ?
- লিনাক্সের ইতিহাস
- লিনাক্স এবং অন্যান্য সিস্টেমের মধ্যে পার্থক্য (e.g., Windows, macOS)
- সুবিধা সমূহ (security, stability, customization, open-source)
- প্রধান ব্যবহার সমূহ
- লিনাক্স ডিস্ট্রিবিউশন
-
- Ubuntu ইনস্টলের ধাপ
- ডুয়েল বুট করা
- সেটআপ
- ইউজার একাউন্ট সেটআপ করা
- বেসিক কনফিগারেশন (language, time zone, network)
-
- ফাইল সিস্টেম হায়ারার্কি
- গুরুত্বপূর্ণ ডিরেক্টরি সমূহ (/, /home, /etc, /var, /usr, /tmp)
-
- ইউজার
- ইউজার ম্যানেজমেন্ট
- নতুন ইউজার যুক্ত করা, ডিলিট করা, এবং মডিফাই করা (
cat /etc/passwd,useradd,usermod,userdel,adduser,passwd,who,whoami)
- নতুন ইউজার যুক্ত করা, ডিলিট করা, এবং মডিফাই করা (
- গ্রুপ
- গ্রুপ ম্যানেজমেন্ট
- নতুন ইউজার যুক্ত করা, ডিলিট করা, এবং মডিফাই করা (
cat /etc/group,groupadd,groupmod,groupdel,groups)
- নতুন ইউজার যুক্ত করা, ডিলিট করা, এবং মডিফাই করা (
-
- ডিরেক্টরিতে বিভিন্ন অপারেশন
ls,cd,pwd,mkdir,rmdir
- ফাইলে বিভিন্ন অপারেশন
cp,mv,rm,touch,echo,cat,nano,vim,more,less,head,tail
- টেক্সট প্রসেসিং কমান্ড
uniq,cut,diff,grep,awk,find,sed,|
- সফ্টলিংক ও হার্ডলিংক
- ফাইল, ডিরেক্টরি পারমিশন এবং ওনারশিপ
chmod,chown
- ডিরেক্টরিতে বিভিন্ন অপারেশন
-
- প্রসেস ম্যানেজ করা
ps,top,kill,pkill,pstree
- সিস্টেম ইনফরমেশন দেখা
uname,df,du,free
- প্যাকেজ/সফটওয়্যার ইনস্টল এবং রিমুভ করা
apt,yum,dnf,dpkg
- systemctl
- corntab
- প্রসেস ম্যানেজ করা
-
- নেটওয়ার্ক স্টেটাস
ifconfig,ip
- নেটওয়ার্ক কানেকশন ম্যানেজ করা
- বেসিক নেটওয়ার্কিং কমান্ড
ping,netstat,ssh,scp
- নেটওয়ার্ক স্টেটাস
-
সিস্টেম মনিটর এবং মেইনটেইন করা
- সিস্টেম মনিটর করা (
top,htop,iotop) - সিস্টেম আপডেট ও আপগ্রেড করা(
apt update,apt upgrade)
- সিস্টেম মনিটর করা (
-
- বিভিন্ন ইউজারের ক্ষমতা (
rootএবংsudo) - ফায়ারওয়াল সেট করা(
ufw) - রেগুলার আপডেট করা
- শক্তিশালী পাসওয়ার্ড ব্যবহার করা
- বিভিন্ন ইউজারের ক্ষমতা (
-
গুরুত্বপূর্ণ কনসেপ্ট সমূহ - এনভায়রনমেন্ট ভেরিয়েবল
-
ট্রাবলশ্যুটিং - বুট সমস্যা - নেটওয়ার্ক সমস্যা - ফাইল পারমিশনে সমস্যা - লগ ফাইলস এক্সেস করা (
/var/log) -
- অফিসিয়াল উবুন্টু ডকুমেন্টেশন
- অনলাইন টিউটোরিয়াল
- বই ও রেফারেন্স
একটি ওপেন সোর্স অপারেটিং সিস্টেম। যা সবার জন্য একদম ফ্রী।
- লিনাস টোরভাল্ডস ১৯৯১ সালে লিনাক্স অপারেটিং সিস্টেম আবিষ্কার করেন।
- লিনাক্স হলো ওপেন সোর্স, যেখানে Windows এবং macOS প্রোপাইটারি সিস্টেম।অর্থাৎ, লিনাক্স আপনি সম্পূর্ণ ফ্রি, কিন্তু Windows ও MacOS ডলার খরচ করে কিনতে হয়। যদিও আমরা windows এর পাইরেসি ভার্সন তৃতীয় বিশ্বের দেশ গুলো তে ব্যবহার করতে পারি। আবার, লিনাক্স অনেক বেশি কাস্টমাইজেবল এবং নিরাপদ।
লিনাক্সের প্রধান ৪ টা সুবিধা হলো, ১. এটা সম্পূর্ণ ফ্রী এবং ওপেন সোর্স। ২. প্রয়োজন মতো যত ইচ্ছা কাস্টমাইজ করা যায়। ৩. লিনাক্স খুবই স্টেবল একটা অপারেটিং সিস্টেম। এটা অন্য অপারেটিং সিস্টেমের মতো ঘন ঘন আপডেট করা লাগেনা। ৪. লিনাক্স অত্যন্ত নিরাপদ। যার কারণে প্রোডাক্শনে এটি ব্যবহার করা হয়।
এছাড়া আরও বেশ কিছু সুবিধা রয়েছে।
- সার্ভার, ডেভেলপমেন্ট, সিকিউরিটি রিসার্চ, পার্সোনাল কম্পিউটিং ইত্যাদি।
লিনাক্স অপারেটিং সিস্টেমকে বিভিন্ন প্রয়োজন মেটাতে অনেক কোম্পানি তাদের নিজস্বভাবে কাস্টমাইজ করে এবং অনেক সময় সেগুলোকে ওপেন সোর্স হিসাবে প্রকাশ করে। এভাবেই তৈরি হয় বিভিন্ন লিনাক্স ডিস্ট্রিবিউশন। কিছু জনপ্রিয় লিনাক্স ডিস্ট্রিবিউশন হলো:
Fedora: নিয়মিত আপডেট এবং নতুন লিনাক্স প্রযুক্তি নিয়ে আসা একটি জনপ্রিয় ডিস্ট্রিবিউশন। ডেভেলপার ও উৎসাহী ব্যবহারকারীদের জন্য উপযুক্ত।
Ubuntu: ব্যক্তিগত ব্যবহারকারীদের জন্য জনপ্রিয় একটি ডিস্ট্রিবিউশন যার ডেস্কটপ পরিবেশ ব্যবহার করা সহজ।
Debian: বহুমুখী ও স্থিতিশীল একটি ডিস্ট্রিবিউশন, ব্যাপক সফটওয়্যার ভান্ডার এবং বিভিন্ন ধরনের হার্ডওয়্যার সমর্থন করে। বিভিন্ন কাজের জন্য উপযোগী।
Arch Linux: হালকা ও সহজ, আধুনিক এবং বহুমুখী একটি ডিস্ট্রিবিউশন যাতে সর্বশেষ প্রযুক্তি ব্যবহার করা হয়।
Linux Mint: Ubuntu ও Debian-এর উপর ভিত্তি করে তৈরি একটি ওপেন সোর্স ডিস্ট্রিবিউশন যা স্থিতিশীল এবং নতুন ও অভিজ্ঞ ব্যবহারকারীদের জন্য ব্যবহার করা সহজ।
elementary OS: সরল ও শেখা সহজ একটি ডিস্ট্রিবিউশন যা ব্যবহারকারীদের গুরুত্বপূর্ণ বিষয়গুলোতে মনোযোগ দিতে এবং উৎপাদনশীলতা বাড়াতে সাহায্য করে।
Zorin OS: Ubuntu-এর উপর ভিত্তি করে তৈরি একটি ডিস্ট্রিবিউশন যা Windows ও macOS-এর নিরাপদ বিকল্প হিসাবে ডিজাইন করা হয়েছে এবং Appearance অ্যাপের সাহায্যে ডেস্কটপের সাজানো সহজ।
MX Linux: ব্যবহারকারী বান্ধব ও স্থিতিশীল একটি ডিস্ট্রিবিউশন যা Debian-এর উপর ভিত্তি করে তৈরি এবং তিনটি ডেস্কটপ পরিবেশ ও অনেক প্রাক-ইনস্টল অ্যাপ্লিকেশন নিয়ে আসে।
ধাপ ১: ISO ইমেজ ডাউনলোড করুন পছন্দের লিনাক্স ডিস্ট্রো (যেমন Ubuntu) এর অফিসিয়াল ওয়েবসাইট থেকে ISO ইমেজ ডাউনলোড করুন।
ধাপ ২: বুটেবল USB ড্রাইভ তৈরি করুন একটি USB ড্রাইভ সংযুক্ত করুন (সর্বনিম্ন 6 জিবি বা তার বেশি স্টোরেজ সাইজ হতে হবে )।
- প্রথমে একটা windows কম্পিউটারে Rufus সফটওয়্যারটি ডাউনলোড এবং ইন্সটল করুন।
- Rufus চালু করুন এবং ডাউনলোড করা ISO ফাইলটি ব্রাউস অপসন থেকে সিলেক্ট করুন।
- ড্রাইভ নির্বাচন করে “Start” বাটনে ক্লিক করুন।
ধাপ ৩: বুট মেনুতে প্রবেশ করুন
এবার USB পেনড্রাইভটি যে কম্পিউটারে Ubuntu ইনস্টল করতে চান সেটির পোর্টে লাগিয়ে দিন। এরপর আপনার কম্পিউটারটি রিস্টার্ট করুন এবং BIOS/UEFI সেটআপে প্রবেশ করার জন্য প্রয়োজনীয় কী (সাধারণত F2, F12, Del বা Esc) চাপতে থাকুন।
বুট অপশন থেকে ইউএসবি ড্রাইভ নির্বাচন করুন। এবার Ubuntu ইনস্টল হওয়া শুরু হবে।
লিনাক্স ফাইল সিস্টেম হলো ডেটা স্টোরেজ ও অর্গানাইজেশনের জন্য একটি কাঠামো মধ্যে অনেক ডিরেক্টরি ও ফাইল হায়ারার্কিক্যাল অর্ডারে সাজানো থাকে।
ফাইল সিস্টেম হায়ারার্কি: লিনাক্স ফাইল সিস্টেম একটি হায়ারার্কিক্যাল কাঠামো অনুসরণ করে, যেখানে '/' (রুট) ডিরেক্টরি সর্বোচ্চ স্তরে থাকে। এর মধ্যে, বিভিন্ন ডিরেক্টরি শাখা-প্রশাখা হয়ে বিভিন্ন কাজ করে।
কিছু গুরুত্বপূর্ণ ডিরেক্টরি ও তাদের কাজ:
/ (রুট): সমগ্র ফাইল সিস্টেমের মূল ডিরেক্টরি। /home: ব্যবহারকারীদের ডেটা সংরক্ষণের জন্য। /etc: সিস্টেম কনফিগারেশন ফাইল ধারণ করে। /var: ভেরিয়েবল ডেটা সংরক্ষণের জন্য। /usr: ব্যবহারকারীদের ইনস্টল করা অ্যাপ্লিকেশন ধারণ করে। /tmp: অস্থায়ী ফাইল সংরক্ষণের জন্য।
দ্রষ্টব্য: লিনাক্স ডিস্ট্রিবিউশনের উপর নির্ভর করে ডিরেক্টরি নামকরণ ও কাঠামোতে ভিন্নতা থাকতে পারে।
লিনাক্স অপারেটিং সিস্টেমে খুব সহজেই নতুন ইউজার ও গ্রুপ তৈরী করা যায়। একটি প্রজেক্টে ইউজার ও গ্রুপের অনেক রকম ব্যবহার থাকে।
লিনাক্স সার্ভারে এক্সেস করতে হলে তার একটা ইউজার একাউন্ট থাকতে হয়। যেমন : আপনার ফেসবুক একাউন্ট আছে সেরকম। একজন ডেভেলপার তার ইউজার নেম ও পাসওয়ার্ড ব্যবহার করে লগইন করে। এখন আমরা ইউজার রিলেটেড কিছু গুরুত্বপূর্ণ কন্সেপ্ট ও কমান্ড শিখবো।
নতুন ইউজার তৈরি ও পাসওয়ার্ড সেট করতে useradd ও passed ব্যবহার করতে হয়। কিন্তু , adduser কমান্ড ব্যবহার করে একেবারেই করা যায়।
নতুন ইউজার তৈরি করার জন্য।
sudo useradd haiderইউজারের পাসওয়ার্ড সেট বা পরিবর্তন করার জন্য।
sudo passwd haiderনতুন ইউজার তৈরি করার ইন্টারেক্টিভ কমান্ড,
sudo adduser rafyযখন একটা ইউজার তৈরী করা হয় তখন ওই নামে একটা গ্রুপও অটোমেটিক তৈরী হয়ে যায়, এবং ইউজার সেই গ্রুপের ওনার হিসেবে থাকে। বিভিন্ন প্রয়োজনে ইউজারকে অন্য গ্রুপে যুক্ত করতে হয়।
ইউজারকে নতুন গ্রুপে যুক্ত করতে,
usermod -aG sudo haiderএকটা ইউজার থেকে আরেক ইউজারে সুইচ করতে,
su - usernameসিস্টেমে যতগুলো ইউজার আছে তা দেখতে,
cat /etc/passwdইউজারের নাম পরিবর্তন করার জন্য,
usermod -l rafy haiderইউজার ডিলিট করার জন্য।
sudo userdel haiderইউজারের পাসওয়ার্ড সেট বা পরিবর্তন করার জন্য।
sudo passwd haiderসিস্টেমে লগইন করা ইউজারদের তালিকা দেখার জন্য।
whoবর্তমানে কোন ইউজার লগইন আছে সেটা দেখতে।
whoamiএকটি গ্রুপের সাথে প্রজেক্টের ফাইল ,ডিরেক্টরি কে যুক্ত করে , তারপর গ্রুপের পারমিশন যা যা সেট করা হবে তা একটি গ্রুপের সব ইউজারের উপর এপলাই হবে। ফলে ১০ জন ডেভেলপারকে আলাদা আলাদা করে পারমিশন সেট করে দিতে হবেনা। এক বারেই কাজ হয়ে যাবে।
নতুন গ্রুপ তৈরি করার জন্য।
sudo groupadd devOpsগ্রুপের নাম পরিবর্তন করার জন্য।
sudo groupmod -n newdevs devOpsগ্রুপ ডিলিট করার জন্য।
sudo groupdel devOpsসিস্টেমে যত গুলো গ্রুপ আছে তার লিস্ট দেখতে।
একটি ইউজার কোন কোন গ্রুপের মেম্বার তা দেখতে।
ডিরেক্টরি , ফাইল , টেক্সট , হার্ড লিংক ও সফ্ট লিংক এবং পারমিশন সম্পর্কিত গুরুত্বপূর্ণ কমান্ড গুলি দেখবো।
বর্তমান ডিরেক্টরির ফাইল এবং ফোল্ডারগুলির তালিকা দেখার জন্য।
ls -lনির্দিষ্ট ডিরেক্টরিতে যাওয়ার জন্য,
cd /home/haduবর্তমান ডিরেক্টরির পূর্ণ পথ দেখানোর জন্য।
pwdনতুন ডিরেক্টরি তৈরি করার জন্য।
mkdir newfolderখালি ডিরেক্টরি ডিলিট করার জন্য।
rmdir newfolderফাইল সহ কোনো ডিরেক্টরি ডিলিট করতে।
rm -rf dirnameএকটি নতুন খালি ফাইল তৈরি করার জন্য।
touch newfile.txtকোনো ভ্যারিয়েবল প্রিন্ট করতে,
echo $VARIABLEআবার টেক্সট প্রিন্ট করতে,
echo "string"ফাইলে সব কিছু রিমুভ করে নতুন টেক্সট লিখতে,
echo "string" > file.txtফাইলে সব কিছু আগের মতোই রেখে, শেষে নতুন লাইন যুক্ত করতে,
echo "string" >> file.txtকোনো ফাইল রিড করতে,
cat file.txtএকটি ফাইল কপি করার জন্য।
cp file1.txt file2.txtএকটি ফাইল স্থানান্তর বা নাম পরিবর্তন করার জন্য।
mv oldname.txt newname.txtএকটি ফাইল ডিলিট করার জন্য।
rm file.txtNano টেক্সট এডিটরে ফাইল এডিট জন্য।
nano file.txtএবার ফাইলে লিখার পর, সেভ এবং এক্সিট করতে "ctrl X " কী চাপতে হবে। আরো কিছু কমান্ড টেক্সট এডিটরের নিচের অংশে দেয়া আছে।
আরো বেশি পাওয়ারফুল টেক্সট এডিটর। আর এটি সব লিনাক্স সিস্টেমেই থাকে। কিন্তু Nano এডিটর আলাদা করে ইনস্টল করতে হয়। তবে অনেকে Vim ব্যবহার করতে ঝামেলা মনে করেন।
vim file.txtফাইল ওপেন হওয়ার পর প্রথমে i কী চাপতে হবে ফলে ইন্টারেক্টিভ মোডে যাবে এবং এবার এডিট করতে পারবেন।
এডিট করা শেষ হলে এক্সিট + সেভ করতে প্রথমে 'esc ' প্রেস করতে হবে তারপর যথাক্রমে : , w এবং q টাইপ করতে হবে।
+

লম্বা ফাইল দেখার জন্য।
more file.txtless file.txtফাইলের প্রথম কয়েক লাইন দেখার জন্য।
head -n 10 file.txtফাইলের শেষ কয়েক লাইন দেখার জন্য।
tail -n 10 file.txtফাইল থেকে ইউনিক লাইন দেখার জন্য।
uniq firstFile.txtফাইল থেকে নির্দিষ্ট কলাম কেটে দেখার জন্য।
cut -d ',' -f 1 file.csv
(কমা ডিলিমিটার ব্যবহার করে প্রথম কলামটি কেটে দেখাবে)
দুটি ফাইলের মধ্যে পার্থক্য দেখার জন্য।
diff file1.txt file2.txtফাইলের মধ্যে নির্দিষ্ট টেক্সট খুঁজে বের করার জন্য।
grep "search_text" file.txtফাইলের নির্দিষ্ট অংশ প্রসেস করার জন্য। যেমনঃ এখানেপ্রতিটি লাইনের প্রথম কলাম প্রিন্ট করবে।
awk '{print $1}' file.txtনির্দিষ্ট ডিরেক্টরির মধ্যে ফাইল বা ডিরেক্টরি খুঁজে বের করার জন্য।
find /path/to/search -name "*.txt"ফাইলে নির্দিষ্ট টেক্সট পরিবর্তন করার জন্য।
sed 's/old_text/new_text/g' file.txtএকটি কমান্ডের আউটপুটকে অন্য কমান্ডে যুক্ত করে ব্যবহার করতে। যেমনঃ এখানে প্রথমে ফাইল cat করবে তারপর ফাইল থেকে কোনো টেক্সট grep করবে , sort এবং uniq ভাবে সাজাবে।
cat file.txt | grep "search_text" | sort | uniq
Source: https://i.sstatic.net/f7Ijz.jpg
সফ্ট লিংক, বা সিম্বলিক লিংক, হলো একটি মেইন ফাইলের সাথে আরেকটি ফাইলের কানেকশন করা। যেকোনো ফাইলের চেঞ্জ অন্য সব ফাইলেই রিফ্লেক্ট হয়। লিংক ফাইল গুলো মূলত মেইন ফাইলের পাথ মনে রাখে।তাই, মেইন ফাইল ডিলিট করা হলে পুরো সিস্টেমটাই নষ্ট হয়ে যায়।
সফ্টলিংক (সিম্বলিক লিংক) তৈরি করার জন্য।
ln -s file1.txt symlink.txtহার্ড লিংক একটি ফাইল সিস্টেমে মূল ফাইলের জন্য আরেকটি রেফারেন্স তৈরি করে। এটি মূল ফাইলের inode নম্বর ব্যবহার করে, তাই মূল ফাইল এবং হার্ড লিংক একই ডেটা পয়েন্ট করে।যেকোনো ফাইলের চেঞ্জ অন্য সব ফাইলেই রিফ্লেক্ট হয়। মূল ফাইল ডিলিট করা হলেও হার্ড লিংক কার্যকর থাকে এবং মূল ডেটা অ্যাক্সেসযোগ্য থাকে যতক্ষণ না সব লিংক ডিলিট করা হয়।
হার্ডলিংক তৈরি করার জন্য।
ln file1.txt hardlink.txtলিনাক্স সিস্টেমে একটা ফাইল বা ডিরেক্টরি তে ইউজার(u) ,গ্রুপ (g) এবং অন্যরা কি ধরণের পারমিশন পাবে সেটা নির্ধারণ করে দেয়া যায়। পারমিশন সঠিক ভাবে ব্যবহার করা নিরাপত্তার জন্য খুবই গুরুত্বপূর্ণ।
এখানে ইংলিশ অক্ষর বা নম্বর ব্যবহার করা যায়। নাম্বারের ক্ষেত্রে যোগফল দিতে হয়।
- read (
r/4): পড়ার পারমিশন - write (
w/2): লেখার পারমিশন - execute (
x/1): কোড রান করার পারমিশন
ফাইল বা ডিরেক্টরির পারমিশন পরিবর্তন করার জন্য। যেমন: আমি যদি ইউজার, গ্রুপ কে read, write,execute সব পারমিশন এবং আদার কে দিতে চাই তাহলে এই কমান্ড ব্যবহার করতে হবে।
chmod u=rwx,g=rwx,o= file2.txtঅথবা, নিউমেরিক মান ব্যবহার করেও একই কাজ করা যায়,
chmod 770 file2.txtলিনাক্স ফাইল সিস্টেমে, মালিক (Owner) হল সেই ব্যবহারকারী যিনি একটি ফাইল বা ডিরেক্টরি তৈরি করেছেন বা যাকে নির্দিষ্টভাবে সেই ফাইল বা ডিরেক্টরির মালিক হিসেবে সেট করা হয়েছে। ওই ফাইলের উপর ওনার এর সর্বোচ্চ ক্ষমতা থাকে। চাইলেই যেকোনো ইউজারকে কোনো পারমিশন দিতে পারেন আবার তা নিয়ে নিতেও পারেন।
ফাইল বা ডিরেক্টরির ওনারশিপ পরিবর্তন করার জন্য।
chown hadu:devOps file.txtএখানে file.csv কে hadu নামের ইউজার এবং devOps গ্রুপে ওনারশিপ দেয়া হয়েছে।
বর্তমানে চলমান প্রসেসগুলির লিস্ট দেখার জন্য।
ps auxবর্তমানে চলমান প্রসেসগুলির রিয়েল-টাইম ভিউ দেখার জন্য।
topনির্দিষ্ট প্রসেস আইডি (PID) দিয়ে প্রসেস কিল/স্টপ করার জন্য।
kill 1234প্রসেস নাম দিয়ে প্রসেস কিল/স্টপ করার জন্য।
pkill firefoxপ্রসেসগুলি ট্রি আকারে দেখার জন্য।
pstreeসিস্টেম ইনফরমেশন দেখার জন্য।
uname -aডিস্ক ফাইল সিস্টেমের মেমরি স্পেস দেখার জন্য।
df -hডিরেক্টরি এবং সাবডিরেক্টরির ব্যবহৃত স্পেস দেখার জন্য।
du -sh /path/to/directoryমেমরি এবং সোয়াপ ব্যবহারের ইনফরমেশন দেখার জন্য।
free -hবিভিন্ন ধরণের প্যাকেজ ম্যানেজার আছে। তবে apt সবচেয়ে আপডেট ও সিকিউর।
sudo apt install package_namesudo apt remove package_namesudo dpkg -i package_name.debsudo dpkg -r package_nameসেন্টওএস, ফেডোরা তে কোনো কিছু ইনস্টল করতে এই প্যাকেজ ম্যানেজার গুলি ব্যবহার করা হয়।
sudo yum install package_namesudo yum remove package_namesudo dnf install package_namesudo dnf remove package_namesystemctl একটি কমান্ড লাইন টুল যা systemd সিস্টেম এবং সার্ভিস ম্যানেজারের সাথে কাজ করার জন্য ব্যবহৃত হয়। এটি সার্ভিস start, stop, restart এবং status দেখার জন্য ব্যবহার করা হয়। নিচে systemctl কমান্ডের কিছু সাধারণ ব্যবহার দেখানো হলো:
সার্ভিস শুরু করা:
sudo systemctl start service_nameসার্ভিস বন্ধ করা:
sudo systemctl stop service_nameসার্ভিস রিস্টার্ট করা:
sudo systemctl restart service_nameসার্ভিসের স্ট্যাটাস দেখা:
sudo systemctl status service_namecrontab হল একটি টুল যা লিনাক্স সিস্টেমে নির্ধারিত সময়ে নির্দিষ্ট কমান্ড বা স্ক্রিপ্ট রান করার জন্য ব্যবহৃত হয়। এটি ক্রোন (cron) ডেমন দ্বারা ব্যবহৃত হয় এবং সময়সূচী ভিত্তিক কাজগুলি খুব সহজেই করা যায়।
crontab এর মৌলিক গঠন:
* * * * * cmd
crontab ফাইলের প্রতিটি লাইন একটি নির্দিষ্ট কাজ বা job বুঝায় এবং পাঁচ ধরণের সময়ক্ষেত্র থাকে,যেমন: মিনিট, ঘণ্টা, দিন, মাস, এবং সপ্তাহের দিন। এর পর যে কমান্ডটি রান করতে চান সেটি লিখতে হবে।
minute hour day month day-of-week command_to_runক্রোন ফাইল এডিট করতে:
crontab -eক্রোন কাজের লিস্ট দেখতে:
crontab -lসব ক্রোন জব ডিলিট করতে:
crontab -rনেটওয়ার্কিং হলো লিনাক্সের অত্যন্ত গুরুত্বপূর্ণ কন্সেপ্ট। নেটওয়ার্কিং এর কিছু গুরুত্বপূর্ণ কমান্ড দেখানো হলো।
নেটওয়ার্ক ইন্টারফেস কনফিগারেশন দেখতে।
ifconfigনেটওয়ার্ক ইন্টারফেস এবং রাউটিং টেবিল দেখতে।
ip addr showএবং
ip route showনেটওয়ার্ক কানেকশন ম্যানেজ করার জন্য বিভিন্ন টুল ব্যবহার করা যেতে পারে, যেমনঃ nmcli (NetworkManager CLI), nmtui (NetworkManager TUI), systemctl
নেটওয়ার্ক কানেকশন দেখার জন্য।
nmcli connection show
যেমনঃ এখানে আমি ৩ টি ওয়াইফাই (Home, Home 1, Golam Khan) নেটওয়ার্কের সাথে কানেক্ট করেছিলাম তা দেখাচ্ছে।
নতুন কানেকশন যুক্ত করা:
nmcli connection add type ethernet ifname eth0টেক্সট ভিত্তিক ইউজার ইন্টারফেস দিয়ে নেটওয়ার্ক কানেকশন পরিচালনা করার জন্য।
nmtuiNetworkManager সার্ভিস পরিচালনা করার জন্য।
sudo systemctl start NetworkManager
sudo systemctl stop NetworkManager
sudo systemctl restart NetworkManagerএখানে শুধু restart কমান্ডটি দেখলাম। অনুরূপভাবে, start, stop কমান্ডগুলি ব্যবহার করা যায়।
নেটওয়ার্ক কানেকশন পরীক্ষা করার জন্য।
ping google.comনেটওয়ার্ক কানেকশন, রাউটিং টেবিল, ইন্টারফেস দেখার জন্য।
netstat -tulnসিকিউর ভাবে অন্য সিস্টেমে লগইন করার জন্য।
ssh user@remote_hostসিকিউর ভাবে ফাইল ট্রান্সফার করার জন্য।
scp /path/to/local/file user@remote_host:/path/to/remote/directoryকোনো প্রজেক্ট ঠিকঠাক মতো চলমান আছে কিনা সেটা দেখতে হয়। আর এজন্য লিনাক্সের কিছু খুবই পাওয়ারফুল কমান্ড আছে।
সিস্টেমের রিসোর্স ব্যবহার এবং চলমান প্রসেসগুলির রিয়েল-টাইম ভিউ দেখার জন্য।
toptop-এর মতই কিন্তু আরও উন্নত এবং ইন্টারঅ্যাক্টিভ ইন্টারফেস সহ।
htopডিস্ক I/O ব্যবহার মনিটর করার জন্য।
sudo iotopপ্রতিনিয়ত সিস্টেম আপডেট ও আপগ্রেড করা উচিত। এতে সিস্টেম সিকিউর ও সুন্দর ভাবে চলে।
প্যাকেজ লিস্ট আপডেট করার জন্য (নতুন প্যাকেজ ও সংস্করণের তথ্য সংগ্রহ করতে)।
sudo apt updateইনস্টল করা প্যাকেজগুলো আপগ্রেড করার জন্য।
sudo apt upgradeবেসিক কিছু সিকিউরিটি প্র্যাক্টিস ফলো করা অপরিহার্য। এটা না করলে সিস্টেম যেকোনো সময় হ্যাক বা ভাইরাসের আক্রমণে পড়তে পারে।
root হল সর্বোচ্চ ক্ষমতাসম্পন্ন ব্যবহারকারী, এই ইউজারের সিস্টেমে সব রকম পারমিশন থাকে। তাই মূল মালিক/ডেভেলপার ছাড়া কাউকেই বা কোনো টুলস কে root পারমিশন দেয়া যাবেনা। root ইউজারে সুইচ করতে হলে এই কমান্ড।
sudo susudo গ্রুপের সকল ইউজারের root এর সমান পারমিশন দেয়া থাকে। তাই বুঝে শুনে কোনো ইউজারকে sudo গ্রুপে যুক্ত করা উচিত। কোনো ইউজারকে এই পাওয়ার দিতে হলে sudo গ্রুপে অ্যাড করতে হবে। এ জন্য এই কমান্ডটি ব্যবহার করতে হবে।
sudo usermod -aG sudo usernameআর নিচের কমান্ড ব্যবহার করে ইউজার পরিবর্তন করা যাবে।
su - usernameসহজে ফায়ারওয়াল নিয়ন্ত্রণের জন্য ব্যবহৃত হয়। প্রথমে ufw ইনস্টল করতে হবে।
sudo apt install ufwএর সাহায্যে খুব সহজেই পোর্ট এক্সেস কন্ট্রোল করা যায়।
ufw এনাবল করতে,
sudo ufw enableufw ডিসএবল করতে,
sudo ufw disableনির্দিষ্ট পোর্টে পারমিশন দিতে,
sudo ufw allow 22/tcpকোনো পোর্ট ব্লক করতে,
sudo ufw deny 80/tcpufw স্ট্যাটাস চেক করতে,
sudo ufw statussudo apt update,sudo apt upgrade কমান্ড ব্যবহার করে নিয়মিত সিস্টেম আপডেট করতে হবে। ফলে সিস্টেম সিকিউর থাকবে।
অবশ্যই ১২ অক্ষরের বেশি পাসওয়ার্ড ব্যবহার করতে হবে।
-
ইউজার পাসওয়ার্ড পরিবর্তন করতে:
passwd
-
পাসওয়ার্ড রুল কনফিগার করা:
/etc/pam.d/common-passwordফাইলের মাধ্যমে পাসওয়ার্ড নীতি পরিবর্তন করা যেতে পারে।
এনভায়রনমেন্ট ভেরিয়েবল (বা এনভ ) একটা স্পেশাল ধরণের ভেরিএবল যেটা কোনো অপারেটিং সিস্টেমে ব্যবহার করা হয়। এক্সেস এর উপর ডিপেন্ড করে এনভায়রনমেন্ট ভেরিয়েবল ২ প্রকার। গ্লোবাল এবং লোকাল। লোকাল এনভরনমেন্ট ভেরিয়েবল শুধুমাত্র নিদৃষ্ট একটি ইউজার বা এনভায়রনমেন্টে এক্সেস করা যায়। অন্যদিকে গ্লোবাল এনভায়রনমেন্ট ভেরিয়েবল একটি সিস্টেমের সকল ইউজার এবং এনভায়রনমেন্ট এক্সেস করা যায়।
আবার পারসিস্টেন্সির ভিত্তিতে এনভায়রনমেন্ট ভেরিয়েবল ২ প্রকার। পারসিসটেন্ট এবং নন-পারসিসটেন্ট। পারসিসটেন্ট ভেরিয়েবল সিস্টেম রিবুট করার পর ও থাকে কিন্তু নন-পারসিসটেন্ট ভেরিয়েবল সিস্টেম রিবুট করলে ডিলিট হয়ে যায়।
/etc/environment ফাইলে যুক্ত করা:
sudo nano /etc/environment-
শেল সেশনে যুক্ত করা:
MY_VAR="Hello World" export MY_VAR
- স্ক্রিপ্টে যুক্ত করা:
file name localVar.sh:
#!/bin/bash
LOCAL_VAR="This is a local variable"
export LOCAL_VARস্ক্রিপ্ট টিতে অবশ্যই এক্সিকিউটেবল পারমিশন দিতে হবে।
chmod +x localVar.sh-
~/.bashrcবা~/.bash_profileফাইলে যুক্ত করা:# ~/.bashrc perVar="This is a permanent variable" export perVar
পরিবর্তনগুলি কার্যকর করতে এই কমান্ডটি চালাতে হবে।
source ~/.bashrc- গ্রাব (GRUB) মেনুতে সমস্যা:
গ্রাব মেনু দেখা যাচ্ছে না? বুট করার সময় Shift চেপে ধরুন (উবুন্টু) বা Esc চেপে ধরুন (CentOS)।
গ্রাব মেনুতে সমস্যা থাকলে লাইভ ইউএসবি বা ডিভিডি দিয়ে বুট করে boot-repair টুল ব্যবহার করতে পারেন।
sudo apt-get install boot-repair
sudo boot-repair- ইনিশিয়াল র্যাম ডিস্ক (initramfs) সমস্যা:
গ্রাব মেনুতে Advanced options নির্বাচন করে, পুরানো কের্নেলে বুট করার চেষ্টা করুন।
যদি কাজ না হয়, লাইভ ইউএসবি দিয়ে বুট করে chroot কমান্ড ব্যবহার করে সিস্টেমে প্রবেশ করুন এবং update-initramfs কমান্ড চালান।
sudo update-initramfs -u- ফাইল সিস্টেম চেক (fsck):
লাইভ ইউএসবি দিয়ে বুট করে
fsckকমান্ড ব্যবহার করে ফাইল সিস্টেম পরীক্ষা করুন।
sudo fsck /dev/sda1- নেটওয়ার্ক ইন্টারফেস চেক করা: ইন্টারফেস সক্রিয় আছে কিনা তা পরীক্ষা করুন।
ifconfig
ip addr show- পিং কমান্ড ব্যবহার করে নেটওয়ার্ক পরীক্ষা করা:
নিজের আইপি টেস্ট করতে।
ping 127.0.0.1গেটওয়ে টেস্ট করতে।
ping <gateway_ip>ডিএনএস সার্ভার টেস্ট করতে।
ping 8.8.8.8- নেটওয়ার্ক সার্ভিস রিস্টার্ট করা:
নেটওয়ার্ক সার্ভিস রিস্টার্ট করুন।
sudo systemctl restart networking- নেটওয়ার্ক ম্যানেজার ব্যবহার করা:
nmcli বা nmtui ব্যবহার করে নেটওয়ার্ক সংযোগ পরীক্ষা করুন।
- ফাইল পারমিশন চেক করা:
ফাইল বা ডিরেক্টরির পারমিশন চেক করতে,
ls -lla /path/to/file- পারমিশন পরিবর্তন করা:
chmod কমান্ড ব্যবহার করে পারমিশন পরিবর্তন করতে,
sudo chmod 755 /path/to/file- ওনারশিপ পরিবর্তন করা:
chown কমান্ড ব্যবহার করে ওনারশিপ পরিবর্তন করতে,
sudo chown user:group /path/to/file- সিস্টেম লগ ফাইল দেখা:
/var/log ডিরেক্টরিতে বিভিন্ন সিস্টেম লগ ফাইল থাকে।
ls /var/log- নির্দিষ্ট লগ ফাইল দেখা:
dmesg: কর্নেল মেসেজ লগ।
sudo dmesg | lesssyslog: সিস্টেম লগ।
cat /var/log/syslogauth.log: অথেন্টিকেশন লগ।
cat /var/log/auth.log- লগ ফাইল মনিটর করা:
tail -f কমান্ড ব্যবহার করে লগ ফাইল রিয়েল-টাইমে মনিটর করতে,
tail -f /var/log/syslog- Ubuntu শেখার শ্রেষ্ঠ রিসৌর্স হলো অফিশিয়াল ডকুমেন্টেশন।
- বিভিন্ন অনলাইন টিউটোরিয়াল রয়েছে। কিছু জনপ্রিয় ওয়েবসাইট:
- লিনাক্স সম্পর্কে বিস্তারিত জানতে আপনার প্রয়োজন অনুযায়ী এই বই গুলো পড়তে পারেন :
- The Linux Command Line: William E. Shotts, Jr. - নতুন ইউজারের জন্য।
- Linux Bible: Christopher Negus - সিস্টেম অ্যাডমিনিস্ট্রেশন সম্পর্কে গভীর ভাবে জানতে।
- How Linux Works: Brian Ward - লিনাক্সের অভ্যন্তরীণ কার্যক্রম সম্পর্কে বিস্তারিত জানতে।
- UNIX and Linux System Administration Handbook: Evi Nemeth, Garth Snyder, Trent R. Hein, এবং Ben Whaley - লিনাক্স ও ইউনিক্স সিস্টেম অ্যাডমিনিস্ট্রেশনের জন্য খুবই ভালো রেফারেন্স।
- Ubuntu ইনস্টলেশন গাইড:
- বেসিক লিনাক্স কমান্ড টিউটোরিয়াল:
- The Linux Command Line: বিনামূল্যে অনলাইন অ্যাক্সেস:














































































































