ভূমিকা
এই সমഗ্র গাইডে লিনাক্স কমান্ডের মাধ্যমে আপনার লিনাক্স সিস্টেমের সম্পূর্ণ সম্ভাবনা খুলে দিন। আপনি একজন অভিজ্ঞ অ্যাডমিন হন বা শুধু শুরু করছেন, এই কমান্ডগুলো মাস্টার করা দক্ষ সার্ভার ম্যানেজমেন্ট, স্ক্রিপ্ট রাইটিং, এবং ট্রাবলশুটিং-এর জন্য অপরিহার্য। এই টিউটোরিয়ালে, আপনি ফাইল ম্যানেজমেন্ট, প্রসেস কন্ট্রোল, ইউজার অ্যাক্সেস, নেটওয়ার্ক কনফিগারেশন, এবং সিস্টেম ডিবাগিং-এর জন্য সবচেয়ে বেশি ব্যবহৃত এবং শক্তিশালী কমান্ডগুলো শিখবেন।
আপনি ৫০+ মাস্ট-নো লিনাক্স কমান্ড শিখবেন যা আপনাকে একটি লিনাক্স পাওয়ার ইউজারে পরিণত করবে। বেসিক থেকে অ্যাডভান্সড, এই কমান্ডগুলো যেকোনো টাস্ক מולফেইস করার জন্য আপনার গো-টু টুলস बनবে।
মূল বিন্দুগুলো
- লিনাক্স কমান্ডগুলো উদ্দেশ্য অনুযায়ী সংগঠিত: ফাইল ম্যানেজমেন্ট (
ls,cp,mv,rm), প্রসেস কন্ট্রোল (ps,kill,top), ইউজার পারমিশন (chmod,chown,sudo), এবং নেটওয়ার্কিং (ssh,ping,wget)। manকমান্ড যেকোনো লিনাক্স কমান্ডের বিল্ট-ইন ডকুমেন্টেশন প্রদান করে এবং সিনট্যাক্স বা অপশন ডিটেইল দরকার হলে প্রাইমারি রেফারেন্স।- টেক্সট আউটপুট বা ফাইল সার্চ করার জন্য
grepব্যবহার করুন, ফাইল কন্টেন্ট প্রিভিউ করার জন্যhead/tail, এবং ফাইল তুলনা করার জন্যdiff/cmp। - ফাইল পারমিশন
chmod(চেঞ্জ মোড বিটস) এবংchown(চেঞ্জ ওনার) দিয়ে ম্যানেজ করা হয়, যা সার্ভার সিকিউরিটি এবং অ্যাক্সেস কন্ট্রোলের জন্যкриটিক্যাল। tar,zip, এবংunzipকমান্ডগুলো আর্কাইভিং এবং কম্প্রেশন হ্যান্ডেল করে;sshএবংscpসিকিউর রিমোট অ্যাক্সেস এবং ফাইল ট্রান্সফার হ্যান্ডেল করে।- প্রসেস ম্যানেজমেন্ট কমান্ড (
ps,kill,killall,top) সিস্টেম হেলথ মনিটরিং এবং অনরেসপন্সিভ প্রসেস টার্মিনেট করার জন্য অপরিহার্য।
প্রি-রেকুইজিটস
আমরা এই কমান্ডগুলো উবুন্টু সার্ভারে রান করব, কিন্তু আপনি যেকোনো আধুনিক লিনাক্স ডিস্ট্রিবিউশনে ফলো করতে পারেন। এই টিউটোরিয়ালের জন্য উবুন্টু সার্ভার সেট আপ করতে আপনি আমাদের Initial Server Setup on Ubuntu গাইড ফলো করতে পারেন।
GitHub থেকে আপনার ফ্রন্টএন্ড অ্যাপ্লিকেশন ডিপ্লয় করুন DigitalOcean App Platform ব্যবহার করে। DigitalOcean আপনার অ্যাপ স্কেলিংয়ের দায়িত্ব নেবে।
চলুন শুরু করি!
নিয়মিত ব্যবহারকারীর तौर पर আপনাকে জানা থাকা টপ ৫০ লিনাক্স কমান্ড
- ls - লিনাক্সে ডিরেক্টরি লিস্ট করার সবচেয়ে বেশি ব্যবহৃত কমান্ড
- pwd - লিনাক্সে প্রিন্ট ওয়ার্কিং ডিরেক্টরি কমান্ড
- cd - ডিরেক্টরির মধ্য দিয়ে নেভিগেট করার লিনাক্স কমান্ড
- mkdir - লিনাক্সে ডিরেক্টরি তৈরির জন্য ব্যবহৃত কমান্ড
- mv - লিনাক্সে ফাইল সরানো বা রিনেম করা
- cp - mv-এর মতো ব্যবহার কিন্তু লিনাক্সে ফাইল কপি করার জন্য
- rm - ফাইল বা ডিরেক্টরি ডিলিট করা
- touch - ব্ল্যাঙ্ক/খালি ফাইল তৈরি করা
- ln - অন্য ফাইলগুলোর সিম্বলিক লিংক (শর্টকাট) তৈরি করা
- clear - টার্মিনাল ডিসপ্লে ক্লিয়ার করা
- cat - টার্মিনালে ফাইল কন্টেন্ট দেখানো
- echo - কমান্ডের পর 오는 যেকোনো টেক্সট প্রিন্ট করা
- less - টার্মিনালে পেজড আউটপুট দেখানোর লিনাক্স কমান্ড
- man - সকল লিনাক্স কমান্ডের ম্যানুয়াল পেজ অ্যাক্সেস করা
- uname - OS সম্পর্কে বেসিক ইনফরমেশন পাওয়ার লিনাক্স কমান্ড
- whoami - এক্টিভ ইউজারনেম পাওয়া
- tar - লিনাক্সে ফাইল এক্সট্রাক্ট এবং কম্প্রেস করার কমান্ড
- grep - আউটপুটের মধ্যে একটি স্ট্রিং সার্চ করা
- head - টপ থেকে নির্দিষ্ট সংখ্যক লাইন রিটার্ন করা
- tail - বটম থেকে নির্দিষ্ট সংখ্যক লাইন রিটার্ন করা
- diff - দুটি ফাইলের মধ্যে পার্থক্য খোঁজা
- cmp - দুটি ফাইল আইডেন্টিক্যাল কিনা চেক করার অনুমতি দেয়
- comm - diff এবং cmp-এর ফাংশনালিটি কম্বাইন করে
- sort - আউটপুট দিয়ে ফাইল কন্টেন্ট সোর্ট করার লিনাক্স কমান্ড
- export - লিনাক্সে এনভায়রনমেন্ট ভেরিয়েবল এক্সপোর্ট করা
- zip - লিনাক্সে ফাইল জিপ করা
- unzip - লিনাক্সে ফাইল আনজিপ করা
- ssh - লিনাক্সে সিকিউর শেল কমান্ড
- service - লিনাক্সে সার্ভিস স্টার্ট এবং স্টপ করার কমান্ড
- ps - এক্টিভ প্রসেস ডিসপ্লে করা
- kill and killall - প্রসেস আইডি বা নাম দিয়ে এক্টিভ প্রসেস কিল করা
- df - ডিস্ক ফাইলসিস্টেম ইনফরমেশন ডিসপ্লে করা
- mount - লিনাক্সে ফাইল সিস্টেম মাউন্ট করা
- chmod - ফাইল পারমিশন পরিবর্তন করার কমান্ড
- chown - ফাইল বা ফোল্ডারের ওনারশিপ দান করার কমান্ড
- ifconfig - নেটওয়ার্ক ইন্টারফেস এবং IP অ্যাড্রেস ডিসপ্লে করা
- traceroute - ডেস্টিনেশন পৌঁছানোর জন্য সকল নেটওয়ার্ক হপ ট্রেস করা
- wget - ইন্টারনেট থেকে ডায়রেক্ট ফাইল ডাউনলোড করা
- ufw - ফায়ারওয়াল কমান্ড
- iptables - সকল অন্যান্য ফায়ারওয়াল ইউটিলিটির সাথে ইন্টারফেস করার বেস ফায়ারওয়াল
- apt, pacman, yum, rpm - ডিস্ট্রিবিউশনের উপর নির্ভর করে প্যাকেজ ম্যানেজার
- sudo - লিনাক্সে প্রিভিলেজ এস্কালেট করার কমান্ড
- cal - কমান্ড-লাইন ক্যালেন্ডার দেখানো
- alias - নিয়মিত ব্যবহৃত কমান্ডের জন্য কাস্টম শর্টকাট তৈরি করা
- dd - প্রধানত বুটেবল USB স্টিক তৈরির জন্য ব্যবহৃত
- whereis - একটি কমান্ডের বাইনারি, সোর্স, এবং ম্যানুয়াল পেজ লোকেট করা
- whatis - একটি কমান্ড কী জন্য ব্যবহৃত হয় সেটি খুঁজে বের করা
- top - তাদের সিস্টেম ব্যবহার সহ এক্টিভ প্রসেস লাইভ ভিউ করা
- useradd and usermod - নতুন ইউজার যোগ করা বা বিদ্যমান ইউজার ডেটা পরিবর্তন করা
- passwd - বিদ্যমান ব্যবহারকারীদের জন্য পাসওয়ার্ড তৈরি বা আপডেট করা
ফাইল এবং ডিরেক্টরি কমান্ড
| Command | Description | Example |
|---|---|---|
| ls | ডিরেক্টরি কন্টেন্ট লিস্ট করুন। | ls |
| cd | ডিরেক্টরি পরিবর্তন করুন। | cd /path/to/directory |
| pwd | কারেন্ট ডিরেক্টরি দেখান। | pwd |
| mkdir | নতুন ডিরেক্টরি তৈরি করুন। | mkdir new_directory |
| rmdir | খালি ডিরেক্টরি রিমুভ করুন। | rmdir empty_directory |
| rm | ফাইল বা ডিরেক্টরি ডিলিট করুন। | rm file.txt |
| touch | খালি ফাইল তৈরি করুন। | touch new_file.txt |
| cp | ফাইল বা ডিরেক্টরি কপি করুন। | cp file.txt /path/to/destination |
| mv | ফাইল সরানো বা রিনেম করুন। | mv file.txt /path/to/new_location |
| cat | ফাইল কন্টেন্ট ডিসপ্লে করুন। | cat file.txt |
| nano / vim | টার্মিনালে ফাইল এডিট করুন। | nano file.txt |
| find | ডিরেক্টরি হায়েরার্কিতে ফাইল সার্চ করুন। | find . -name "file.txt" |
| grep | প্যাটার্ন ব্যবহার করে টেক্সট সার্চ করুন। | grep "pattern" file.txt |
| tar | ফাইল আর্কাইভ এবং কম্প্রেস করুন। | tar -cvf archive.tar file1.txt file2.txt |
| df | ফাইল সিস্টেমের ডিস্ক ইউজ দেখান। | df |
| du | ডিরেক্টরি/ফাইল সাইজ দেখান। | du -sh /path/to/directory |
| chmod | ফাইল পারমিশন পরিবর্তন করুন। | chmod 755 file.txt |
| chown | ফাইল ওনার পরিবর্তন করুন। | chown user:group file.txt |
| mount | একটি ফাইলসিস্টেম মাউন্ট করুন। | mount /dev/sdb1 /mnt |
| umount | একটি ফাইলসিস্টেম আনমাউন্ট করুন। | umount /mnt |
নেটওয়ার্কিং কমান্ড
| Command | Description | Sample Usage |
|---|---|---|
| ping | একটি হোস্টের সাথে কানেক্টিভিটি টেস্ট করুন। | ping google.com |
| ifconfig / ip a | নেটওয়ার্ক ইন্টারফেস ডিসপ্লে করুন। | ifconfig or ip a |
| netstat / ss | নেটওয়ার্ক কানেকশন দেখান। | netstat -tuln or ss -tuln |
| wget | HTTP/FTP-এর মাধ্যমে ফাইল ডাউনলোড করুন। | wget https://example.com/file.zip |
| curl | URL সিনট্যাক্স ব্যবহার করে ডেটা ট্রান্সফার করুন। | curl -O https://example.com/file.zip |
| nc (Netcat) | নেটওয়ার্ক ডিবাগিং এবং ডেটা ট্রান্সফার। | nc -zv 192.168.1.1 80 |
| tcpdump | নেটওয়ার্ক প্যাকেট ক্যাপচার এবং বিশ্লেষণ করুন। | tcpdump -i eth0 |
| iptables | ফায়ারওয়াল রুল কনফিগার করুন। | iptables -A INPUT -p tcp --dport 22 -j ACCEPT |
| traceroute | নেটওয়ার্ক হোস্টে প্যাকেটের পাথ ট্রেস করুন। | traceroute example.com |
| nslookup | DNS কোয়েরি করে ডোমেইন নাম বা IP ম্যাপিং পান। | nslookup example.com |
| ssh | সিকিউরলি একটি রিমোট হোস্টে কানেক্ট করুন। | ssh user@example.com |
প্রসেস এবং সিস্টেম মনিটরিং কমান্ড
| Command | Description | Example Command |
|---|---|---|
| ps | চলমান প্রসেস দেখান। | ps aux |
| top | ডাইনামিক প্রসেস ভিউয়ার। | top |
| htop | top-এর উন্নত সংস্করণ। | htop |
| kill | একটি প্রসেসে সিগন্যাল পাঠান। | kill <PID> |
| killall | নাম দিয়ে প্রসেস কিল করুন। | killall <process_name> |
| uptime | সিস্টেম আপটাইম এবং লোড। | uptime |
| whoami | কারেন্ট লগড-ইন ইউজার। | whoami |
| env | এনভায়রনমেন্ট ভেরিয়েবল ডিসপ্লে করুন। | env |
| strace | একটি প্রসেসের সিস্টেম কল ট্রেস করুন। | strace -p <PID> |
| systemctl | systemd সার্ভিস ম্যানেজ করুন। | systemctl status <service_name> |
| journalctl | সিস্টেম লগ ভিউ করুন। | journalctl -xe |
| free | মেমরি ইউজেজ ডিসপ্লে করুন। | free -h |
| vmstat | ভার্চুয়াল মেমরি স্ট্যাটিস্টিক্স রিপোর্ট করুন। | vmstat 1 |
| iostat | CPU এবং I/O স্ট্যাটিস্টিক্স রিপোর্ট করুন। | iostat |
| lsof | প্রসেস দ্বারা ওপেন ফাইল লিস্ট করুন। | lsof |
| dmesg | কার্নেল রিং বাফার মেসেজ প্রিন্ট করুন। | dmesg |
ইউজার এবং পারমিশন ম্যানেজমেন্ট কমান্ড
| Command | Description | Example Command |
|---|---|---|
| passwd | ইউজার পাসওয়ার্ড পরিবর্তন করুন। | passwd <username> |
| adduser / useradd | নতুন ইউজার যোগ করুন। | adduser <username> or useradd <username> |
| deluser / userdel | ইউজার ডিলিট করুন। | deluser <username> or userdel <username> |
| usermod | ইউজার অ্যাকাউন্ট মডিফাই করুন। | usermod -aG <group> <username> |
| groups | গ্রুপ মেম্বারশিপ দেখান। | groups <username> |
| sudo | রুট হিসেবে কমান্ড এক্সিকিউট করুন। | sudo <command> |
| chage | ইউজার পাসওয়ার্ড এক্সপায়ারি ইনফো পরিবর্তন করুন। | chage -l <username> |
| id | ইউজার আইডেন্টিটি ইনফরমেশন ডিসপ্লে করুন। | id <username> |
| newgrp | নতুন গ্রুপে লগ ইন করুন। | newgrp <group> |
ফাইল ট্রান্সফার এবং সিঙ্ক্রোনাইজেশন কমান্ড
| Command | Description | Example Command |
|---|---|---|
| scp | SSH ওভার সিকিউরলি ফাইল কপি করুন। | scp user@remote:/path/to/file /local/destination |
| rsync | ফাইল এবং ডিরেক্টরি দক্ষতার সাথে সিঙ্ক করুন। | rsync -avz /local/directory/ user@remote:/path/to/destination |
| ftp | ফাইল ট্রান্সফার প্রোটোকল ব্যবহার করে ফাইল ট্রান্সফার করুন। | ftp ftp.example.com |
| sftp | SSH ফাইল ট্রান্সফার প্রোটোকল ব্যবহার করে সিকিউরলি ফাইল ট্রান্সফার করুন। | sftp user@remote:/path/to/file |
| wget | ওয়েব থেকে ফাইল ডাউনলোড করুন। | wget https://example.com/file.zip |
| curl | সার্ভারের থেকে বা সার্ভারে ডেটা ট্রান্সফার করুন। | curl -O https://example.com/file.zip |
টেক্সট প্রসেসিং কমান্ড
| Command | Description | Example Command |
|---|---|---|
| awk | প্যাটার্ন স্ক্যানিং এবং প্রসেসিং। | awk '{print $1}' file.txt |
| sed | ফিল্টার/মডিফাই করার জন্য স্ট্রিম এডিটর। | sed 's/old/new/g' file.txt |
| cut | টেক্সট লাইন থেকে সেকশন রিমুভ করুন। | cut -d':' -f1 /etc/passwd |
| sort | টেক্সট লাইন সোর্ট করুন। | sort file.txt |
| grep | টেক্সটে প্যাটার্ন সার্চ করুন। | grep 'pattern' file.txt |
| wc | ওয়ার্ড, লাইন, এবং ক্যারেক্টার কাউন্ট করুন। | wc -l file.txt |
| paste | ফাইলের লাইন মার্জ করুন। | paste file1.txt file2.txt |
| join | কমন ফিল্ডের ওপর দুটি ফাইল জয়েন করুন। | join file1.txt file2.txt |
| head | ফাইলের প্রথম অংশ আউটপুট করুন। | head -n 10 file.txt |
| tail | ফাইলের শেষ অংশ আউটপুট করুন। | tail -n 10 file.txt |
শেল ইউটিলিটি এবং শর্টকাট কমান্ড
| Command | Description | Example Command |
|---|---|---|
| alias | কমান্ডের জন্য শর্টকাট তৈরি করুন। | alias ll='ls -la' |
| unalias | একটি এলিয়াস রিমুভ করুন। | unalias ll |
| history | পূর্বে ইনপুট করা কমান্ড দেখান। | history |
| clear | টার্মিনাল স্ক্রিন ক্লিয়ার করুন। | clear |
| reboot | সিস্টেম রিবুট করুন। | reboot |
| shutdown | সিস্টেম পাওয়ার অফ করুন। | shutdown now |
| date | সিস্টেম তারিখ এবং সময় দেখান বা সেট করুন। | date |
| echo | এক লাইন টেক্সট ডিসপ্লে করুন। | echo "Hello, World!" |
| sleep | নির্দিষ্ট পরিমাণ সময় ডিলে করুন। | sleep 5 |
| time | কমান্ড এক্সিকিউশনের সময় পরিমাপ করুন। | time ls |
| watch | একটি প্রোগ্রাম পিরিয়ডিক্যালি এক্সিকিউট করুন, আউটপুট ফুলস্ক্রিন দেখান। | watch -n 5 df -h |
এখন প্রতিটি কমান্ডে একটু গভীরে যাই এবং সেগুলো আরও ডিটেইলসে বুঝি। আমাদের প্রতিটি কমান্ডের জন্য ইতিমধ্যে অনেক এক্সিস্টিং আর্টিকেল রয়েছে। আপনার সুবিধার্থে, আমরা সকল এক্সিস্টিং আর্টিকেলের লিংক যোগ করব, এবং নতুন টপিক কভার হওয়ার সাথে সাথে আর্টিকেলটি আপডেট করতে থাকব।
ls কমান্ড লিনাক্সে
ls কমান্ড বর্তমান ওয়ার্কিং ডিরেক্টরিতে ফাইল এবং ডিরেক্টরি লিস্ট করতে ব্যবহৃত হয়। এটি আপনার জানা থাকা লিনাক্স কমান্ডের মধ্যে সবচেয়ে বেশি ব্যবহৃত একটি হতে যাচ্ছে।

উপরের ছবিতে দেখুন, কোনো আর্গুমেন্ট ছাড়া কমান্ডটি ব্যবহার করলে বর্তমান ডিরেক্টরির সকল ফাইল এবং ডিরেক্টরির আউটপুট দেয়। কমান্ডটি আউটপুটে ডেটা প্রদর্শনের ক্ষেত্রে অনেক লচিলতা প্রদান করে।
ls কমান্ড ব্যবহারের আরও জানুন
কমান্ড লিস্টে ফিরে যান ↑
pwd কমান্ড লিনাক্সে
pwd কমান্ড আপনার টার্মিনালে বর্তমান ওয়ার্কিং ডিরেক্টরি প্রিন্ট করার অনুমতি দেয়। এটি একটি খুব বেসিক কমান্ড এবং এর উদ্দেশ্য খুব ভালোভাবে পূরণ করে।

এখন, আপনার টার্মিনাল প্রম্পটে সাধারণত পূর্ণ ডিরেক্টরি থাকে। কিন্তু যদি না থাকে, তবে এটি আপনি কোন ডিরেক্টরিতে আছেন তা দেখার একটি কুইক কমান্ড। এই কমান্ডের আরেকটি প্রয়োগ হলো স্ক্রিপ্ট তৈরি করার সময়, যেখানে এই কমান্ড আমাদের স্ক্রিপ্টটি কোথায় সেভ করা হয়েছে সেটি খুঁজে বের করতে সাহায্য করে।
কমান্ড লিস্টে ফিরে যান ↑
cd কমান্ড লিনাক্সে
টার্মিনালের ভিতরে কাজ করার সময়, ডিরেক্টরির মধ্য দিয়ে যাওয়া প্রায়শই আবশ্যক। cd কমান্ড আপনার জানা থাকা গুরুত্বপূর্ণ লিনাক্স কমান্ডের একটি, এবং এটি আপনাকে ডিরেক্টরির মধ্য দিয়ে নেভিগেট করতে সাহায্য করবে। শুধু cd টাইপ করুন তারপর ডিরেক্টরি, নিচে দেখানো মতো।
root@ubuntu:~# cd <directory path>

উপরের কমান্ডে, আমি সিম্পলি cd /etc/ টাইপ করেছি /etc ডিরেক্টরিতে ঢুকতে। আমরা pwd কমান্ড ব্যবহার করেছি বর্তমান ওয়ার্কিং ডিরেক্টরি প্রিন্ট করতে।
কমান্ড লিস্টে ফিরে যান ↑
mkdir কমান্ড লিনাক্সে
mkdir কমান্ড আপনাকে টার্মিনালের ভিতরে থেকে ডিরেক্টরি তৈরি করতে দেয়।
root@ubuntu:~# mkdir <folder name>

উপরের স্ক্রিনশটে দেখুন, আমরা শুধু এই সাধারণ কমান্ড দিয়ে একটি নতুন ডিরেক্টরি তৈরি করেছি।
কমান্ড লিস্টে ফিরে যান ↑
cp এবং mv কমান্ড
cp এবং mv কমান্ডগুলো উইন্ডোজের কপি-পেস্ট এবং কাট-পেস্ট কমান্ডের সমতুল্য। কিন্তু যেহেতু লিনাক্সে ফাইল রিনেম করার জন্য কোনো আলাদা কমান্ড নেই, তাই আমরা ফাইল এবং ফোল্ডার রিনেম করার জন্যও mv কমান্ড ব্যবহার করি।
root@ubuntu:~# cp <source> <destination>

উপরের কমান্ডে, আমরা Sample নামে ফাইলের একটি কপি তৈরি করেছি। আসুন দেখি mv কমান্ড একইভাবে ব্যবহার করলে কী হয়।
root@ubuntu:~# mv <source> <destination>

উপরের কেসে, যেহেতু আমরা একই ডিরেক্টরির ভিতরে ফাইলটি সরাচ্ছিলাম, এটা রিনেম হিসেবে কাজ করল। ফাইলের নাম এখন পরিবর্তন হয়েছে।
কমান্ড লিস্টে ফিরে যান ↑
rm কমান্ড লিনাক্সে
পূর্বের সেকশনে, আমরা Sample-Copy ফাইলটি ডিলিট করেছিলাম। rm কমান্ড ফাইল এবং ফোল্ডার ডিলিট করতে ব্যবহৃত হয় এবং এটি আপনার জানা থাকা গুরুত্বপূর্ণ লিনাক্স কমান্ডের একটি।
root@ubuntu:~# rm <file name>

একটি ডিরেক্টরি ডিলিট করতে, আপনাকে সেটির সাথে -r আর্গুমেন্ট যোগ করতে হবে। -r আর্গুমেন্ট ছাড়া, rm কমান্ড ডিরেক্টরি ডিলিট করবে না।
root@ubuntu:~# rm -r <folder/directory name>
rm কমান্ডে -r ফ্ল্যাগ означаয় "রিকার্সিভ"। rm কমান্ডের সাথে ব্যবহৃত হলে, এটি নির্দিষ্ট ফাইলটিই নয়, বরং এর সকল সাবডিরেক্টরি এবং সেসব সাবডিরেক্টরির ভিতরের ফাইলগুলোকেও রিকার্সিভলি রিমুভ করবে।
নোট: rm কমান্ড -r ফ্ল্যাগের সাথে ব্যবহার করার সময় সতর্ক থাকা গুরুত্বপূর্ণ, কারণ এটি দ্রুত এবং स्थायीভাবে বড় সংখ্যক ফাইল এবং ডিরেক্টরি ডিলিট করে দিতে পারে। -r ফ্ল্যাগের সাথে -i ফ্ল্যাগ ব্যবহার করা একটি ভালো আইডিয়া, যা প্রতিটি ফাইল এবং ডিরেক্টরি ডিলিট করার আগে আপনাকে কনফার্মেশন চাইবে।
উদাহরণস্বরূপ, mydir ডিরেক্টরি এবং এর কন্টেন্ট কনফার্মেশন সহ রিমুভ করতে, আপনি এই কমান্ডটি ব্যবহার করতে পারেন:
root@ubuntu:~# rm -ri mydir
এটি mydir ডিরেক্টরির ভিতরে প্রতিটি ফাইল এবং ডিরেক্টরি ডিলিট করার আগে আপনাকে কনফার্মেশন চাইবে।
কমান্ড লিস্টে ফিরে যান ↑
touch কমান্ড লিনাক্সে
লিনাক্সে touch কমান্ড একটি খালি ফাইল তৈরি করে বা বিদ্যমান ফাইলের টাইমস্ট্যাম্প আপডেট করে।
root@ubuntu:~# touch <file name>

কমান্ড লিস্টে ফিরে যান ↑
ln কমান্ড লিনাক্সে
অন্য একটি ফাইলের লিংক তৈরি করতে, আমরা ln কমান্ড ব্যবহার করি। আপনি যদি লিনাক্স অ্যাডমিনিস্ট্রেটর হিসেবে কাজ করার পরিকল্পনা করেন তবে এটি আপনার জানা থাকা সবচেয়ে গুরুত্বপূর্ণ লিনাক্স কমান্ডের একটি।
root@ubuntu:~# ln -s <source path> <link name>

-s ফ্ল্যাগ একটি সিম্বলিক লিংক (যাকে সিমলিংক বা সফ্ট লিংকও বলা হয়) তৈরি করে একটি ফাইল বা ডিরেক্টরির तरफ। একটি সিম্বলিক লিংক একটি বিশেষ ধরণের ফাইল যা অন্য একটি ফাইল বা ডিরেক্টরির শর্টকাট বা পয়েন্টার হিসেবে কাজ করে।
ডিফল্টলি, ln কমান্ড হার্ড লিংক বানাবে সিম্বলিক বা সফ্ট লিংক বদলে।
নোট: ধরুন আপনার একটি টেক্সট ফাইল আছে। আপনি সেটির একটি সিম্বলিক লিংক বানালেন, লিংকটি শুধু মূল ফাইলটির একটি পয়েন্টার। আপনি যদি মূল ফাইলটি ডিলিট করেন, লিংকটি ব্রোকেন হয়ে যাবে, কারণ এর আর কিছুই নেই পয়েন্ট করার জন্য।
একটি হার্ড লিংক মূল ফাইলের একটি মিরর কপি যার কন্টেন্ট সემ। সিম্বলিক লিংক মতো, আপনি যদি মূল ফাইলের কন্টেন্ট এডিট করেন, সে পরিবর্তন হার্ড লিংকেও প্রতিফলিত হবে। কিন্তু আপনি যদি মূল ফাইলটি ডিলিট করেন, হার্ড লিংকটি এখনও কাজ করবে, এবং আপনি সেটিকে একটি নরমাল কপির মতো ভিউ এবং এডিট করতে পারবেন।
সফ্ট এবং হার্ড লিংক সম্পর্কে আরও জানুন।
কমান্ড লিস্টে ফিরে যান ↑
clear কমান্ড লিনাক্সে
লিনাক্সে clear কমান্ড টার্মিনাল স্ক্রিন ক্লিয়ার করে। এটি বর্তমানে টার্মিনালে প্রদর্শিত সকল টেক্সট এবং আউটপুট সরিয়ে দেয় এবং আপনাকে কাজ করার জন্য একটি ক্লিন স্লেট দেয়।
clear কমান্ড ব্যবহারের একটি উদাহরণ:
root@ubuntu:~# clear
এটি টার্মিনাল স্ক্রিন ক্লিয়ার করবে এবং কারসরকে স্ক্রিনের টপ-লেফ্ট কোণে নিয়ে যাবে।
আপনি clear কমান্ড অন্যান্য কমান্ডের সাথে কম্বাইন করেও ব্যবহার করতে পারেন, এইভাবে:
root@ubuntu:~# ls -l; clear
এটি বর্তমান ডিরেক্টরির ফাইল এবং ডিরেক্টরি লিস্ট করবে, এবং তারপর টার্মিনাল স্ক্রিন ক্লিয়ার করবে।
নোট: clear কমান্ড আপনার সিস্টেম থেকে কোনো ফাইল বা ডেটা ডিলিট করে না। এটি শুধু টার্মিনালের ডিসপ্লে প্রভাবিত করে।
cat, echo, এবং less কমান্ড
যখন আপনি একটি ফাইলের কন্টেন্ট আউটপুট করতে চান বা টার্মিনাল আউটপুটে যেকোনো কিছু প্রিন্ট করতে চান, আমরা cat বা echo কমান্ড ব্যবহার করি। তাদের বেসিক ব্যবহার দেখি।
root@ubuntu:~# cat <file name> root@ubuntu:~# echo <Text to print on terminal>

উপরের উদাহরণে দেখুন, cat কমান্ড আমাদের New-File-এ ব্যবহার করলে ফাইলের কন্টেন্ট প্রিন্ট করে। একই সাথে, যখন আমরা echo কমান্ড ব্যবহার করি, এটি কমান্ডের পর 오는 জিনিসটি সিম্পলি প্রিন্ট করে।
less কমান্ড তখন ব্যবহৃত হয় যখন কোনো কমান্ড দ্বারা প্রিন্ট করা আউটপুট স্ক্রিন স্পেসের চেয়ে বড় হয় এবং স্ক্রোল লাগে। less কমান্ড ইউজারকে আউটপুট ব্রেক ডাউন করতে এবং এন্টার বা স্পেস কি ব্যবহার করে স্ক্রোল করার অনুমতি দেয়।
সিম্পল উপায় হয় পাইপ অপারেটর (|) ব্যবহার করা।
root@ubuntu:~# cat /boot/grub/grub.cfg | less
নোট: less এর সাথে -S ফ্ল্যাগ ব্যবহার করুন লাইন র্যাপিং এনেবল করতে। এটি আপনাকে হরিজন্টালি স্ক্রোল না করে লম্বা লাইন ভিউ করার অনুমতি দেবে।
less এর সাথে -N ফ্ল্যাগ ব্যবহার করুন লাইন নম্বর ডিসপ্লে করতে। এটি উপযোগী হতে পারে যখন আপনাকে একটি নির্দিষ্ট টেক্সটের লাইন নম্বর জানতে হয়।
এই উপযোগী ফ্ল্যাগগুলো নিম্নরূপ ব্যবহার করতে পারেন:
root@ubuntu:~# cat /boot/grub/grub.cfg | less -SN
পাইপ অপারেটর সহ less ব্যবহার করা বিভিন্ন পরিস্থিতিতে উপযোগী হতে পারে। এখানে কয়েকটি উদাহরণ:
- একটি লম্বা-চলমান কমান্ডের আউটপুট ভিউ করা, যেমন
topবাhtop। - একটি কমান্ডের আউটপুটে নির্দিষ্ট টেক্সট সার্চ করা, যেমন
grepবাcat।
কমান্ড লিস্টে ফিরে যান ↑
man কমান্ড লিনাক্সে
man কমান্ড একটি খুব উপযোগী লিনাক্স কমান্ড যা অবশ্যই জানা থাকা উচিত। লিনাক্সে কাজ করার সময়, আমরা যে প্যাকেজগুলো ডাউনলোড করি সেগুলো অনেক ফাংশনালিটি থাকতে পারে। সব কিছু জানা অসম্ভব।
লিনাক্সে man কমান্ড একটি নির্দিষ্ট কমান্ডের ম্যানুয়াল পেজ ডিসপ্লে করতে ব্যবহৃত হয়। এটি কমান্ড সম্পর্কে ডিটেইল্ড ইনফরমেশন প্রদান করে, যার মধ্যে এর সিনট্যাক্স, অপশন, এবং উদাহরণ রয়েছে।
man কমান্ড ব্যবহারের একটি উদাহরণ:
- একটি টার্মিনাল খুলুন এবং
man lsটাইপ করুনlsকমান্ডের ম্যানুয়াল পেজ देखने জন্য।
root@ubuntu:~# man ls
এটি একটি পেজ দেখাবে যা এরকম দেখাবে:
LS(1) User Commands LS(1) NAME ls - list directory contents SYNOPSIS ls [OPTION]... [FILE]... DESCRIPTION List information about the FILEs (the current directory by default). Sort entries alphabetically if none of -cftuvSUX nor --sort is specified. Mandatory arguments to long options are mandatory for short options too. -a, --all do not ignore entries starting with . -A, --almost-all do not list implied . and .. -c with -lt: sort by, and show, ctime (time of last modification of file status information) with -l: show ctime and sort by name; ...
কমান্ড লিস্টে ফিরে যান ↑
uname এবং whoami কমান্ড
uname এবং whoami কমান্ড আপনাকে কিছু বেসিক ইনফরমেশন অ্যাক্সেস করতে দেয় যা একাধিক সিস্টেমে কাজ করার সময় কাজে আসে।
লিনাক্সে uname কমান্ড সিস্টেমের কার্নেল সম্পর্কে ইনফরমেশন ডিসপ্লে করে, যার মধ্যে কার্নেল নাম, হোস্টনেম, কার্নেল রিলিজ, কার্নেল ভার্সন, এবং মেশিন হার্ডওয়্যার নাম রয়েছে।
লিনাক্সে whoami কমান্ড বর্তমান ব্যবহারকারীর ইউজারনেম রিটার্ন করে। এটি "who am I?" মানে এবং এটি শেল স্ক্রিপ্ট বা টার্মিনালে বর্তমান ব্যবহারকারীর আইডেন্টিটি নির্ধারণের জন্য প্রায়শই ব্যবহৃত হয়।
দুটি কমান্ডের আউটপুট এবং ব্যবহার পদ্ধতি দেখি।
root@ubuntu:~# uname -a

uname কমান্ডের সাথে -a প্যারামিটার মানে "all"। এটি সম্পূর্ণ ইনফরমেশন প্রিন্ট করে। যদি প্যারামিটার যোগ না করা হয়, আউটপুট হিসেবে আপনি শুধু "Linux" পাবেন।
নোট: uname কমান্ডের সাথে ব্যবহার করা কিছু গুরুত্বপূর্ণ ফ্ল্যাগ।
uname -sব্যবহার করুন কার্নেল নাম দেখতে।uname -nব্যবহার করুন হোস্টনেম দেখতে।uname -rব্যবহার করুন কার্নেল রিলিজ দেখতে।uname -vব্যবহার করুন কার্নেল ভার্সন দেখতে।uname -mব্যবহার করুন মেশিন হার্ডওয়্যার নাম দেখতে।
কমান্ড লিস্টে ফিরে যান ↑
tar, zip, এবং unzip কমান্ড
লিনাক্সে tar কমান্ড আর্কাইভড ফাইল তৈরি এবং এক্সট্রাক্ট করতে ব্যবহৃত হয়। আমরা tar কমান্ড ব্যবহার করে একাধিক ভিন্ন আর্কাইভ ফাইল এক্সট্রাক্ট করতে পারি।
আর্কাইভ তৈরি করতে, আমরা -c প্যারামিটার ব্যবহার করি, এবং আর্কাইভ এক্সট্রাক্ট করতে, -x প্যারামিটার ব্যবহার করি। কীভাবে কাজ করে সেটি দেখি।
#Compress root@ubuntu:~# tar -cvf <archive name> <files separated by space> #Extract root@ubuntu:~# tar -xvf <archive name>

প্রথম লাইনে, আমরা Compress.tar নামে একটি আর্কাইভ তৈরি করেছি New-File এবং New-File-Link দিয়ে। পরবর্তী কমান্ডে, আমরা সেসব ফাইল আর্কাইভ থেকে এক্সট্রাক্ট করেছি।
আরও zip এবং unzip কমান্ড নিয়ে আলোচনা করি। উভয়ই খুব স্ট্রেইটফরওয়ার্ড। আপনি সেগুলো কোনো প্যারামিটার ছাড়া ব্যবহার করতে পারেন, এবং সেগুলো ইন্টেন্ডেড মতো কাজ করবে। নিচে একটি উদাহরণ দেখুন।
root@ubuntu:~# zip <archive name> <file names separated by space> root@ubuntu:~# unzip <archive name>

যেহেতু সেসব ফাইল ইতিমধ্যে একই ডিরেক্টরিতে আছে, unzip কমান্ড আমাদের ওভাররাইট করার আগে প্রম্পট করছে।
কমান্ড লিস্টে ফিরে যান ↑
grep কমান্ড লিনাক্সে
grep কমান্ড লিনাক্স এবং ইউনিক্স-ভিত্তিক অপারেটিং সিস্টেমে একটি শক্তিশালী এবং बहু-उপযোগী টেক্সট সার্চ টুল। এটি এক বা একাধিক ফাইলে নির্দিষ্ট প্যাটার্ন বা স্ট্রিং সার্চ করতে পারে এবং অন্যান্য কমান্ডের আউটপুট ফিল্টার করতে পারে।
grep কমান্ড означаয় "global regular expression print," যা এর ক্ষমতা প্রতিফলিত করে একাধিক লাইন এবং ফাইল জুড়ে রেগুলার এক্সপ্রেশন সার্চ করার।
root@ubuntu:~# <Any command with output> | grep "<string to find>"

এটি কমান্ডটির একটি সিম্পল ডেমন্স্ট্রেশন। grep কমান্ড সম্পর্কে আরও জানুন।
কমান্ড লিস্টে ফিরে যান ↑
head এবং tail কমান্ড
বড় ফাইল আউটপুট করার সময়, head এবং tail কমান্ডগুলো কাজে আসে। এই কমান্ডগুলো একটি ফাইলের শুরু বা শেষ অংশ প্রদর্শন করে। এগুলো সাধারণত একটি ফাইল টেক্সট এডিটরে না খুলেই দ্রুত এর কন্টেন্ট ভিউ করার জন্য ব্যবহৃত হয়।
head এবং tail কমান্ড ডিফল্টলি একটি ফাইলের প্রথম ১০ লাইন দেখায়। ভিন্ন সংখ্যক লাইন দেখাতে, আপনি -n অপশন ব্যবহার করতে পারেন, তারপর আপনি जितנה লাইন দেখাতে চান সেই সংখ্যা।
head এবং tail কমান্ড ব্যবহারের একটি উদাহরণ:
root@ubuntu:~# head <file name> root@ubuntu:~# tail <file name>

দেখুন, head কমান্ড ফাইলের টপ থেকে ১০ লাইন দেখালো।

tail কমান্ড ফাইলের বটম ১০ লাইন আউটপুট করল।
এই কমান্ডগুলো দ্রুত ফাইল কন্টেন্ট ভিউ করতে, রিয়েল-টাইম আপডেট মনিটর করতে ট্রাবলশুটিং-এর জন্য, অন্যান্য কমান্ডের আউটপুট ফিল্টার করতে, এবং লগ অ্যানালিসিস করতে ব্যবহৃত হতে পারে।
কমান্ড লিস্টে ফিরে যান ↑
diff, comm, এবং cmp কমান্ড
diff, comm, এবং cmp কমান্ডগুলো লিনাক্স এবং ইউনিক্স-ভিত্তিক অপারেটিং সিস্টেমে ফাইল তুলনা করতে ব্যবহৃত হয়। এই কমান্ডগুলো দুটি ফাইলের মধ্যে পার্থক্য চিহ্নিত করতে, পরিবর্তন মার্জ করতে, এবং অন্যান্য ফাইল তুলনা টাস্ক করতে পারে।
root@ubuntu:~# diff <file 1> <file 2>

উপরে দেখুন, আমরা New-File-Edited ফাইলে "This line is edited" বলা একটি ছোট টেক্সট পিেস যোগ করেছি।
cmp কমান্ড দুটি ফাইল তুলনা করতে এবং সেগুলোর মধ্যে প্রথম ভিন্ন বাইট ডিসপ্লে করতে ব্যবহৃত হয়। এটি বাইনারি ফাইলের মধ্যে পার্থক্য চিহ্নিত করতে বা ফাইলে করাপশন চেক করতে ব্যবহার করা যায়।
root@ubuntu:~# cmp <file 1> <file 2>

cmp কমান্ড শুধু আমাদের বলে যে কোন লাইন নম্বর ভিন্ন। প্রকৃত টেক্সট নয়।
comm কমান্ড দুটি সোর্টেড ফাইল তুলনা করতে এবং যেসব লাইন প্রতিটি ফাইলে יুনিক এবং যেসব লাইন উভয় ফাইলে কমন সেগুলো ডিসপ্লে করতে ব্যবহৃত হয়।
root@ubuntu:~# comm <file 1> <file2>

বামে এলাইন করা টেক্সট শুধু file 1-এ উপস্থিত। সেন্টারে এলাইন করা টেক্সট শুধু file 2-এ উপস্থিত। এবং ডানে এলাইন করা টেক্সট দুটি ফাইলে উভয়েই উপস্থিত।>
দेखতে পাচ্ছি, বড় ফাইল তুলনা করার সময় এবং সব কিছু একসাথে সাজিয়ে দেখতে চাইলে comm কমান্ড সবচেয়ে বেশি সেন্স মেক করে।
এই তিনটি কমান্ড লিনাক্স এবং ইউনিক্স-ভিত্তিক অপারেটিং সিস্টেমে ফাইল নিয়ে কাজ করার জন্য অপরিহার্য টুল। diff, comm, এবং cmp কমান্ডগুলো কার্যকরভাবে ব্যবহার করার বোঝাপড়া থাকলে, আপনি ফাইলগুলোর মধ্যে পার্থক্য চিহ্নিত করতে, পরিবর্তন মার্জ করতে, এবং অন্যান্য ফাইল তুলনা টাস্ক করতে পারবেন।
এই কমান্ডগুলো আপনাকে ফাইলগুলোর সাথে ইস্যু চিহ্নিত এবং সমাধান করতে, পরিবর্তন ট্র্যাক করতে, এবং ভার্সন কন্ট্রোল মেইনটেইন করতে সাহায্য করতে পারে। আপনি একজন ডেভেলপার হন বা সিস্টেম অ্যাডমিনিস্ট্রেটর, এই কমান্ডগুলো আপনার টুলকিটের অপরিহার্য অংশ।
কমান্ড লিস্টে ফিরে যান ↑
sort কমান্ড লিনাক্সে
sort কমান্ড লিনাক্স এবং ইউনিক্স-ভিত্তিক অপারেটিং সিস্টেমে একটি টেক্সট ফাইল বা স্ট্যান্ডার্ড ইনপুটের লাইন সোর্ট করতে ব্যবহৃত হয়। এটি লাইনগুলো অ্যাসেন্ডিং বা ডেসেন্ডিং অর্ডারে সোর্ট করতে পারে এবং অন্যান্য সর্টিং অপারেশন করতে পারে, যেমন ফিল্ড অনুযায়ী সোর্ট করা বা কাস্টম সর্টিং অর্ডার ব্যবহার করা।
sort কমান্ডের বেসিক সিনট্যাক্স:
root@ubuntu:~# sort <filename>

ডিফল্টলি, sort কমান্ড লাইনগুলো ASCII কোলেটিং সিকোয়েন্স-এ সোর্ট করে, যা নাম্বার বা স্পেশাল ক্যারেক্টার সোর্ট করার সময় অনপ্রত্যাশিত ফলাফল দিতে পারে। নাম্বারগুলো নামেরিক্যাল অর্ডারে সোর্ট করতে, আপনি -n অপশন ব্যবহার করতে পারেন।
-n অপশন ব্যবহারের একটি উদাহরণ:
root@ubuntu:~# sort -n file.txt
উপরের কমান্ড file.txt-এ লাইনগুলো নামেরিক্যাল অর্ডারে সোর্ট করবে।
sort কমান্ড নির্দিষ্ট ফিল্ডের ওপর ভিত্তি করে লাইন সোর্ট করতে -k অপশন দিয়েও ব্যবহার করা যায়।
-k অপশন ব্যবহারের একটি উদাহরণ:
root@ubuntu:~# sort -k 2 file.txt
এই কমান্ড file.txt-এ লাইনগুলো দ্বিতীয় ফিল্ডের ভিত্তিতে সোর্ট করবে।
sort কমান্ড লিনাক্স এবং ইউনিক্স-ভিত্তিক অপারেটিং সিস্টেমে টেক্সট ফাইল নিয়ে কাজ করার জন্য একটি শক্তিশালী এবং লচীلا টুল। sort কমান্ড কার্যকরভাবে ব্যবহার করার বোঝাপড়া থাকলে, আপনি টেক্সট ফাইলের লাইন সোর্ট করতে, নির্দিষ্ট ফিল্ডের ভিত্তিতে লাইন সোর্ট করতে, এবং অন্যান্য সর্টিং অপারেশন করতে পারবেন।
এই কমান্ডগুলো আপনাকে ডেটা সংগঠিত এবং বিশ্লেষণ করতে এবং অন্যান্য ফাইল ম্যানিপুলেশন টাস্ক করতে সাহায্য করতে পারে। আপনি একজন ডেভেলপার হন বা সিস্টেম অ্যাডমিনিস্ট্রেটর, sort কমান্ড আপনার টুলকিটের অপরিহার্য অংশ।
কমান্ড লিস্টে ফিরে যান ↑
export কমান্ড লিনাক্সে
লিনাক্স এবং ইউনিক্স-ভিত্তিক অপারেটিং সিস্টেমে export কমান্ড এনভায়রনমেন্ট ভেরিয়েবল সেট করতে ব্যবহৃত হয়। এনভায়রনমেন্ট ভেরিয়েবল এমন ইনফরমেশন স্টোর করতে ব্যবহৃত হয় যা প্রসেস বা কমান্ড দ্বারা ব্যবহার করা যায়।
একবার একটি এনভায়রনমেন্ট ভেরিয়েবল সেট হয়ে গেলে, সেটি একই শেলে চলমান যেকোনো প্রসেস বা কমান্ড দ্বারা অ্যাক্সেস করা যায়।
এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করা যায় বিশাল পরিসরের ইনফরমেশন স্টোর করতে, যেমন কনফিগারেশন সেটিংস, ইউজার প্রেফারেন্স, বা সিস্টেম ইনফরমেশন।
export কমান্ড ব্যবহারের একটি উদাহরণ:
root@ubuntu:~# export <variable name>=<value>

export কমান্ড সম্পর্কে আরও জানুন
কমান্ড লিস্টে ফিরে যান ↑
ssh কমান্ড লিনাক্সে
লিনাক্স এবং ইউনিক্স-ভিত্তিক অপারেটিং সিস্টেমে ssh কমান্ড একটি রিমোট সার্ভারের সাথে সিকিউর শেল কানেকশন স্থাপন করে। কমান্ডটি লোকাল এবং রিমোট সার্ভারের মধ্যে একটি সিকিউর এনক্রিপ্টেড কানেকশন প্রদান করে, যা ব্যবহারকারীদের রিমোটলি কমান্ড রান এবং সিকিউরলি ফাইল ট্রান্সফার করার অনুমতি দেয়।
ssh কমান্ডের বেসিক সিনট্যাক্স:
root@ubuntu:~ ssh username@remote-server
এই কমান্ড username অ্যাকাউন্ট ব্যবহার করে remote-server-এ একটি ssh কানেকশন স্থাপন করে।
ssh কমান্ড ব্যাপক রেঞ্জের অপশন এবং কনফিগারেশন সাপোর্ট করে, যার মধ্যে:
- অথেন্টিকেশন মেথড কনফিগার করা (পাসওয়ার্ড, পাবলিক কি, ইত্যাদি)
- এনক্রিপশন অ্যালগরিদম কনফিগার করা
- কম্প্রেশন কনফিগার করা
- পোর্ট ফরওয়ার্ডিং কনফিগার করা
- X11 ফরওয়ার্ডিং কনফিগার করা
- SSH কি কনফিগার করা
service কমান্ড লিনাক্সে
লিনাক্সে service কমান্ড সিস্টেম সার্ভিস ম্যানেজ করতে ব্যবহৃত হয়, যেগুলো বুট টাইমে শুরু হওয়া দীর্ঘ-চলমান প্রসেস যা ব্যাকগ্রাউন্ডে চলে। এই সার্ভিসগুলো বিভিন্ন সিস্টেম ফাংশনালিটি প্রদান করার জন্য দায়িত্বশীল, যেমন নেটওয়ার্কিং, ডাটাবেস ম্যানেজমেন্ট, এবং ইউজার অথেন্টিকেশন।
service কমান্ড এই সার্ভিসগুলো স্টার্ট, স্টপ, রিস্টার্ট, এবং স্ট্যাটাস চেক করতে ব্যবহৃত হয়। এটি systemctl কমান্ডের একটি ফ্রন্ট-এন্ড, যা systemd সার্ভিস ম্যানেজার ম্যানেজ করতে ব্যবহৃত হয়।
কমান্ডের বেসিক সিনট্যাক্স নিচে দেওয়া হলো।
root@ubuntu:~ service ssh status root@ubuntu:~ service ssh stop root@ubuntu:~ service ssh start

ছবিতে দেখুন, আমাদের সিস্টেমে ssh সার্ভার চলছে।
কমান্ড লিস্টে ফিরে যান ↑
ps, kill, এবং killall কমান্ড
ps, kill, এবং killall কমান্ডগুলো লিনাক্সে প্রসেস ম্যানেজ করতে ব্যবহৃত হয়।
ps কমান্ড সিস্টেমে বর্তমান চলমান প্রসেস সম্পর্কে ইনফরমেশন ডিসপ্লে করতে ব্যবহৃত হয়। ps কমান্ড ব্যবহারের কিছু উদাহরণ:
সকল চলমান প্রসেসের লিস্ট দেখান:
root@ubuntu:~ ps -ef
এক নির্দিষ্ট প্রসেস আইডি (PID) এর সকল প্রসেসের লিস্ট দেখান:
root@ubuntu:~ ps -p PID
এই সব কিছু একশনে দেখি:
root@ubuntu:~ ps root@ubuntu:~ kill <process ID> root@ubuntu:~ killall <process name>
ডেমন্স্ট্রেশন পাপসের জন্য, আমরা একটি ইনফিনিট লুপ সহ একটি শেল স্ক্রিপ্ট তৈরি করব এবং ব্যাকগ্রাউন্ডে রান করব।
& সিম্বল ব্যবহার করে আমরা একটি প্রসেস ব্যাকগ্রাউন্ডে পাস করতে পারি। দেখুন, PID ১৪৪৯০ সহ একটি নতুন bash প্রসেস তৈরি হয়েছে।

এখন, kill কমান্ড দিয়ে একটি প্রসেস কিল করতে, আপনি kill টাইপ করুন তারপর প্রসেসের PID(Process Id)।

কিন্তু আপনি যদি প্রসেস আইডি না জানেন এবং শুধু নাম দিয়ে প্রসেস কিল করতে চান, তবে killall কমান্ড ব্যবহার করতে পারেন।

আপনি লক্ষ্য করবেন PID 14490 একটিভ रहा। কারণ, দুবারই আমরা sleep প্রসেস কিল করেছি।
ps কমান্ড এবং kill কমান্ড সম্পর্কে আরও জানুন।
কমান্ড লিস্টে ফিরে যান ↑
df এবং mount কমান্ড
লিনাক্সে কাজ করার সময়, df এবং mount কমান্ড ফাইলসিস্টেম মাউন্ট করতে এবং ফাইল সিস্টেমের ডিটেইলস পাওয়ার খুব দক্ষ ইউটিলিটি।
df কমান্ড ফাইল সিস্টেমে ব্যবহৃত এবং উপলব্ধ ডিস্ক স্পেস ডিসপ্লে করতে ব্যবহৃত হয়, এবং mount কমান্ড একটি ফাইল সিস্টেম বা ডিভাইস একটি নির্দিষ্ট ডিরেক্টরিতে মাউন্ট করতে ব্যবহৃত হয়।
যখন আমরা mount বলি, এর মানে আমরা ডিভাইসটি একটি ফোল্ডারের সাথে কানেক্ট করব যাতে আমরা আমাদের ফাইলসিস্টেম থেকে ফাইলগুলো এক্সেস করতে পারি। ফাইলসিস্টেম মাউন্ট করার ডিফল্ট সিনট্যাক্স নিচে:
root@ubuntu:~ mount /dev/cdrom /mnt root@ubuntu:~ df -h
উপরের কেসে, /dev/cdrom হলো মাউন্ট করার জন্য ডিভাইস। সাধারণত, একটি মাউন্টযোগ্য ডিভাইস /dev ফোল্ডারের ভিতরে থাকে। mnt হলো ডেস্টিনেশন ফোল্ডার যেখানে ডিভাইসটি মাউন্ট করা হবে। আপনি এটা যেকোনো ফোল্ডারে পরিবর্তন করতে পারেন, কিন্তু আমরা /mnt ব্যবহার করেছি কারণ এটি ডিভাইস মাউন্ট করার সিস্টেমের ডিফল্ট ফোল্ডার।
মাউন্ট করা ডিভাইস দেখতে এবং সেসব সম্পর্কে আরও ইনফরমেশন পেতে, আমরা df কমান্ড ব্যবহার করি। শুধু df টাইপ করলে আমাদের ডেটা বাইটসে मिलবে, যা পড়া যায় না। তাই, আমরা ডেটা হিউম্যান-রিডেবল করার জন্য -h প্যারামিটার ব্যবহার করব।

কমান্ড লিস্টে ফিরে যান ↑
chmod এবং chown কমান্ড
chmod এবং chown কমান্ড লিনাক্সে ফাইল পারমিশন এবং ওনারশিপ মডিফাই করতে ব্যবহৃত হয়।
chmod কমান্ড একটি ফাইল বা ডিরেক্টরির পারমিশন পরিবর্তন করতে ব্যবহৃত হয়, এবং chown কমান্ড একটি ফাইল বা ডিরেক্টরির ওনারশিপ পরিবর্তন করতে ব্যবহৃত হয়।
দুই কমান্ডের ডিফল্ট সিনট্যাক্স chmod <parameter> filename এবং chown <user:group> filename
root@ubuntu:~ chmod +x loop.sh root@ubuntu:~ chmod root:root loop.sh

উপরের উদাহরণে, আমরা chmod কমান্ড দিয়ে loop.sh ফাইলে এক্সিকিউটেবল পারমিশন যোগ করছি। আরো, chown কমান্ড দিয়ে, আমরা এটিকে শুধু রুট ইউজার এবং রুট গ্রুপের ব্যবহারকারীদের জন্য অ্যাক্সেসযোগ্য করেছি।

আপনি লক্ষ্য করবেন, root root পার্টটি এখন www-data এ পরিবর্তন হয়েছে যেটি নতুন ইউজার যিনি ফুল ফাইল ওনারশিপ পেয়েছেন।
লিনাক্স ফাইল পারমিশন এবং chmod কমান্ড ব্যবহারের সম্পর্কে আরও জানুন।
কমান্ড লিস্টে ফিরে যান ↑
ifconfig এবং traceroute কমান্ড
ifconfig এবং traceroute কমান্ড লিনাক্সে নেটওয়ার্ক ইন্টারফেস ম্যানেজ করে এবং নেটওয়ার্ক প্যাকেটের রুট ট্রেস করে।
ifconfig কমান্ড আপনাকে সকল নেটওয়ার্ক ইন্টারফেসের লিস্ট IP অ্যাড্রেস, MAC অ্যাড্রেস এবং ইন্টারফেস সম্পর্কে অন্যান্য ইনফরমেশনসহ দেবে।
root@ubuntu:~ ifconfig
বহু প্যারামিটার ব্যবহার করা যায়, কিন্তু এখানে আমরা বেসিক কমান্ড দিয়ে কাজ করব।

traceroute কমান্ড নেটওয়ার্ক প্যাকেটের রুট ট্রেস করতে এবং সেগুলো একটি নির্দিষ্ট ডেস্টিনেশনে পৌঁছানোর পাথ নির্ধারণ করতে ব্যবহৃত হয়।
traceroute নিয়ে কাজ করার সময়, আপনি সিম্পলি এন্ডপয়েন্টের IP অ্যাড্রেস, হোস্টনেম, বা ডোমেইন নাম স্পেসিফাই করতে পারেন।
root@ubuntu:~ traceroute <destination address>

এখন, বুলionen, localhost শুধু এক হপ (নেটওয়ার্ক ইন্টারফেস নিজে)। আপনি এই কমান্ডটি যেকোনো অন্য ডোমেইন নাম বা IP অ্যাড্রেসের সাথে ট্রাই করতে পারেন আপনার ডেটা প্যাকেট গন্তব্যে পৌঁছানোর জন্য যে সকল রাউটার পাস করে সেগুলো দেখতে।
কমান্ড লিস্টে ফিরে যান ↑
wget কমান্ড লিনাক্সে
আপনি যদি টার্মিনালের ভিতরে থেকে একটি ফাইল ডাউনলোড করতে চান, wget কমান্ড সবচেয়ে হ্যান্ডি কমান্ড-লাইন ইউটিলিটির একটি। এটি সোর্স ফাইল নিয়ে কাজ করার সময় আপনার জানা থাকা গুরুত্বপূর্ণ লিনাক্স কমান্ডের একটি।
আপনি ডাউনলোডের জন্য যে লিংক স্পেসিফাই করবেন, সেটি সরাসরি ফাইলটির লিংক হতে হবে। যদি wget কমান্ড ফাইলটি অ্যাক্সেস না করতে পারে, তবে সেটি আপনার চাওয়া আসলে ফাইলটি নয়, বরং ওয়েবপেজটি HTML ফরম্যাটে ডাউনলোড করবে।
একটি উদাহরণ ট্রাই করি। wget কমান্ডের বেসিক সিনট্যাক্স:
root@ubuntu:~ wget <link to file>
অথবা,
root@ubuntu:~ wget -c <link to file>
-c আর্গুমেন্ট আমাদের একটি বাধাগ্রস্ত ডাউনলোড রিজিউম করতে দেয়।
কমান্ড লিস্টে ফিরে যান ↑
ufw এবং iptables কমান্ড
ufw এবং iptables কমান্ড লিনাক্সে ফায়ারওয়াল ম্যানেজ করতে ব্যবহৃত হয়।
UFW এবং IPTables লিনাক্স কার্নেলের netfilter ফায়ারওয়ালের জন্য ফায়ারওয়াল ইন্টারফেস। IPTables সরাসরি ফায়ারওয়াল রুল netfilter-এ পাস করে যখন UFW IPTables-এ রুল কনফিগার করে, যা পরে সেসব রুল netfilter-এ পাঠায়।
IPTables থাকা সত্ত্বেও আমাদের UFW কেন দরকার? কারণ IPTables একজন নতুন ব্যবহারকারীর জন্য খুব কঠিন। UFW জিনিসগুলো অত্যন্ত সহজ করে দেয়। নিচের উদাহরণ দেখুন যেখানে আমরা আমাদের ওয়েবসার্ভারের জন্য পোর্ট ৮০ അ্যালো করার চেষ্টা করছি।
root@ubuntu:~# iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT root@ubuntu:~# ufw allow 80
আমি নিশ্চিত আপনি এখন বুঝতে পারছেন কেন UFW তৈরি করা হয়েছিল! দেখুন সিনট্যাক্স কত সহজ হয়ে গেছে। এই দুটি ফায়ারওয়াল খুব কমপ্রিহেনসিভ এবং আপনাকে আপনার নেটওয়ার্কের জন্য যেকোনো ধরনের কনফিগারেশন তৈরি করতে দেয়। কমপক্ষে UFW বা IPTables ফায়ারওয়ালের বেসিক শিখুন, কারণ এগুলো আপনার জানা থাকা লিনাক্স কমান্ড।
ufw দিয়ে ফায়ারওয়াল ম্যানেজ করার এবং iptables দিয়ে ফায়ারওয়াল ম্যানেজ করার সম্পর্কে আরও জানুন।
কমান্ড লিস্টে ফিরে যান ↑
লিনাক্সে প্যাকেজ ম্যানেজার
বিভিন্ন লিনাক্স ডিস্ট্রিবিউশন ভিন্ন প্যাকেজ ম্যানেজার ব্যবহার করে। যেহেতু আমরা একটি উবুন্টু সার্ভারে কাজ করছি, আমাদের apt প্যাকেজ ম্যানেজার আছে। কিন্তু কেউ যদি ফেডোরা, রেড হ্যাট, আর্চ, বা সেন্টোস মেশিনে কাজ করে, তাদের প্যাকেজ ম্যানেজার ভিন্ন হবে।
নিচে ভিন্ন লিনাক্স ডিস্ট্রিবিউশনে এই প্যাকেজ ম্যানেজার কীভাবে ব্যবহার করতে হয় সেটি দেওয়া হলো।
- ডেবিয়ান এবং ডেবিয়ান-ভিত্তিক ডিস্ট্রো -
apt install <package name> - আর্চ এবং আর্চ-ভিত্তিক ডিস্ট্রো -
pacman -S <package name> - রেড হ্যাট এবং রেড হ্যাট-ভিত্তিক ডিস্ট্রো -
yum install <package name> - ফেডোরা এবং CentOS -
yum install <package>
আপনার ডিস্ট্রিবিউশনের প্যাকেজ ম্যানেজারের সাথে ভালোভাবে পরিচিত হওয়া দীর্ঘমেয়াদে আপনার জন্য জিনিসগুলো অনেক সহজ করে দেবে। তাই আপনার যদি GUI-ভিত্তিক প্যাকেজ ম্যানেজমেন্ট টুল ইনস্টলড থাকে, চেষ্টা করুন CLI-ভিত্তিক টুলটি ব্যবহার করার আগে GUI ইউটিলিটিতে যাওয়া। আপনার জানা থাকা লিনাক্স কমান্ডের লিস্টে এগুলো যোগ করুন।
কমান্ড লিস্টে ফিরে যান ↑
sudo কমান্ড লিনাক্সে
"বড় ক্ষমতার সাথে বড় দায়িত্ব আসে"_
এটি সে উক্তিটি যা একটি sudo-এনাবলড ইউজার (sudoer) প্রথমবার sudo কমান্ড ব্যবহার করে প্রিভিলেজ এস্কালেট করার সময় দেখে। এই কমান্ড root-এ লগ ইন করার সমতুল্য (যে পারমিশন আপনার sudoer হিসেবে আছে তার ভিত্তিতে)।
non-root-user@ubuntu:~# sudo <command you want to run> Password:
যেকোনো কমান্ড যা আপনি এস্কেলেটেড প্রিভিলেজে চালাতে চান তার আগে শুধু sudo কমান্ড যোগ করুন, এবং তেরি। এটি ব্যবহার করা খুব সহজ, কিন্তু এটা একটি সংযোজিত সিকিউরিটি রিস্কও হতে পারে যদি একটি ম্যালিশিয়াস ইউজার একজন sudoer-এ অ্যাক্সেস পায়।
নতুন sudo ইউজার তৈরি করার এবং sudoers ফাইল এডিট করার সম্পর্কে আরও জানুন।
কমান্ড লিস্টে ফিরে যান ↑
cal কমান্ড লিনাক্সে
আপনি কি কখনো টার্মিনালে ক্যালেন্ডার দেখতে চেয়েছেন? আশaatstে এটা চাওয়া লোকেরা আছে, এবংخب, ইহা আছেই।
cal কমান্ড টার্মিনালে একটি সুন্দর ক্যালেন্ডার ডিসপ্লে করে। শুধু আপনার টার্মিনাল প্রম্পটে cal কমান্ড এন্টার করুন।
root@ubuntu:~# cal root@ubuntu:~# cal March 2024

যদিও আমাদের এটা প্রায়ই লাগে না, এটা একটি গ্রেট অ্যাডিশন! টার্মিনাল ফ্যানদের জন্য এটি একটি অসম্ভাব্য অপশন।
কমান্ড লিস্টে ফিরে যান ↑
alias কমান্ড
আপনার কি কিছু কমান্ড রয়েছে যেগুলো টার্মিনাল ব্যবহার করার সময় আপনি খুব ঘন ঘন রান করেন? সেটি হতে পারে rm -r বা ls -l, অথবা কিছু বড় কমান্ড যেমন tar -xvzf।
এটি আপনার জানা থাকা প্রোডাক্টিভিটি-বুস্টিং লিনাক্স কমান্ডের একটি।
আপনি যদি জানেন একটি কমান্ড যা আপনি খুব ঘন ঘন রান করেন, তখন একটি alias তৈরি করার সময়।
এলিয়াস কী? সহজ ভাষায়, এটি আপনার ডিফাইন করা একটি কমান্ডের অন্য একটি নাম।
root@ubuntu:~# alias lsl="ls -l" OR root@ubuntu:~# alias rmd="rm -r"
এখন, প্রতিবার আপনি টার্মিনালে lsl বা rmd এন্টার করবেন, আপনি সে আউটপুট পাবেন যা আপনি পূর কমান্ডগুলো ব্যবহার করলে পেতেন।>
এখানে উদাহরণগুলো খুব ছোট কমান্ডের জন্য যা আপনি এখনও হাত দিয়ে টাইপ করতে পারেন। কিন্তু কিছু পরিস্থিতিতে যেখানে একটি কমান্ডের খুব বেশি আর্গুমেন্ট থাকে যা আপনাকে টাইপ করতে হয়, সেখানে সেটির একটি শর্টহ্যান্ড ভার্সন তৈরি করা বেস্ট।
কমান্ড লিস্টে ফিরে যান ↑
dd কমান্ড লিনাক্সে
এই কমান্ড একাধিক ফাইল সিস্টেম ফরম্যাট থেকে ফাইল কনভার্ট এবং কপি করার জন্য তৈরি করা হয়েছিল। বর্তমান দিনে, কমান্ডটি সিম্পলি লিনাক্সের জন্য বুটেবল USB তৈরি করতে ব্যবহৃত হয় কিন্তু এখনও কমান্ডট দিয়ে কিছু গুরুত্বপূর্ণ জিনিস করা যায়।
লিনাক্সে dd কমান্ড একটি বহুমুখী কমান্ড যা ডেটার লো-লেভেল কপি এবং কনভারশনের জন্য ব্যবহৃত হয়। এটি "data-description" বা "data definition" için steht, এবং এটি ভিন্ন ফাইল ফরম্যাট এবং স্টোরেজ ডিভাইসের মধ্যে ডেটা কপি এবং কনভার্ট করতে ব্যবহার করা যায়।
উদাহরণস্বরূপ, আমরা যদি পুরো হার্ড ড্রাইভকে যেন আছে সে অবস্থায় অন্য একটি ড্রাইভে ব্যাক আপ করতে চাই, তবে আমরা dd কমান্ড ব্যবহার করব।
root@ubuntu:~# dd if=/dev/sdb of=/dev/sda
if এবং of আর্গুমেন্ট মানে ইনপুট ফাইল এবং আউটপুট ফাইল।
এটি একটি শক্তিশালী এবং লচীلا টুল, কিন্তু সাবধানে ব্যবহার না করলে এটা খারাপও হতে পারে। এক্সিকিউট করার আগে সর্বদা আপনার সিনট্যাক্স ডাবল চেক করুন এবং নিশ্চিত হন আপনি জানেন কমান্ডটি কী করবে।
কমান্ড লিস্টে ফিরে যান ↑
whereis এবং whatis কমান্ড
whereis এবং whatis কমান্ড লিনাক্সে প্রোগ্রাম এবং ফাইল সম্পর্কে ইনফরমেশন সার্চ করতে ব্যবহৃত হয়।
whereis কমান্ড একটি নির্দিষ্ট কমান্ড বা প্রোগ্রামের বাইনারি, সোর্স, এবং ম্যানুয়াল পেজ লোকেট করে, এবং whatis কমান্ড একটি কমান্ড বা প্রোগ্রামের সংক্ষিপ্ত বিবরণ ডিসপ্লে করে।
root@ubuntu:~# whereis sudo sudo: /usr/bin/sudo /usr/lib/sudo /usr/share/man/man8/sudo.8.gz
whatis কমান্ড আমাদের বোঝায় একটি কоман্ড আসলে কী।
root@ubuntu:~# whatis sudo sudo (8) - execute a command as another user
কমান্ড লিস্টে ফিরে যান ↑
top কমান্ড লিনাক্সে
কয়েক সেকশন আগে, আমরা ps কমান্ড নিয়ে আলোচনা করেছি। আপনি লক্ষ্য করেছিলেন ps কমান্ড এক্টিভ প্রসেস আউটপুট করে এবং নিজে থেমে যায়।
top কমান্ড উইন্ডোজের টাস্ক ম্যানেজারের একটি CLI ভার্সনের মতো।
লিনাক্সে top কমান্ড একটি সিস্টেম মনিটরিং টুল যা সিস্টেম প্রসেস এবং রিসোর্স ব্যবহার সম্পর্কে রিয়েল-টাইম ইনফরমেশন ডিসপ্লে করে। এটি সিস্টেম এক্টিভিটির একটি ডাইনামিক, রিয়েল-টাইম ভিউ প্রদান করে, যার মধ্যে CPU ব্যবহার, মেমরি ব্যবহার, এবং প্রসেস ইনফরমেশন রয়েছে।

নোট: এখানে top কমান্ড ব্যবহারের কিছু উদাহরণ:
- প্রসেস মেমরি ব্যবহার অনুযায়ী সোর্ট করুন:
root@ubuntu:~# top -o MEM
এটি প্রসেস লিস্টকে মেমরি ব্যবহার অনুযায়ী সোর্ট করবে, সবচেয়ে বেশি মেমরি-ইনটেনসিভ প্রসেস টপে থাকবে।
- এক নির্দিষ্ট প্রসেসের ডিটেইল্ড ইনফরমেশন ডিসপ্লে করুন:
root@ubuntu:~# top -p PID
PID-কে আপনি যেটি ইন্সপেক্ট করতে চান সেটির আইডি দিয়ে রিপ্লেস করুন।
- সিস্টেম রিসোর্স ব্যবহারের সামারি ডিসপ্লে করুন:
root@ubuntu:~# top -n 1
এটি সিস্টেম রিসোর্স ব্যবহারের একটি সিঙ্গেল সামারি স্ক্রিন ডিসপ্লে করবে।
এটি সিস্টেম এক্টিভিটি মনিটরিং এবং পারফরম্যান্স ইস্যু ট্রাবলশুট করার জন্য একটি শক্তিশালী এবং লচীلا টুল।
কমান্ড লিস্টে ফিরে যান ↑
useradd এবং usermod কমান্ড
useradd এবং usermod কমান্ড লিনাক্সে ইউজার অ্যাকাউন্ট ম্যানেজ করতে ব্যবহৃত হয়।
useradd বা adduser কমান্ডগুলো একই কমান্ড যেখানে adduser শুধু useradd কমান্ডের একটি সিম্বলিক লিংক। এই কমান্ড আমাদের লিনাক্সে একটি নতুন ইউজার তৈরি করতে দেয়।
root@ubuntu:~# useradd JournalDev -d /home/JD
উপরের কমান্ড JournalDev নামে একটি নতুন ইউজার তৈরি করবে যার হোম ডিরেক্টরি /home/JD।
দूसरी ओर, usermod কমান্ড বিদ্যমান ইউজার মডিফাই করতে ব্যবহৃত হয়। আপনি ইউজারের যেকোনো ভ্যালু মডিফাই করতে পারেন যার মধ্যে গ্রুপ, পারমিশন, ইত্যাদি।
উদাহরণস্বরূপ, আপনি যদি ইউজারের অধিক গ্রুপ যোগ করতে চান, তবে টাইপ করুন:
root@ubuntu:~# usermod JournalDev -a -G sudo, audio, mysql
কমান্ড লিস্টে ফিরে যান ↑
passwd কমান্ড লিনাক্সে
এখন যেহেতু আপনি জানেন কীভাবে নতুন ইউজার তৈরি করতে হয়, চলুন তাদের জন্য পাসওয়ার্ডও সেট করি। passwd কমান্ড আপনাকে আপনার নিজের অ্যাকাউন্টের পাসওয়ার্ড সেট করতে দেয়, অথবা আপনার পারমিশন থাকলে অন্য অ্যাকাউন্টের পাসওয়ার্ড সেট করতে দেয়।
passwd কমান্ড ব্যবহারের কিছু উদাহরণ:
বর্তমান ইউজারের পাসওয়ার্ড পরিবর্তন করুন:
root@ubuntu:~# passwd
এটি বর্তমান ইউজারের জন্য একটি নতুন পাসওয়ার্ড ইনপুট করার জন্য প্রম্পট করবে।
এক নির্দিষ্ট ইউজারের পাসওয়ার্ড পরিবর্তন করুন:
root@ubuntu:~# passwd username
username-কে আপনি যার পাসওয়ার্ড পরিবর্তন করতে চান তার নাম দিয়ে রিপ্লেস করুন।
এক ইউজারকে নেক্সট লগইনে তাদের পাসওয়ার্ড পরিবর্তন করতে বাধ্য করুন:
root@ubuntu:~# passwd -f usernameএক ইউজারের পাসওয়ার্ডের এক্সপায়ারেশন ডেট সেট করুন:
root@ubuntu:~# passwd -e -n days -w warndays username
days-কে পাসওয়ার্ড এক্সপায়ার হওয়ার আগের দিনের সংখ্যা দিয়ে এবং warm days-কে পাসওয়ার্ড এক্সপায়ার হওয়ার আগের দিনের সংখ্যা দিয়ে রিপ্লেস করুন যা ইউজারকে সতর্ক করা হবে।
লিনাক্সে passwd কমান্ড ব্যবহারের এগুলো শুধু কয়েকটি উদাহরণ। এই কমান্ডটি কার্যকরভাবে ব্যবহার করার বোঝাপড়া থাকলে, আপনি ইউজার অ্যাকাউন্ট ম্যানেজ করতে এবং নিশ্চিত করতে পারবেন যে আপনার সিস্টেম সিকিউর।

কমান্ড লিস্টে ফিরে যান ↑
সাধারণ ত্রুটি এবং ডিবাগিং
লিনাক্স কমান্ড নিয়ে কাজ করার সময়, আপনি বিভিন্ন ত্রুটি এবং সমস্যার সম্মুখীন होতে পারেন। এখানে কিছু সাধারণ সমস্যা এবং তাদের সমাধান:
১. "command not found" এরর ফিক্স করা
আপনি যদি command not found এরর পান, এর মানে আপনি যে কমান্ডটি রান করার চেষ্টা করছেন সেটি সিস্টেম দ্বারা রিকগ্নাইজড নয়। এটা কয়েকটি কারণ থেকে হতে পারে:
কমান্ডটি আপনার সিস্টেমে ইনস্টলড নয়। আপনি আপনার প্যাকেজ ম্যানেজার (যেমন
apt,yum,dnf) দিয়ে ইনস্টল করতে পারেন।আপনি যদি দেখেন:
bash: xyz: command not foundব্যবহার করুন:
which xyzযদি কমান্ডটি ইনস্টলড না থাকে, ইনস্টল করার চেষ্টা করুন:
apt-get install <package-name>কমান্ডটি আপনার সিস্টেমের PATH-এ নেই। আপনি কমান্ডটি যে ডিরেক্টরিতে আছে সেটি আপনার PATH-এ যোগ করতে পারেন।
export PATH=$PATH:/path/to/commandআপনি একটি টাইপো করেছেন। কোনো স্পেলিং এররের জন্য কমান্ডটি ডাবল চেক করুন।
২. sudo দিয়ে পারমিশন ইস্যু সমাধান
আপনি যদি পারমিশন ইস্যু সম্মুখীন হন, আপনি sudo ব্যবহার করে সুপারইউজার প্রিভিলেজে কমান্ড রান করতে পারেন। উদাহরণস্বরূপ:
sudo command_name
৩. ফাইল কনফ্লিক্ট হ্যান্ডল করা
ফাইল কনফ্লিক্ট হতে পারে যখন একাধিক ইউজার বা প্রসেস একসাথে একই ফাইল মডিফাই করার চেষ্টা করে। ফাইল কনফ্লিক্ট হ্যান্ডল করার কিছু উপায়:
ভার্সন কন্ট্রোল সিস্টেম (VCS) ব্যবহার করুন: Git-এর মতো টুল ফাইল কনফ্লিক্ট ম্যানেজ করতে সাহায্য করে ব্যবহারকারীদের পরিবর্তন মার্জ করতে এবং কনফ্লিক্ট ম্যানুয়ালি রেজলভ করতে দিয়ে।
git merge <branch_name>যদি কনফ্লিক্ট থাকে, Git আপনাকে সেগুলো রেজলভ করার জন্য প্রম্পট করবে। কনফ্লিক্টিং ফাইলগুলো খুলুন, প্রয়োজনীয় পরিবর্তন করুন, এবং তারপর রেজলভড ফাইলগুলো কমিট করুন।
git add <resolved_file> git commit -m "Resolved merge conflict"লকিং মেকানিজম: একই ফাইলে একসাথে একাধিক প্রসেস লিখতে না পারলে ফাইল লকিং ইমপ্লিমেন্ট করুন। লিনাক্সে
flockব্যবহার করে একটি ফাইলে লক তৈরি করুন।flock -x <file> -c "<command>"অটোমিক অপারেশন: অটোমিক অপারেশন ব্যবহার করুন যাতে ফাইল রাইট একটি সিঙ্গেল স্টেপে কমপ্লিট হয়, কনফ্লিক্টের রিস্ক কমিয়ে।
mv temp_file target_fileঅথবা,
mvসাথে-f(ফোর্স) বাcpসাথে-i(ইন্টারঅ্যাক্টিভ) ব্যবহার করুন:mv -f file1 file2 cp -i file1 file2
৪. পারফরম্যান্স বটলनेक ডিবাগ করা
পারফরম্যান্স বটলनेक আপনার সিস্টেমের দক্ষতাকে উল্লেখযোগ্যভাবে প্রভাবিত করতে পারে। সেগুলো ডিবাগ এবং রেজলভ করার কিছু ধাপ:
বটলनेक চিহ্নিত করুন:
top,htop,vmstat, এবংiostatபோன்ற টুল ব্যবহার করে সিস্টেম পারফরম্যান্স মনিটর করুন এবং বটলनेक সৃষ্টি করছে যেই রিসোর্সটি (CPU, মেমরি, ডিস্ক I/O, ইত্যাদি) সেটি চিহ্নিত করুন।topলগ বিশ্লেষণ করুন: সিস্টেম এবং অ্যাপ্লিকেশন লগ চেক করুন যেকোনো এরর বা সতর্কতার জন্য যা পারফরম্যান্স ইস্যু ইঙ্গিত দিতে পারে।
tail -f /var/log/syslogকোড অপ্টিমাইজ করুন: আপনার কোড রিভিউ এবং অপ্টিমাইজ করুন পারফরম্যান্স উন্নত করতে। অদক্ষ অ্যালগরিদম, অপ্রয়োজনীয় কম্পিউটেশন, এবং মেমরি লিক খুঁজুন।
আপনার অ্যাপ্লিকেশন প্রোফাইল করুন:
gprof,perf, বাvalgrindমত প্রোফাইলিং টুল ব্যবহার করে আপনার অ্যাপ্লিকেশনের পারফরম্যান্স বিশ্লেষণ করুন এবং স্লো ফাংশন বা মেমরি ইস্যু চিহ্নিত করুন।gprof <executable> gmon.outরিসোর্স স্কেল করুন: যদি বটলनेक রিসোর্স লিমিটেশনের কারণে হয়, হার্ডওয়ার স্কেল আপ করার কথা ভাবুন বা লোড ব্যালেন্সিং ব্যবহার করে একাধিক সার্ভারের ওপর লোড বিতরণ করুন।
FAQs
১. সবচেয়ে বেশি ব্যবহৃত লিনাক্স কমান্ডগুলো কী?
সবচেয়ে বেশি ব্যবহৃত লিনাক্স কমান্ডগুলো شامل: cd, ls, mkdir, rm, cp, mv, echo, cat, grep, find, man, sudo, apt-get, ssh, ping, df, du, free, top, ps, kill, killall, service, systemctl, reboot, shutdown, whoami, uname, uptime, history, এবং clear।
২. লিনাক্সে সকল উপলব্ধ কমান্ড কীভাবে লিস্ট করব?
আপনি compgen -c কমান্ড ব্যবহার করে লিনাক্সে সকল উপলব্ধ কমান্ড লিস্ট করতে পারেন। এটি আপনার সিস্টেমে উপলব্ধ সকল কমান্ডের একটি লিস্ট দেখাবে।
৩. লিনাক্সে ফাইল কীভাবে খুঁজে বের করব?
আপনি লিনাক্সে find কমান্ড ব্যবহার করে ফাইল খুঁজে বের করতে পারেন। বেসিক সিনট্যাক্স হলো find <path> -name "<filename>", যেখানে <path> হলো সার্চ শুরু করার ডিরেক্টরি, এবং <filename> হলো আপনি যে ফাইলটি খুঁজছেন তার নাম। উদাহরণস্বরূপ, find /home/user -name "example.txt"।
৪. লিনাক্সে প্রসেস কীভাবে কিল করব?
আপনি লিনাক্সে kill কমান্ড ব্যবহার করে প্রসেস কিল করতে পারেন। প্রথমে, আপনাকে যে প্রসেসটি কিল করতে চান তার প্রসেস আইডি (PID) খুঁজে বের করতে হবে ps বা top কমান্ড ব্যবহার করে। তারপর, kill কমান্ড ব্যবহার করুন PID-এর সাথে। উদাহরণস্বরূপ, kill 1234, যেখানে 1234 প্রসেসটির PID।
৫. cp এবং mv এর পার্থক্য কী?
cp কমান্ড ফাইল বা ডিরেক্টরি কপি করতে ব্যবহৃত হয়, যখন mv কমান্ড ফাইল বা ডিরেক্টরি সরানো বা রিনেম করতে ব্যবহৃত হয়। cp মূল ফাইলের একটি ডুপ্লিকেট তৈরি করে, মূলটি অক্ষত রেখে, 반면 mv ফাইলটিকে একটি নতুন লোকেশনে সরিয়ে দেয়, মূল লোকেশন থেকে সরিয়ে দিয়ে।
৬. আমার লিনাক্স সিস্টেমের মেমরি ব্যবহার কীভাবে চেক করব?
আপনি আপনার লিনাক্স সিস্টেমের মেমরি ব্যবহার free কমান্ড ব্যবহার করে চেক করতে পারেন। এই কমান্ড সিস্টেমে মোট ফ্রি এবং ইউজড ফিজিক্যাল এবং সওয়াপ মেমরি ডিসপ্লে করে। উদাহরণস্বরূপ, free -h হিউম্যান-রিডেবল ফরম্যাটে মেমরি ব্যবহার দেখাবে।
উপসংহার
এই টিউটোরিয়ালে, আপনি ৫০টিরও বেশি অপরিহার্য লিনাক্স কমান্ড এক্সপ্লোর করেছেন যা ফাইল ও ডিরেক্টরি ম্যানেজমেন্ট, প্রসেস কন্ট্রোল, ইউজার পারমিশন, নেটওয়ার্কিং, টেক্সট প্রসেসিং, এবং শেল ইউটিলিটি কভার করে। আপনি বাস্তব উদাহরণ, ট্রাবলশুটিং প্যাটার্ন, এবং সম্পর্কিত কমান্ডগুলোর তুলনার মাধ্যমে কাজ করেছেন।
এখন আপনি লিনাক্স ফাইলসিস্টেম নেভিগেট করতে, প্রসেস ম্যানেজ করতে, পারমিশন কনফিগার করতে, এবং কমান্ড লাইন থেকে সাধারণ সমস্যা ট্রাবলশুট করতে পারবেন। এই কমান্ডগুলো কার্যকর লিনাক্স সিস্টেম অ্যাডমিনিস্ট্রেশন এবং স্ক্রিপ্টিং-এর ফাউন্ডেশন তৈরি করে।
নির্দিষ্ট টপিকের ওপর আরও গভীরে যেতে, এই টিউটোরিয়ালগুলো এক্সপ্লোর করুন:
- লিনাক্স/ইউনিক্সে Grep কমান্ড
- লিনাক্স/ইউনিক্সে ls কমান্ড
- লিনাক্সে প্রসেস ম্যানেজমেন্ট
- লিনাক্সে ps কমান্ড
- লিনাক্স টার্মিনালের ভূমিকা
এই কাজটি ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন-ননকমার্শিয়াল- শেয়ারঅ্যালাইক ৪.০ আন্তর্জাতিক লাইসেন্সের অধীনে লাইসেন্সপ্রাপ্ত।