বাংলায় কমান্ড লাইন ইন্টারফেস (CLI) FILE SYSTEM । র্পাট-২
Md Sinikdhoআজকের এই ব্লগে আমরা লিনাক্স ফাইল সিস্টেম এর একদম শুরু থেকে শেষ পর্যন্ত(File System Hierarchy, Navigation, File Operations, এবং Advanced Searching) সব কিছু সোজা বাংলা ভাষায় বুঝার চেষ্টা করবো এবং প্রাক্টিক্যালি উদাহরণ সহ জানব।

১. লিনাক্স ফাইল সিস্টেম হায়ারার্কি (Linux File System Hierarchy)
উন্ডোজে যেমন আলাদা আলাদা ড্রাইভ থাকে ,লিনাক্স এ তেমন নাই , এখানে সব শুরু হয় একটি মাত্র ডিরেক্টরি থেকে ,যাকে বলা হয় Root (/) . এটিকে একটি গাছের গোড়ার সাথে তুলনা করতে পারেন, যেখান থেকে বাকি সব ডালপালা বা ফোল্ডার বের হয়েছে।
চলুন প্রধান ফোল্ডারগুলোর কাজ সংক্ষেপে জেনে নেওয়া যাক:
ফোল্ডারকাজ ও বিবরণ:
/Root: লিনাক্সের মূল ডিরেক্টরি। সবকিছু এখান থেকেই শুরু।/binEssential Binaries: সাধারণ ব্যবহারকারীদের জন্য প্রয়োজনীয় সব কম্যান্ড যেমনls,cp,mvএখানে থাকে।/sbinSystem Binaries: সিস্টেম অ্যাডমিনিস্ট্রেটর বা Root ইউজারের প্রয়োজনীয় কম্যান্ডগুলো এখানে থাকে।/bootBootloader: কম্পিউটার বুট বা চালু হওয়ার জন্য প্রয়োজনীয় ফাইল এবং কার্নেল ইমেজ এখানে থাকে।/devDevice Files: লিনাক্সে সবকিছুই ফাইল। আপনার পেনড্রাইভ, মাউস বা ডিস্কও এখানে ফাইল হিসেবে থাকে।/etcSystem Configuration: পুরো সিস্টেমের এবং বিভিন্ন সফটওয়্যারের কনফিগারেশন ফাইল এখানে থাকে।/homeUser Home: সাধারণ ইউজারদের পার্সোনাল ফোল্ডার (যেমন:/home/alice)।/rootRoot Home: সিস্টেমের মেইন অ্যাডমিন বা সুপারইউজারের নিজস্ব হোম ডিরেক্টরি।/libLibraries: সিস্টেমের বাইনারি ফাইলগুলো চলার জন্য প্রয়োজনীয় শেয়ার্ড লাইব্রেরি।/media&/mntMount Points: পেনড্রাইভ বা এক্সটার্নাল হার্ডডিস্ক সাময়িকভাবে যুক্ত করার জায়গা।/optOptional Software: থার্ড-পার্টি বা বাইরে থেকে ইনস্টল করা বড় সফটওয়্যারের ফাইল এখানে থাকে।/proc&/sysVirtual Filesystem: এগুলো আসলে হার্ডডিস্কে জায়গা নেয় না। বর্তমানে কোন কোন প্রসেস চলছে এবং হার্ডওয়্যারের অবস্থা কী, তা রিয়েল-টাইমে দেখায়।/tmpTemporary Files: সাময়িক ফাইল রাখার জায়গা, যা কম্পিউটার রিবুট করলেই মুছে যায়।/usrUser Programs: ব্যবহারকারীর সব প্রোগ্রাম ও ডেটা থাকে। এর ভেতরেও/usr/binবা/usr/localথাকে।/varVariable Data: যেসব ফাইলের সাইজ প্রতিনিয়ত বদলায়, যেমন—সিস্টেমের লগ (/var/log) বা ডেটাবেস।২. ফাইল সিস্টেমে ঘোরাঘুরি
টার্মিনালে কাজ করার সময় আপনি বর্তমানে কোথায় আছেন এবং কীভাবে অন্য ফোল্ডারে যাবেন, তা জানার জন্য নিচের কম্যান্ডগুলো ব্যবহৃত হয়:
আমি এখন কোথায় আছি?
pwd # Print Working Directory: এটি আপনার বর্তমান লোকেশন দেখাবে (যেমন: /home/alice)
ফোল্ডার পরিবর্তন করা (cd)
Absolute Path: একদম গোড়া (
/) থেকে পথ নির্দিষ্ট করে দেওয়া:
Relative Path: আপনি বর্তমানে যেখানে আছেন, সেখান থেকে সামনে যাওয়া:
cd Documents
ওপরে যাওয়া ও ফিরে আসা:
cd .. # এক ধাপ ওপরে বা পেছনে যাওয়া cd ../.. # দুই ধাপ ওপরে যাওয়া cd ~ # সরাসরি নিজের হোম ডিরেক্টরিতে ফিরে যাওয়া cd - # ঠিক এর ঠিক আগে যে ফোল্ডারে ছিলেন সেখানে ফিরে যাওয়া (খুবই কাজের!)
# ফাইলের তালিকা দেখা (`ls`)
একটি ফোল্ডারের ভেতর কী কী ফাইল আছে তা দেখতে `ls` ব্যবহার করা হয়। তবে এর কিছু দারুণ অপশন (Flags) আছে:
ls # সাধারণ তালিকা
ls -l # ফাইলের পারমিশন, মালিক, সাইজ ও তারিখসহ ডিটেইলস দেখাবে
ls -a # হিডেন ফাইলসহ (যেগুলোর নামের শুরুতে ডট `.` থাকে) সব দেখাবে
ls -lah # ডিটেইলস + হিডেন ফাইল + সাইজগুলো KB/MB-তে সহজে দেখাবে
ls -lt # নতুন ফাইলগুলো আগে রেখে সময় অনুযায়ী সাজাবে
ls -lS # বড় ফাইলগুলো আগে রেখে সাইজ অনুযায়ী সাজাবে
ls -R # সাব-ডিরেক্টরি বা ভেতরের ফোল্ডারের ফাইলগুলোও একসাথে দেখাবে
৩. ফাইল তৈরি, কপি, মুভ এবং ডিলিট করা
⚠️ সতর্কতা: লিনাক্স কম্যান্ড লাইনে কোনো ফাইল ডিলিট করলে তা সাধারণত উইন্ডোজের মত 'Trash Bin'-এ যায় না, সরাসরি পার্মানেন্টলি ডিলিট হয়ে যায়। তাই ডিলিট কম্যান্ড ব্যবহারের সময় সাবধান!
তৈরি করা (Creation)
touch newfile.txt # একটি খালি ফাইল তৈরি করা
touch file1 file2 file3 # একসাথে একাধিক ফাইল তৈরি করা
mkdir mydir # নতুন ফোল্ডার বা ডিরেক্টরি তৈরি করা
mkdir -p a/b/c # একের ভেতর আরেকটা নেস্টেড ফোল্ডার তৈরি করা
mkdir -p project/{src,tests,docs} # ব্রেস এক্সপেনশন ব্যবহার করে একসাথে ৩টি ফোল্ডার তৈরিকপি করা (Copy)
cp file.txt copy.txt # ফাইল কপি করা
cp -r dir/ backup/ # পুরো ফোল্ডার ভেতরের সব ফাইলসহ কপি করা (Recursive)
cp -p file.txt copy.txt # ফাইলের পারমিশন এবং তৈরি হওয়ার সময় অক্ষুণ্ণ রেখে কপি করা
cp -i file.txt copy.txt # ওভাররাইট করার আগে পারমিশন চাইবে (Interactive)
মুভ ও নাম পরিবর্তন (Move & Rename)
লিনাক্সে ফাইল মুভ করা এবং রিনেম করার কম্যান্ড একই—mv।
mv file.txt newname.txt # ফাইলের নাম পরিবর্তন করা
mv file.txt /tmp/ # ফাইলটিকে /tmp ফোল্ডারে পাঠিয়ে দেওয়া
mv -i src dest # আগে থেকে ফাইল থাকলে ওভাররাইট করার আগে জিজ্ঞেস করবে
ডিলিট করা (Delete)
rm file.txt # ফাইল ডিলিট করা
rm -i file.txt # ডিলিট করার আগে নিশ্চিত হতে জিজ্ঞেস করবে
rm -r mydir/ # ফোল্ডার এবং তার ভেতরের সব কিছু ডিলিট করা
rm -rf mydir/ # জোরপূর্বক ডিলিট (কোনো ওয়ার্নিং দেবে না, অত্যন্ত বিপজ্জনক!)
rmdir emptydir/ # শুধুমাত্র খালি ফোল্ডার ডিলিট করার জন্য
লিংক তৈরি (Links)
ln -s /path/to/target link_name # শর্টকাট বা সফট লিংক তৈরি করা
ln /path/to/file hardlink_name # হার্ড লিংক তৈরি করা
৪. অ্যাডভান্সড সার্চিং: find কম্যান্ড
ফাইল সিস্টেমে কোনো ফাইল খুঁজে পাচ্ছেন না? find কম্যান্ড রিয়েল-টাইমে পুরো হার্ডডিস্ক খুঁজে ফাইল বের করতে পারে। এর সিনট্যাক্স হলো: find [কোথায় খুঁজবেন] [কী খুঁজবেন] [অ্যাকশন]।
নাম দিয়ে খোঁজা
find /home -name "*.log" # /home ফোল্ডারের সব .log ফাইল খুঁজবে
find . -name "config.yml" # বর্তমান ফোল্ডার ও তার নিচে খুঁজবে
find / -name "passwd" 2>/dev/null # পারমিশন এররগুলো হাইড করে পুরো সিস্টেমে খুঁজবে
find . -iname "readme*" # ছোট বা বড় হাতের অক্ষর (Case-insensitive) মিলিয়ে খুঁজবে
টাইপ এবং সাইজ দিয়ে খোঁজা
find . -type f # শুধু ফাইল খুঁজবে
find . -type d # শুধু ফোল্ডার খুঁজবে
find / -size +100M # ১০০ মেগাবাইটের চেয়ে বড় ফাইল খুঁজবে
find . -size +1M -size -500M # ১ এমবি থেকে ৫০০ এমবির মাঝের ফাইল খুঁজবে
সময় ও পারমিশন দিয়ে খোঁজা
find . -mtime -7 # গত ৭ দিনে মডিফাই বা পরিবর্তন করা ফাইল
find /var/www -perm 777 # যার পারমিশন 777 এমন ফাইল
find /home -user alice # alice নামের ইউজারের সব ফাইল
খুঁজে পেয়ে সাথে সাথে কাজ করা (Actions)
find . -name "*.tmp" -delete # সব .tmp ফাইল খুঁজে ডিলিট করে দেবে
find . -name "*.sh" -exec chmod +x {} \; # সব .sh ফাইলকে এক্সিকিউটেবল করবে
৫. সুপারফাস্ট সার্চিং: locate
find কম্যান্ড সরাসরি ডিস্কে খোঁজে বলে কিছুটা সময় নিতে পারে। কিন্তু locate একটি প্রি-বিল্ট ডেটাবেস থেকে খোঁজে, তাই এটি রকেটের গতিতে কাজ করে।
locate passwd # 'passwd' নামের সব ফাইল মুহূর্তেই দেখাবে
locate -i readme # কেস-ইনসেনসিটিভ সার্চ
💡 টিপস: যেহেতু এটি ডেটাবেস ব্যবহার করে, তাই একদম নতুন তৈরি করা ফাইল এটি তাৎক্ষণিক নাও পেতে পারে। ডেটাবেস আপডেট করতে রান করুন:
sudo updatedb
৬. ডিস্কের জায়গা চেক করা (df এবং du)
আপনার হার্ডডিস্কে কতটুকু জায়গা খালি আছে বা কোন ফোল্ডার কতটুকু জায়গা দখল করে আছে তা জানা খুবই জরুরি।
df (Disk Free) — ড্রাইভের টোটাল স্পেস দেখতে
df -h # Human-readable (GB/MB) আকারে পুরো ডিস্কের ব্যবহার দেখাবে
df -hT # সাথে ফাইল সিস্টেমের টাইপও (ext4, vfat ইত্যাদি) দেখাবে
du (Disk Usage) — ফোল্ডারের সাইজ দেখতে
du -sh /var/log # /var/log ফোল্ডারটি মোট কত সাইজ নিয়েছে তা দেখাবে
du -sh * | sort -rh # বর্তমান ফোল্ডারের সবকিছু সাইজ অনুযায়ী বড় থেকে ছোট সাজাবে
প্রো-টিপ: সিস্টেমের টপ ১০টি বড় ফাইল খোঁজা
find / -type f -printf '%s %p\n' 2>/dev/null | sort -rn | head -10 | awk '{print $1/1024/1024 "MB " $2}'
7. কিছু দরকারি প্রো-টিপস (Pro Tips)
ফাইলের ভেতরটা দেখা: পুরো ফাইল না খুলে টার্মিনালে দেখতে
cat file.txtব্যবহার করুন। ফাইল বড় হলে স্ক্রোল করে দেখতেless file.txtব্যবহার করুন (বন্ধ করতেqচাপুন)।লাইভ লগ দেখা: কোনো সার্ভার বা অ্যাপ্লিকেশনের লাইভ লগ ট্র্যাক করতে
tail -f /var/log/syslogকম্যান্ডটি জাদুর মত কাজ করে। ফাইল আপডেট হওয়ার সাথে সাথে টার্মিনালেও তা লাইভ দেখা যায়।ব্রেস এক্সপেনশন (Brace Expansion): ডাইনামিক কাজ করার দারুণ ট্রিক। যেমন একটি ফাইলের আজকের ডেটসহ ব্যাকআপ নিতে চান? লিখুন:
cp config.yml config.yml.{bak,$(date +%Y%m%d)} এটি নিমেষেই `config.yml.bak20260617` নামে ব্যাকআপ তৈরি করে দেবে!লিনাক্স ফাইল সিস্টেম এবং এই বেসিক কম্যান্ডগুলোর ওপর দখল চলে আসলে লিনাক্স ব্যবহার করা উইন্ডোজের চেয়েও অনেক সহজ হয়ে যাবে
মন্তব্যসমূহ (0)
মন্তব্য করতে লগইন করুন
Login to Comment