চিট শিট

লিনাক্স কমান্ড: নতুন ও অ্যাডমিনিস্ট্রেটরদের জন্য চিট শিট

হালনাগাদ: · Skillaria.Top

লিনাক্সের প্রধান কমান্ডগুলো কাজের ধরন অনুযায়ী ভাগ করা যায়: নেভিগেশন (pwd, ls, cd), ফাইল নিয়ন্ত্রণ (cp, mv, rm, mkdir), অধিকার (chmod, chown), প্যাকেজ (apt), প্রসেস (ps, top, kill), খোঁজা ও টেক্সট প্রসেসিং (find, grep, sed, awk), নেটওয়ার্ক (ip, ss, curl) এবং সার্ভিস (systemctl, journalctl)। নিচে উদাহরণসহ টেবিল দেওয়া হয়েছে, যা টার্মিনালে প্রতিদিনের বেশিরভাগ কাজ কভার করে।

এই লিনাক্স কমান্ড চিট শিট কাজের ধরন অনুযায়ী সাজানো: ফাইল খোঁজা, প্যাকেজ ইনস্টল, আটকে যাওয়া প্রসেস বন্ধ করা, লগ থেকে একটি লাইন বের করা বা পোর্ট পরীক্ষা করা। কমান্ডগুলো Ubuntu ও Debian-এ যাচাই করা হয়েছে; প্রায় সবই অন্য ডিস্ট্রিবিউশনেও কাজ করে, প্রধান পার্থক্য প্যাকেজ ম্যানেজারে।

সাহায্য ও ইঙ্গিত

কমান্ডকাজ
man lsকমান্ডের পূর্ণ নির্দেশিকা, বের হতে q, খুঁজতে /শব্দ
ls --helpঅপশনের সংক্ষিপ্ত সাহায্য
type cdএটি কী: শেলের অন্তর্নির্মিত কমান্ড, অ্যালিয়াস, নাকি ফাইল
which python3এক্সিকিউটেবল ফাইলের পাথ
historyকমান্ড ইতিহাস; !123 দিলে ১২৩ নম্বর কমান্ড আবার চলে
Ctrl+Rইতিহাসে খোঁজা
Ctrl+C / Ctrl+Dকমান্ড বন্ধ করা / শেল বন্ধ করা

ফাইল সিস্টেমে নেভিগেশন

কমান্ডকাজ
pwdবর্তমান ডিরেক্টরি
ls -laসব ফাইল, লুকানো গুলোসহ, অধিকার ও আকারসহ
ls -lhসহজে পড়া যায় এমন আকার (K, M, G)
ls -ltপরিবর্তনের সময় অনুযায়ী সাজানো
cd /var/logঅ্যাবসোলিউট পাথে যাওয়া
cd .. / cd ~ / cd -এক ধাপ উপরে / হোমে / আগের ডিরেক্টরিতে
tree -L 2২ স্তর পর্যন্ত ডিরেক্টরি ট্রি (প্যাকেজ tree)

ফাইল ও ডিরেক্টরির সঙ্গে কাজ

কমান্ডকাজ
touch file.txtখালি ফাইল তৈরি বা পরিবর্তনের সময় হালনাগাদ
mkdir -p a/b/cপ্যারেন্টসহ ডিরেক্টরি তৈরি
cp file.txt backup.txtফাইল কপি
cp -r src/ dst/ডিরেক্টরি রিকার্সিভলি কপি
mv old.txt new.txtনাম বদল বা স্থানান্তর
rm file.txtফাইল মুছে ফেলা (ট্র্যাশ ছাড়া)
rm -r dir/ডিরেক্টরি ও ভেতরের সব মুছে ফেলা; -f জিজ্ঞাসা ছাড়া, সাবধানে
rmdir dirখালি ডিরেক্টরি মুছে ফেলা
ln -s /opt/app/current appসিম্বলিক লিংক
stat file.txtবিস্তারিত: আকার, অধিকার, inode, তারিখ
file image.binকন্টেন্ট দেখে ফাইলের ধরন নির্ণয়

কন্টেন্ট দেখা

কমান্ডকাজ
cat fileপুরো ফাইল দেখানো
less fileপাতা ধরে দেখা, খুঁজতে /, বের হতে q
head -n 20 fileপ্রথম ২০ লাইন
tail -n 50 fileশেষ ৫০ লাইন
tail -f /var/log/syslogফাইল রিয়েল-টাইমে অনুসরণ
wc -l fileলাইনের সংখ্যা
diff a.conf b.confদুটি ফাইলের পার্থক্য

অধিকার ও মালিক

কমান্ডকাজ
chmod +x script.shচালানোর অনুমতি দেওয়া
chmod 644 filerw-r--r--: মালিক লিখতে পারে, বাকিরা পড়তে
chmod 755 dirrwxr-xr-x: ডিরেক্টরি ও স্ক্রিপ্টের জন্য সাধারণ
chmod 600 ~/.ssh/id_ed25519শুধু মালিক: ব্যক্তিগত কী-এর জন্য
sudo chown www-data:www-data fileমালিক ও গ্রুপ বদল
sudo chown -R alice /srv/appরিকার্সিভলি মালিক বদল
idআপনার UID, GID ও গ্রুপ
sudo -iroot শেল
sudo usermod -aG docker aliceব্যবহারকারীকে গ্রুপে যুক্ত করা

প্যাকেজ (apt, Debian ও Ubuntu)

কমান্ডকাজ
sudo apt updateরিপোজিটরি থেকে প্যাকেজের তালিকা হালনাগাদ
sudo apt upgradeইনস্টল করা প্যাকেজ হালনাগাদ
sudo apt install nginxপ্যাকেজ ইনস্টল
sudo apt remove nginxমুছে ফেলা, কনফিগ থেকে যায়; purge কনফিগসহ মোছে
sudo apt autoremoveঅপ্রয়োজনীয় ডিপেন্ডেন্সি মুছে ফেলা
apt search htopপ্যাকেজ খোঁজা
apt show nginxবিবরণ ও সংস্করণ
dpkg -l | grep nginxপ্যাকেজ ইনস্টল আছে কি না
dpkg -L nginxপ্যাকেজ কোন কোন ফাইল ইনস্টল করেছে

RHEL, Fedora ও Rocky Linux-এ সমতুল্য কমান্ড হলো dnf install, dnf remove, dnf upgrade এবং rpm -qa।

পরিবেশ ও প্রোফাইল

কমান্ডকাজ
echo $PATHশেল প্রোগ্রাম কোথায় খোঁজে
envসব এনভায়রনমেন্ট ভেরিয়েবল
export APP_ENV=prodবর্তমান সেশন ও তার চাইল্ড প্রসেসের জন্য ভেরিয়েবল সেট
alias ll='ls -la'কমান্ডের শর্টকাট
source ~/.bashrcলগআউট ছাড়া প্রোফাইল পুনরায় পড়া
crontab -e / crontab -lcron কাজ এডিট / দেখা

প্রসেস

কমান্ডকাজ
ps auxসব প্রসেস, ব্যবহারকারী, CPU ও মেমরিসহ
ps aux | grep nginxপ্রসেস খোঁজা
pgrep -a nginxনাম দিয়ে PID ও কমান্ড লাইন
top / htopরিয়েল-টাইমে লোড
kill 1234প্রসেসকে বন্ধ হওয়ার অনুরোধ (SIGTERM)
kill -9 1234জোর করে বন্ধ (SIGKILL) — শেষ উপায়
pkill -f "python app.py"কমান্ড লাইনের সঙ্গে মিল থাকা প্রসেস বন্ধ
command &, jobs, fgব্যাকগ্রাউন্ডে চালানো ও জব নিয়ন্ত্রণ
nohup ./job.sh &টার্মিনাল বন্ধ করলেও প্রসেস চলবে
free -hমেমরি ও swap
uptimeচালু থাকার সময় ও গড় লোড
strace -p 1234প্রসেসের সিস্টেম কল

সার্ভিস ও লগ (systemd)

কমান্ডকাজ
systemctl status nginxসার্ভিসের অবস্থা ও শেষ কয়েক লাইন লগ
sudo systemctl start|stop|restart nginxচালু, বন্ধ, পুনরায় চালু
sudo systemctl reload nginxবন্ধ না করে কনফিগ পুনরায় পড়া
sudo systemctl enable --now nginxস্বয়ংক্রিয় চালু সক্রিয় ও এখনই চালু
systemctl --failedব্যর্থ ইউনিটগুলো
journalctl -u nginx -fসার্ভিসের লগ রিয়েল-টাইমে
journalctl -u nginx --since "1 hour ago"গত এক ঘণ্টার লগ
journalctl -p err -bসর্বশেষ বুট থেকে ত্রুটি

ফাইল খোঁজা

কমান্ডকাজ
find /var/log -name "*.log"নাম দিয়ে খোঁজা
find . -type f -mtime -1গত ২৪ ঘণ্টায় পরিবর্তিত ফাইল
find / -size +500M 2>/dev/nullবড় ফাইল; অ্যাক্সেস ত্রুটি লুকানো
find . -name "*.tmp" -deleteখুঁজে মুছে ফেলা
du -sh *ডিরেক্টরির প্রতিটি আইটেমের আকার
df -hফাইল সিস্টেমে খালি জায়গা

খোঁজা ও টেক্সট প্রসেসিং: grep, sed, awk, jq

কমান্ডকাজ
grep "error" app.logশব্দটি আছে এমন লাইন
grep -i -n "error" app.logবড়-ছোট হাতের অক্ষর উপেক্ষা করে, লাইন নম্বরসহ
grep -r "listen" /etc/nginx/ডিরেক্টরিতে রিকার্সিভলি
grep -v "DEBUG" app.logযেসব লাইনে শব্দটি নেই
grep -c "500" access.logমিলের সংখ্যা
grep -E "warn|error" app.logপ্রসারিত রেগুলার এক্সপ্রেশন
sed 's/old/new/g' fileবদলে ফলাফল দেখানো
sed -i 's/8080/9090/' app.confসরাসরি ফাইলের ভেতরে বদল
sed -n '10,20p' file১০ থেকে ২০ নম্বর লাইন
awk '{print $1}' access.logপ্রতিটি লাইনের প্রথম ফিল্ড
awk -F: '{print $1}' /etc/passwdব্যবহারকারীর নাম (বিভাজক :)
awk '$9 == 500' access.logযেসব লাইনে নবম ফিল্ড ৫০০
sort | uniq -c | sort -rnপুনরাবৃত্তি গণনা ও সংখ্যা অনুযায়ী সাজানো
cut -d, -f2 data.csvCSV-এর দ্বিতীয় কলাম
jq '.items[].name' data.jsonJSON থেকে ফিল্ড বের করা

একটি পাইপলাইনের উদাহরণ: nginx-এ সবচেয়ে বেশি অনুরোধ পাঠানো দশটি IP ঠিকানা।

awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -10

রিডাইরেকশন ও পাইপ

গঠনকাজ
cmd > out.txtআউটপুট ফাইলে লেখা (আগেরটি মুছে)
cmd >> out.txtফাইলের শেষে যোগ করা
cmd 2> err.txtত্রুটি আলাদা ফাইলে পাঠানো
cmd > all.log 2>&1আউটপুট ও ত্রুটি একই ফাইলে
cmd1 | cmd2এক কমান্ডের আউটপুট অন্য কমান্ডের ইনপুট হিসেবে
cmd | tee out.txtস্ক্রিনে দেখানো ও একই সঙ্গে সংরক্ষণ
cmd1 && cmd2প্রথমটি সফল হলেই দ্বিতীয়টি চালানো
cmd1 || cmd2প্রথমটি ব্যর্থ হলে দ্বিতীয়টি চালানো

আর্কাইভ

কমান্ডকাজ
tar -czf backup.tar.gz dir/gzip দিয়ে প্যাক ও সংকোচন
tar -xzf backup.tar.gzএক্সট্র্যাক্ট
tar -tzf backup.tar.gzভেতরের তালিকা দেখা
zip -r site.zip site/ / unzip site.zipzip আর্কাইভ

নেটওয়ার্ক

কমান্ডকাজ
ip aইন্টারফেস ও IP ঠিকানা
ip rরাউটিং টেবিল
ping -c 4 8.8.8.8হোস্ট পৌঁছানো যায় কি না
ss -tulpnখোলা পোর্ট ও সেগুলো ব্যবহারকারী প্রসেস
dig example.com / nslookup example.comDNS কুয়েরি
curl -I https://example.comশুধু রেসপন্স হেডার
curl -s https://api.example.com | jqAPI কল ও সুন্দর JSON
wget URLফাইল ডাউনলোড
traceroute example.comহোস্ট পর্যন্ত প্যাকেটের পথ
ssh user@hostসার্ভারে যুক্ত হওয়া
ssh-keygen -t ed25519SSH কী-জোড়া তৈরি
scp file user@host:/tmp/সার্ভারে ফাইল কপি
rsync -avz dir/ user@host:/srv/dir/ডিরেক্টরি সিঙ্ক্রোনাইজ
sudo ufw statusফায়ারওয়াল নিয়ম

সিস্টেম ও ডিস্ক

কমান্ডকাজ
uname -aকার্নেল ও আর্কিটেকচার
cat /etc/os-releaseডিস্ট্রিবিউশন ও সংস্করণ
hostnamectlহোস্টের নাম ও সিস্টেমের তথ্য
lsblkডিস্ক ও পার্টিশন
sudo mount /dev/sdb1 /mntপার্টিশন মাউন্ট
who / wএখন কে সিস্টেমে আছে
sudo reboot / sudo shutdown -h nowরিবুট / বন্ধ

সংক্ষেপে

প্রতিদিনের কাজের জন্য কয়েক ডজন কমান্ডই যথেষ্ট: ls, cd, cp, mv, rm, chmod, sudo, apt, ps, kill, systemctl, journalctl, grep, find, ss, curl ও ssh। এই লিনাক্স কমান্ড চিট শিট সংরক্ষণ করুন এবং কমান্ডগুলো অভ্যাসে না আসা পর্যন্ত এর সঙ্গে মিলিয়ে দেখুন। প্রতিটি কমান্ড-গোষ্ঠী লিনাক্স কোর্সে হাতে-কলমে শেখানো হয়।

সাধারণ প্রশ্ন

man বা less থেকে কীভাবে বের হব?

q চাপুন। ভেতরে খুঁজতে স্ল্যাশ ও শব্দ লিখুন; n দিলে পরের মিলে যাওয়া।

vim এডিটর থেকে কীভাবে বের হব?

Esc চেপে :q! লিখে Enter দিলে সেভ না করে বের হওয়া যায়, আর :wq দিলে সেভ করে বের হওয়া যায়। নতুনদের জন্য nano দিয়ে ফাইল এডিট করা সহজ।

rm -rf কেন বিপজ্জনক?

এটি জিজ্ঞাসা ছাড়া ও ট্র্যাশ ছাড়া মুছে দেয়, তাই একটি ভুল পাথ (যেমন তারকা চিহ্নের আগে অতিরিক্ত স্পেস) ভুল ডিরেক্টরি মুছে ফেলতে পারে। চালানোর আগে ls দিয়ে পাথ যাচাই করুন।

sudo দিয়ে শেষ কমান্ড কীভাবে আবার চালাব?

sudo !! লিখুন — শেল আগের কমান্ডটি পুরোপুরি বসিয়ে দেবে।

টার্মিনালে আটকে থাকা কমান্ড কীভাবে থামাব?

Ctrl+C বাধা সংকেত পাঠায়। কমান্ড সাড়া না দিলে অন্য টার্মিনালে ps বা pgrep দিয়ে তার PID খুঁজে kill দিয়ে বন্ধ করুন।

ভিডিওতে বিষয়টি শিখুন

“Linux: с нуля до уверенного администрирования” কোর্সে বিষয়টি অনুশীলনসহ বিস্তারিত শেখানো হয়েছে।

কোর্সে যান