UNIX / LINUX বেসিক কমান্ডস
UNIX এবং LINUX সিস্টেমে কাজ করতে হলে, কিছু বেসিক কমান্ড জানা অত্যন্ত গুরুত্বপূর্ণ। এগুলি সাধারণত ফাইল সিস্টেম পরিচালনা, ফাইল কপি, ডিলিট, এবং অন্যান্য সিস্টেম-সম্পর্কিত কাজের জন্য ব্যবহৃত হয়। নিচে কিছু সাধারণ এবং গুরুত্বপূর্ণ UNIX / LINUX কমান্ডের তালিকা এবং তাদের ব্যবহার দেখানো হলো:
1. ls - ফাইল এবং ডিরেক্টরি তালিকা দেখা
এই কমান্ডটি ব্যবহার করে বর্তমান ডিরেক্টরির সব ফাইল এবং ডিরেক্টরি দেখতে পারেন।
lsআরও বিস্তারিত তালিকা পেতে -l (long listing) অপশন ব্যবহার করা হয়:
ls -l2. cd - ডিরেক্টরি পরিবর্তন করা
আপনি যদি কোন ডিরেক্টরি পরিবর্তন করতে চান, তাহলে cd কমান্ড ব্যবহার করেন।
cd /path/to/directoryযেখানে /path/to/directory হলো আপনি যেখানে যেতে চান সেই ডিরেক্টরির পাথ।
3. pwd - বর্তমান কাজের ডিরেক্টরি দেখানো
বর্তমান কাজের ডিরেক্টরি দেখতে pwd কমান্ড ব্যবহার করা হয়।
pwd4. cp - ফাইল কপি করা
ফাইল কপি করতে cp কমান্ড ব্যবহার করা হয়। উদাহরণস্বরূপ:
cp source_file destination_fileএখানে source_file হলো মূল ফাইল এবং destination_file হলো যেখানে আপনি ফাইলটি কপি করতে চান।
5. mv - ফাইল স্থানান্তর বা নাম পরিবর্তন
ফাইল স্থানান্তর বা নাম পরিবর্তন করতে mv কমান্ড ব্যবহার করা হয়।
mv old_filename new_filenameএটি ফাইলের নাম পরিবর্তন করবে অথবা নির্দিষ্ট ডিরেক্টরিতে ফাইলটি স্থানান্তর করবে।
6. rm - ফাইল মুছে ফেলা
ফাইল মুছে ফেলতে rm কমান্ড ব্যবহার করা হয়।
rm filenameএকাধিক ফাইল মুছে ফেলতে:
rm file1 file2ডিরেক্টরি এবং তার মধ্যে থাকা সমস্ত ফাইল মুছে ফেলতে -r (recursive) অপশন ব্যবহার করা হয়:
rm -r directory_name7. mkdir - নতুন ডিরেক্টরি তৈরি
নতুন ডিরেক্টরি তৈরি করতে mkdir কমান্ড ব্যবহার করা হয়।
mkdir directory_name8. rmdir - খালি ডিরেক্টরি মুছে ফেলা
যদি ডিরেক্টরি খালি হয়, তবে rmdir কমান্ড দিয়ে ডিরেক্টরি মুছে ফেলতে পারেন।
rmdir directory_name9. cat - ফাইলের বিষয়বস্তু দেখানো
একটি ফাইলের বিষয়বস্তু দেখতে cat কমান্ড ব্যবহার করা হয়।
cat filename10. touch - ফাইল তৈরি করা
নতুন ফাইল তৈরি করতে touch কমান্ড ব্যবহার করা হয়। যদি ফাইলটি ইতোমধ্যে থাকে, তবে এটি ফাইলের টাইমস্ট্যাম্প আপডেট করে।
touch filename11. echo - টেক্সট প্রদর্শন
echo কমান্ড ব্যবহার করে টেক্সট প্রদর্শন করা হয়।
echo "Hello, World!"12. man - কমান্ড ম্যানুয়াল দেখানো
প্রতিটি কমান্ডের সাহায্য পাওয়ার জন্য man কমান্ড ব্যবহার করা হয়। উদাহরণস্বরূপ, ls কমান্ডের সাহায্য পেতে:
man ls13. chmod - ফাইল বা ডিরেক্টরির পারমিশন পরিবর্তন
ফাইল বা ডিরেক্টরির পারমিশন পরিবর্তন করতে chmod কমান্ড ব্যবহার করা হয়।
chmod 755 filenameএখানে 755 হলো পারমিশনের মোড, যেখানে 7 নির্দেশ করে যে ফাইলের মালিক রিড, রাইট এবং এক্সিকিউট করতে পারবে, এবং অন্যান্যরা শুধুমাত্র রিড এবং এক্সিকিউট করতে পারবে।
14. chown - ফাইলের মালিকানা পরিবর্তন
ফাইলের মালিকানা পরিবর্তন করতে chown কমান্ড ব্যবহার করা হয়।
chown username:groupname filenameএখানে username হলো নতুন মালিকের নাম এবং groupname হলো গ্রুপের নাম।
15. df - ডিস্ক স্পেস ব্যবহার দেখানো
ডিস্কে কতটুকু স্থান ব্যবহৃত এবং কতটুকু খালি আছে, তা দেখতে df কমান্ড ব্যবহার করা হয়।
df -h16. top - সিস্টেম রিসোর্স ব্যবহার দেখানো
সিস্টেমের রানটাইম কার্যক্রম ও রিসোর্স ব্যবহার দেখাতে top কমান্ড ব্যবহার করা হয়। এটি রিয়েল-টাইমে CPU, মেমরি, প্রক্রিয়া ইত্যাদি সম্পর্কে তথ্য দেখাবে।
top17. ps - চলমান প্রক্রিয়া দেখানো
প্রতিটি চলমান প্রক্রিয়া সম্পর্কে তথ্য পেতে ps কমান্ড ব্যবহার করা হয়।
ps auxসারসংক্ষেপ
UNIX এবং LINUX সিস্টেমের সাথে কাজ করার জন্য এই বেসিক কমান্ডগুলি অত্যন্ত গুরুত্বপূর্ণ। এই কমান্ডগুলির মাধ্যমে আপনি ফাইল ও ডিরেক্টরি পরিচালনা, সিস্টেমের রিসোর্স দেখা, এবং অন্যান্য কার্যক্রম সহজে সম্পন্ন করতে পারবেন।
ফাইল এবং ডিরেক্টরি সম্পর্কিত কমান্ড
ফাইল এবং ডিরেক্টরি সম্পর্কিত বিভিন্ন কাজের জন্য UNIX এবং LINUX সিস্টেমে কিছু সাধারণ কমান্ড ব্যবহৃত হয়। এই কমান্ডগুলি ব্যবহার করে আপনি ফাইল এবং ডিরেক্টরি তৈরি, মুছা, কপি, সরানো এবং অন্যান্য কাজ করতে পারেন। নিচে ls, cd, pwd, mkdir, rmdir, cp, mv, rm কমান্ডের বিস্তারিত ব্যাখ্যা দেয়া হলো:
1. ls (List)
ls কমান্ড ব্যবহৃত হয় বর্তমান ডিরেক্টরির মধ্যে থাকা ফাইল এবং সাব-ডিরেক্টরির তালিকা দেখার জন্য।
- ব্যবহার:
ls [অপশন] [ডিরেক্টরি] - যেমন:
ls: বর্তমান ডিরেক্টরির ফাইল এবং ডিরেক্টরির তালিকা দেখাবে।ls -l: বিস্তারিত তালিকা দেখাবে (ফাইলের সাইজ, অনুমতি, মালিক, পরিবর্তনের তারিখ ইত্যাদি)।ls -a: গোপন ফাইল (যেগুলি.দিয়ে শুরু হয়) দেখাবে।
2. cd (Change Directory)
cd কমান্ড ব্যবহৃত হয় বর্তমান কাজের ডিরেক্টরি পরিবর্তন করার জন্য।
- ব্যবহার:
cd [ডিরেক্টরি] - যেমন:
cd /home/user:/home/userডিরেক্টরিতে চলে যাবে।cd ..: এক স্তরের উপরের ডিরেক্টরিতে চলে যাবে।cd: হোম ডিরেক্টরিতে ফিরে যাবে।cd -: আগের ডিরেক্টরিতে ফিরে যাবে।
3. pwd (Print Working Directory)
pwd কমান্ড ব্যবহৃত হয় বর্তমান কাজের ডিরেক্টরির পূর্ণপথ দেখতে।
- ব্যবহার:
pwd - যেমন:
pwd: বর্তমান ডিরেক্টরির পূর্ণ পাথ দেখাবে। যেমন/home/user/Documents।
4. mkdir (Make Directory)
mkdir কমান্ড ব্যবহার করা হয় নতুন ডিরেক্টরি তৈরি করার জন্য।
- ব্যবহার:
mkdir [ডিরেক্টরি নাম] - যেমন:
mkdir newfolder: বর্তমান ডিরেক্টরিতেnewfolderনামের একটি নতুন ডিরেক্টরি তৈরি করবে।mkdir -p parent/child:parentনামে একটি ডিরেক্টরি তৈরি করবে এবং তার মধ্যেchildনামে একটি সাব-ডিরেক্টরি তৈরি করবে (যদিparentডিরেক্টরি না থাকে তবে সেটি তৈরি হবে)।
5. rmdir (Remove Directory)
rmdir কমান্ড ব্যবহৃত হয় একটি খালি ডিরেক্টরি মুছে ফেলার জন্য।
- ব্যবহার:
rmdir [ডিরেক্টরি নাম] - যেমন:
rmdir oldfolder:oldfolderনামের খালি ডিরেক্টরি মুছে ফেলবে।- দ্রষ্টব্য: যদি ডিরেক্টরির মধ্যে কিছু ফাইল বা সাব-ডিরেক্টরি থাকে তবে এটি কাজ করবে না।
6. cp (Copy)
cp কমান্ড ব্যবহার করা হয় একটি ফাইল বা ডিরেক্টরি কপি করার জন্য।
- ব্যবহার:
cp [উত্স ফাইল] [গন্তব্য] - যেমন:
cp file1.txt /home/user/Documents/:file1.txtফাইলটি/home/user/Documents/ডিরেক্টরিতে কপি করবে।cp -r folder1 /home/user/:folder1ডিরেক্টরি এবং এর সমস্ত কন্টেন্ট কপি করবে।cp file1.txt file2.txt:file1.txtফাইলের একটি কপি তৈরি করবেfile2.txtনামে।
7. mv (Move)
mv কমান্ড ব্যবহার করা হয় ফাইল বা ডিরেক্টরি স্থানান্তর বা নাম পরিবর্তন করতে।
- ব্যবহার:
mv [উত্স ফাইল/ডিরেক্টরি] [গন্তব্য ফাইল/ডিরেক্টরি] - যেমন:
mv file1.txt /home/user/Documents/:file1.txtফাইলটি/home/user/Documents/ডিরেক্টরিতে স্থানান্তর করবে।mv file1.txt file2.txt:file1.txtফাইলটির নাম পরিবর্তন করেfile2.txtকরবে।mv folder1 newfolder/:folder1ডিরেক্টরিnewfolder/ডিরেক্টরিতে স্থানান্তর করবে।
8. rm (Remove)
rm কমান্ড ব্যবহার করা হয় ফাইল বা ডিরেক্টরি মুছে ফেলার জন্য।
- ব্যবহার:
rm [ফাইল/ডিরেক্টরি] - যেমন:
rm file1.txt:file1.txtফাইলটি মুছে ফেলবে।rm -r folder1:folder1ডিরেক্টরি এবং এর সমস্ত কন্টেন্ট মুছে ফেলবে।rm -f file1.txt:file1.txtফাইলটি জোরপূর্বক মুছে ফেলবে (যদি এটি লেখাযোগ্য না হয় তাও)।
সারসংক্ষেপ
ফাইল এবং ডিরেক্টরি সম্পর্কিত এই কমান্ডগুলি লিনাক্স বা ইউনিক্স সিস্টেমে খুবই গুরুত্বপূর্ণ। এগুলি ব্যবহার করে আপনি সহজেই ফাইল তৈরি, স্থানান্তর, মুছা, কপি এবং অন্যান্য কার্যক্রম সম্পন্ন করতে পারেন। এই কমান্ডগুলির মাধ্যমে আপনি সিস্টেমের ফাইল সিস্টেমকে খুবই কার্যকরভাবে পরিচালনা করতে পারবেন।
ফাইল দেখার কমান্ড: cat, more, less, head, tail
UNIX এবং LINUX সিস্টেমে ফাইলের বিষয়বস্তু দেখতে বিভিন্ন কমান্ড ব্যবহৃত হয়। প্রতিটি কমান্ডের নিজস্ব বিশেষ বৈশিষ্ট্য রয়েছে এবং এগুলি ব্যবহারকারীদের জন্য ফাইলের বিষয়বস্তু দেখতে সুবিধাজনকভাবে কাজ করে। নিচে cat, more, less, head, এবং tail কমান্ডগুলির ব্যাখ্যা দেওয়া হল।
1. cat (concatenate)
cat কমান্ডটি ফাইলের বিষয়বস্তু প্রদর্শন করার জন্য ব্যবহৃত হয়। এটি সাধারণত ছোট ফাইলগুলো দেখার জন্য ব্যবহৃত হয়, কারণ এটি পুরো ফাইলটি একবারে প্রদর্শন করে এবং স্ক্রল করা বা পেজিং করার সুযোগ দেয় না।
ব্যবহার:
cat <filename>উদাহরণ:
cat file.txtএই কমান্ডটি file.txt ফাইলটির বিষয়বস্তু সম্পূর্ণভাবে টার্মিনালে প্রদর্শন করবে।
অতিরিক্ত অপশন:
cat file1.txt file2.txt: একাধিক ফাইলকে একসাথে দেখাবে।cat -n file.txt: ফাইলের প্রতিটি লাইনের নম্বর সহ প্রদর্শন করবে।
2. more
more কমান্ডটি একটি পেজিং প্রোগ্রাম যা ফাইলের বিষয়বস্তু একাধিক পৃষ্ঠায় বিভক্ত করে প্রদর্শন করে, এবং ব্যবহারকারীকে স্ক্রল করার মাধ্যমে ফাইলটি দেখার সুযোগ দেয়। এটি বড় ফাইলগুলো দেখার জন্য বেশি ব্যবহার করা হয়।
ব্যবহার:
more <filename>উদাহরণ:
more file.txtএই কমান্ডটি ফাইলের প্রথম পৃষ্ঠা প্রদর্শন করবে এবং ব্যবহারকারীকে স্ক্রল করার জন্য নির্দেশনা প্রদান করবে।
স্ক্রল করার কীগুলি:
- Spacebar: পরবর্তী পৃষ্ঠায় চলে যাবে।
- Enter: এক লাইন নিচে চলে যাবে।
- q:
moreথেকে বেরিয়ে আসবে।
3. less
less কমান্ডটি more কমান্ডের মতোই, তবে এটি আরও বেশি কার্যক্ষম এবং ব্যবহারকারীর জন্য বেশি সুবিধাজনক। এটি ব্যবহারকারীদের ফাইলের বিষয়বস্তু উপরে এবং নিচে স্ক্রল করার সুবিধা প্রদান করে এবং বড় ফাইলগুলো আরও সহজে দেখার সুযোগ দেয়।
ব্যবহার:
less <filename>উদাহরণ:
less file.txtস্ক্রল করার কীগুলি:
- Up Arrow / Down Arrow: উপরে বা নিচে স্ক্রল করবে।
- Spacebar: পরবর্তী পৃষ্ঠায় যাবে।
- b: আগের পৃষ্ঠায় ফিরে যাবে।
- q:
lessথেকে বেরিয়ে আসবে।
অতিরিক্ত সুবিধা:
lessকমান্ড ফাইলের মধ্যে খোঁজ করার জন্য/ব্যবহার করতে দেয়, যেমন **/search_term**। এটি খুঁজে পাবে যেখানেsearch_termফাইলের মধ্যে আছে।
4. head
head কমান্ডটি ফাইলের প্রথম কিছু লাইন প্রদর্শন করার জন্য ব্যবহৃত হয়। ডিফল্টভাবে এটি প্রথম ১০টি লাইন প্রদর্শন করে, তবে আপনি এটি কাস্টমাইজ করে দেখতে পারেন।
ব্যবহার:
head <filename>উদাহরণ:
head file.txtএই কমান্ডটি file.txt ফাইলটির প্রথম ১০টি লাইন প্রদর্শন করবে।
অতিরিক্ত অপশন:
head -n 20 file.txt: প্রথম ২০টি লাইন প্রদর্শন করবে।head -n -10 file.txt: ফাইলের শেষ ১০টি লাইন বাদে প্রথমের সব লাইন দেখাবে।
5. tail
tail কমান্ডটি ফাইলের শেষ কিছু লাইন প্রদর্শন করার জন্য ব্যবহৃত হয়। এটি ফাইলের শেষে কী ঘটছে তা দেখার জন্য খুবই কার্যকরী। ডিফল্টভাবে, এটি শেষ ১০টি লাইন দেখায়।
ব্যবহার:
tail <filename>উদাহরণ:
tail file.txtএই কমান্ডটি file.txt ফাইলটির শেষ ১০টি লাইন প্রদর্শন করবে।
অতিরিক্ত অপশন:
tail -n 20 file.txt: শেষ ২০টি লাইন প্রদর্শন করবে।tail -f file.txt: লাইভ ফাইল মনিটরিং, যা নতুন তথ্য যোগ হলে তা সরাসরি দেখাবে। এটি লগ ফাইলের জন্য বিশেষভাবে ব্যবহৃত হয়।
সারসংক্ষেপ
| কমান্ড | ব্যাখ্যা | ব্যবহার |
|---|---|---|
cat | ফাইলের পুরো বিষয়বস্তু একবারে প্রদর্শন করে। | cat file.txt |
more | পেজিংয়ের মাধ্যমে ফাইলের বিষয়বস্তু দেখায়। | more file.txt |
less | পেজিং এবং স্ক্রলিংয়ের মাধ্যমে ফাইলের বিষয়বস্তু দেখায়, আরও উন্নত। | less file.txt |
head | ফাইলের প্রথম কিছু লাইন প্রদর্শন করে (ডিফল্ট ১০টি)। | head file.txt |
tail | ফাইলের শেষ কিছু লাইন প্রদর্শন করে (ডিফল্ট ১০টি)। | tail file.txt |
এই কমান্ডগুলো ব্যবহার করে আপনি সহজেই ফাইলের বিষয়বস্তু দেখতে পারবেন এবং আপনার প্রয়োজন অনুসারে স্ক্রল বা পেজিং করতে পারবেন।
ফাইল পারমিশন এবং মালিকানা: chmod, chown, chgrp
ফাইল পারমিশন এবং মালিকানা হল UNIX এবং LINUX সিস্টেমের একটি অত্যন্ত গুরুত্বপূর্ণ বৈশিষ্ট্য, যার মাধ্যমে ফাইল এবং ডিরেক্টরির অ্যাক্সেস নিয়ন্ত্রণ করা হয়। এগুলি সিস্টেমের নিরাপত্তা এবং ব্যবহারকারীদের একে অপরের ফাইল অ্যাক্সেস করার নিয়ম নির্ধারণ করতে সাহায্য করে। chmod, chown, এবং chgrp কমান্ডগুলি ফাইল পারমিশন এবং মালিকানা পরিবর্তন করার জন্য ব্যবহৃত হয়।
ফাইল পারমিশন
ফাইল পারমিশন নির্ধারণ করে কোন ব্যবহারকারী বা গ্রুপ কীভাবে একটি ফাইল বা ডিরেক্টরি অ্যাক্সেস করতে পারে। UNIX এবং LINUX সিস্টেমে তিনটি ধরনের পারমিশন থাকে:
- রিড (Read -
r): ফাইলের বিষয়বস্তু পড়া যায়। - রাইট (Write -
w): ফাইলের বিষয়বস্তু পরিবর্তন বা মুছে ফেলা যায়। - এক্সিকিউট (Execute -
x): ফাইলটিকে প্রোগ্রাম বা স্ক্রিপ্ট হিসেবে চালানো যায়।
ফাইলের তিনটি শ্রেণির পারমিশন থাকে:
- Owner (মালিক): ফাইল বা ডিরেক্টরির মালিক, সাধারণত ব্যবহারকারী।
- Group (গ্রুপ): নির্দিষ্ট একটি গ্রুপের সদস্যরা।
- Others (অন্যরা): অন্যান্য সমস্ত ব্যবহারকারী।
chmod কমান্ড
chmod (চেঞ্জ মড) কমান্ডটি ফাইল বা ডিরেক্টরির পারমিশন পরিবর্তন করার জন্য ব্যবহৃত হয়। এটি দুটি ধাপে কাজ করে:
- সীমান্তে (symbolic) মোডে
- সংখ্যাত্মক (numeric) মোডে
1. সিম্বোলিক মোড:
এখানে আপনি পারমিশন যোগ (অথবা বিয়োগ) করেন, উদাহরণস্বরূপ:
r: রিড পারমিশনw: রাইট পারমিশনx: এক্সিকিউট পারমিশন
কমান্ড উদাহরণ:
- পারমিশন যোগ করা:
chmod +x file.txt(ফাইলটিকে এক্সিকিউট পারমিশন যোগ করবে) - পারমিশন বিয়োগ করা:
chmod -x file.txt(ফাইলের এক্সিকিউট পারমিশন বিয়োগ করবে) - পারমিশন পরিবর্তন করা:
chmod u+x file.txt(মালিকের (user) এক্সিকিউট পারমিশন যোগ করবে)
2. সংখ্যাত্মক মোড:
এখানে প্রতিটি পারমিশন একটি সংখ্যা দ্বারা নির্দেশিত:
- রিড (
r) = 4 - রাইট (
w) = 2 - এক্সিকিউট (
x) = 1
তিনটি ভিন্ন শ্রেণির (owner, group, others) জন্য পারমিশন সেট করতে তিনটি ডিজিটের সংখ্যা ব্যবহার করা হয়।
উদাহরণ:
chmod 755 file.txt- মালিকের জন্য
rwx(4+2+1=7), গ্রুপ এবং অন্যদের জন্যr-x(4+1=5)
- মালিকের জন্য
chmod 644 file.txt- মালিকের জন্য
rw-(4+2=6), গ্রুপ এবং অন্যদের জন্যr--(4=4)
- মালিকের জন্য
chown কমান্ড
chown (চেঞ্জ মালিকানা) কমান্ডটি ফাইল বা ডিরেক্টরির মালিক পরিবর্তন করতে ব্যবহৃত হয়। এর মাধ্যমে মালিক এবং গ্রুপ পরিবর্তন করা সম্ভব।
কমান্ড সিনট্যাক্স:
chown [new_owner]:[new_group] file_nameকমান্ড উদাহরণ:
- মালিক পরিবর্তন:
chown user1 file.txt(ফাইলটির মালিক হবেuser1) - মালিক এবং গ্রুপ পরিবর্তন:
chown user1:admin file.txt(ফাইলটির মালিক হবেuser1এবং গ্রুপ হবেadmin)
chgrp কমান্ড
chgrp (চেঞ্জ গ্রুপ) কমান্ডটি ফাইল বা ডিরেক্টরির গ্রুপ পরিবর্তন করার জন্য ব্যবহৃত হয়। এটি সাধারণত chown কমান্ডের সাথে ব্যবহার করা হয়, তবে এটি শুধু গ্রুপ পরিবর্তন করে।
কমান্ড সিনট্যাক্স:
chgrp [new_group] file_nameকমান্ড উদাহরণ:
- গ্রুপ পরিবর্তন:
chgrp admin file.txt(ফাইলটির গ্রুপ হবেadmin)
উদাহরণ এবং ব্যবহার
chmodউদাহরণ:মালিককে সম্পূর্ণ পারমিশন দেওয়া, অন্যদের রিড পারমিশন দেওয়া:
chmod 744 file.txtসব ব্যবহারকারীকে সম্পূর্ণ পারমিশন দেওয়া:
chmod 777 file.txt
chownউদাহরণ:ফাইলটির মালিক পরিবর্তন করা:
chown user1 file.txtমালিক এবং গ্রুপ পরিবর্তন করা:
chown user1:admin file.txt
chgrpউদাহরণ:ফাইলটির গ্রুপ পরিবর্তন করা:
chgrp admin file.txt
সারসংক্ষেপ
chmodকমান্ডটি ফাইলের পারমিশন পরিবর্তন করে, যা মালিক, গ্রুপ এবং অন্যদের জন্য রিড, রাইট এবং এক্সিকিউট পারমিশন নিয়ন্ত্রণ করে।chownকমান্ডটি ফাইল বা ডিরেক্টরির মালিক পরিবর্তন করে এবংchgrpকমান্ডটি গ্রুপ পরিবর্তন করে।- এই তিনটি কমান্ড UNIX ও LINUX সিস্টেমে নিরাপত্তা এবং অ্যাক্সেস কন্ট্রোলের জন্য অত্যন্ত গুরুত্বপূর্ণ, যা ব্যবহারকারীদের ফাইল ও ডিরেক্টরির উপর নিয়ন্ত্রণ দেয়।
ফাইল এবং ডিরেক্টরি অনুসন্ধান: find, locate
কম্পিউটার সিস্টেমে ফাইল এবং ডিরেক্টরি অনুসন্ধান একটি গুরুত্বপূর্ণ কাজ, বিশেষত যখন সিস্টেমে অনেক ফাইল এবং ডিরেক্টরি থাকে। UNIX এবং LINUX সিস্টেমে ফাইল এবং ডিরেক্টরি অনুসন্ধানের জন্য দুটি প্রধান কমান্ড ব্যবহার করা হয়: find এবং **locate**। এই দুটি কমান্ডের কার্যকারিতা ও ব্যবহারের মধ্যে কিছু পার্থক্য রয়েছে, যা নিচে বিস্তারিতভাবে আলোচনা করা হয়েছে।
1. find কমান্ড
find কমান্ড ব্যবহারকারীদের সিস্টেমে যে কোনো ডিরেক্টরি বা সাব-ডিরেক্টরির মধ্যে ফাইল অনুসন্ধান করতে সহায়তা করে। এটি খুবই শক্তিশালী এবং কাস্টমাইজযোগ্য, কারণ এতে বিভিন্ন অপশন ব্যবহার করে ফাইলের নাম, তারিখ, আকার ইত্যাদি অনুসারে অনুসন্ধান করা যায়।
ব্যবহার:
find [পথ] [অপশন] [অনুসন্ধান শর্ত]উদাহরণ:
একটি নির্দিষ্ট ডিরেক্টরিতে ফাইল খোঁজা:
find /home/user/Documents -name "file.txt"এই কমান্ডটি
/home/user/Documentsডিরেক্টরির মধ্যেfile.txtনামের ফাইল অনুসন্ধান করবে।- বিভিন্ন শর্ত দিয়ে ফাইল খোঁজা:
ফাইলের আকার অনুসারে:
find /home/user/Documents -size +1Gএই কমান্ডটি
/home/user/Documentsডিরেক্টরির মধ্যে ১ গিগাবাইটের বড় ফাইলগুলো খুঁজে বের করবে।ফাইলের শেষ পরিবর্তন তারিখ অনুসারে:
find /home/user -mtime -7এই কমান্ডটি ৭ দিনের মধ্যে পরিবর্তিত ফাইলগুলি খুঁজে বের করবে।
ফাইল মুছে ফেলতে:
find /home/user/Documents -name "*.log" -exec rm -f {} \;এই কমান্ডটি
/home/user/Documentsডিরেক্টরির মধ্যে.logএক্সটেনশনের সকল ফাইল মুছে ফেলবে।ডিরেক্টরি অনুসন্ধান:
find /home/user -type d -name "folder_name"এই কমান্ডটি
/home/userডিরেক্টরির মধ্যেfolder_nameনামের ডিরেক্টরি খুঁজে বের করবে।
find কমান্ডের বৈশিষ্ট্য:
- এটি অনেক বেশি কাস্টমাইজযোগ্য, যেমন ফাইলের মাইম টাইপ, মালিকানা, আকার ইত্যাদি অনুসারে অনুসন্ধান করা।
- এটি রিয়েল টাইমে অনুসন্ধান করে, সুতরাং এটি দ্রুত বা ধীর গতিতে কাজ করতে পারে।
2. locate কমান্ড
locate কমান্ড একটি দ্রুত ফাইল অনুসন্ধান পদ্ধতি প্রদান করে, তবে এটি পূর্বে তৈরি হওয়া একটি ডাটাবেস ব্যবহার করে। এই ডাটাবেসে সিস্টেমের ফাইলের অবস্থান সংরক্ষিত থাকে, যার মাধ্যমে খুব দ্রুত ফাইল খোঁজা সম্ভব হয়। তবে এটি বাস্তবসম্মত সময়ে কাজ করে না এবং নতুন ফাইল বা ডিরেক্টরি তৈরি হলে ডাটাবেস আপডেট হওয়া প্রয়োজন।
ব্যবহার:
locate [ফাইল নাম]উদাহরণ:
ফাইল খোঁজা:
locate file.txtএই কমান্ডটি পুরো সিস্টেমে
file.txtনামের ফাইলের অবস্থান দেখাবে।ফাইলের অংশ অনুসন্ধান:
locate *.txtএই কমান্ডটি সিস্টেমের মধ্যে
.txtএক্সটেনশনের সকল ফাইল খুঁজে বের করবে।
locate কমান্ডের বৈশিষ্ট্য:
- এটি
findথেকে অনেক দ্রুত কাজ করে কারণ এটি একটি ডাটাবেস ব্যবহার করে। - ডাটাবেসটি নিয়মিতভাবে আপডেট করা উচিত, এবং এটি নতুন ফাইল বা ডিরেক্টরি সনাক্ত করতে পারে না যদি ডাটাবেস আপডেট না করা হয়।
- এটি শুধুমাত্র ফাইলের নাম অনুসারে অনুসন্ধান করতে সক্ষম, ফাইলের আকার বা পরিবর্তন তারিখ অনুসন্ধান করতে পারে না।
find এবং locate এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | find | locate |
|---|---|---|
| কাজ করার পদ্ধতি | রিয়েল টাইমে সিস্টেমের ফাইল অনুসন্ধান করে। | একটি পূর্ব-নির্মিত ডাটাবেস ব্যবহার করে। |
| দ্রুততা | ধীর হতে পারে, বিশেষ করে বড় ডিরেক্টরিতে। | অনেক দ্রুত, কারণ এটি ডাটাবেস ব্যবহার করে। |
| কাস্টমাইজেশন | অত্যন্ত কাস্টমাইজযোগ্য, যেমন ফাইলের আকার, মালিকানা ইত্যাদি অনুসারে অনুসন্ধান করা। | সীমিত কাস্টমাইজেশন, শুধুমাত্র ফাইলের নাম অনুসারে অনুসন্ধান। |
| রিয়েল টাইম ফলাফল | হ্যাঁ, এটি সিস্টেমের বর্তমান অবস্থার ভিত্তিতে ফলাফল প্রদান করে। | না, এটি পুরানো ডাটাবেসের ভিত্তিতে ফলাফল প্রদান করে। |
সারসংক্ষেপ
find এবং locate উভয় কমান্ডই ফাইল এবং ডিরেক্টরি অনুসন্ধানে ব্যবহৃত হয়, তবে তাদের মধ্যে পার্থক্য রয়েছে। find কমান্ড রিয়েল-টাইমে অনুসন্ধান করে এবং অনেক বেশি কাস্টমাইজযোগ্য, কিন্তু এটি ধীর গতিতে কাজ করতে পারে। অন্যদিকে, locate কমান্ড দ্রুত অনুসন্ধান করে, তবে এটি পূর্বে তৈরি হওয়া ডাটাবেসের উপর নির্ভরশীল এবং এটি নতুন ফাইল বা ডিরেক্টরি সনাক্ত করতে পারে না যদি ডাটাবেসটি আপডেট না করা হয়।
টেক্সট অনুসন্ধান কমান্ড: grep, awk, sed
UNIX এবং LINUX সিস্টেমে টেক্সট প্রসেসিং এবং অনুসন্ধান করার জন্য বিভিন্ন কমান্ড রয়েছে। এগুলি ডাটা ফাইলের মধ্যে প্যাটার্ন অনুসন্ধান, ফরম্যাটিং এবং পরিবর্তন করার জন্য ব্যবহৃত হয়। এখানে grep, awk, এবং sed কমান্ডগুলির বিস্তারিত ব্যাখ্যা দেওয়া হলো।
1. grep - টেক্সট অনুসন্ধান
grep (Global Regular Expression Print) কমান্ডটি টেক্সট ফাইলের মধ্যে একটি নির্দিষ্ট প্যাটার্ন বা শব্দ অনুসন্ধান করতে ব্যবহৃত হয়। এটি ফাইলের মধ্যে নির্দিষ্ট টেক্সট বা প্যাটার্ন খুঁজে বের করে এবং মেলে এমন লাইনগুলি প্রিন্ট করে।
বেসিক সিনট্যাক্স:
grep "pattern" filenameউদাহরণ:
একটি ফাইলে "hello" শব্দটি খুঁজে বের করার জন্য:
grep "hello" file.txtএটি
file.txtফাইলে "hello" শব্দটি থাকা সমস্ত লাইন প্রিন্ট করবে।সব ফাইলের মধ্যে "error" শব্দটি অনুসন্ধান করতে:
grep "error" *.logবড় বড় কেস-sensitive অনুসন্ধান বন্ধ করতে
-iঅপশন ব্যবহার করুন:grep -i "error" file.txtশুধুমাত্র ম্যাচের সংখ্যা দেখতে:
grep -c "pattern" filenamegrepএর সাথে পাইপ ব্যবহার করে অন্য কমান্ডের আউটপুট থেকে অনুসন্ধান:ps aux | grep "apache"
2. awk - টেক্সট প্রক্রিয়া ও ফরম্যাটিং
awk একটি শক্তিশালী টেক্সট প্রসেসিং কমান্ড যা ফাইলের প্রতিটি লাইনকে ফিল্ডে ভাগ করে এবং সেগুলি নিয়ে গণনা বা প্রক্রিয়াকরণ করতে ব্যবহৃত হয়। awk মূলত কলাম ভিত্তিক ডাটা বিশ্লেষণ এবং ফরম্যাটিংয়ের জন্য ব্যবহৃত হয়।
বেসিক সিনট্যাক্স:
awk 'pattern { action }' filenameউদাহরণ:
ফাইলের প্রথম কলাম প্রিন্ট করতে:
awk '{ print $1 }' file.txtশুধুমাত্র দ্বিতীয় কলাম প্রিন্ট করতে:
awk '{ print $2 }' file.txtনির্দিষ্ট কলামগুলির যোগফল বের করা:
awk '{ sum += $2 } END { print sum }' file.txtশর্ত ভিত্তিক প্রিন্টিং (যেমন, দ্বিতীয় কলামে 100 এর বেশি মান থাকলে প্রিন্ট করুন):
awk '$2 > 100 { print $1, $2 }' file.txtএকটি নির্দিষ্ট টেক্সট প্যাটার্ন অনুসন্ধান করতে:
awk '/pattern/ { print $1, $2 }' file.txtকলাম সেপারেটর পরিবর্তন করা (যেমন স্পেসের পরিবর্তে কমা):
awk -F "," '{ print $1, $2 }' file.csv
3. sed - স্ট্রিং বা টেক্সট পরিবর্তন
sed (Stream Editor) একটি স্ট্রিম এডিটর যা ফাইলের মধ্যে টেক্সট পরিবর্তন, ইনসার্ট, বা ডিলিট করতে ব্যবহৃত হয়। এটি মূলত এক্সপ্রেশন এবং স্ক্রিপ্ট ব্যবহার করে টেক্সটকে ম্যানিপুলেট করে।
বেসিক সিনট্যাক্স:
sed 'command' filenameউদাহরণ:
ফাইলের মধ্যে একটি নির্দিষ্ট শব্দ প্রতিস্থাপন (যেমন "hello" কে "world" দিয়ে প্রতিস্থাপন):
sed 's/hello/world/' file.txtপুরো ফাইলে সমস্ত "hello" কে "world" দিয়ে প্রতিস্থাপন করতে:
sed 's/hello/world/g' file.txtপরিবর্তনগুলো ফাইলে সেভ না করে টার্মিনালে দেখাতে:
sed 's/hello/world/g' file.txtটেক্সটের একটি নির্দিষ্ট লাইন মুছে ফেলতে:
sed '2d' file.txtএটি দ্বিতীয় লাইনটি মুছে ফেলবে।
নির্দিষ্ট লাইন বা অংশে টেক্সট ইনসার্ট করা:
sed '2i Hello World' file.txtএটি ফাইলের দ্বিতীয় লাইনে "Hello World" ইনসার্ট করবে।
টেক্সট প্রতিস্থাপন এবং ফাইলেই পরিবর্তন সেভ করা:
sed -i 's/old/new/g' file.txtএকটি নির্দিষ্ট প্যাটার্ন অনুযায়ী সমস্ত লাইন মুছে ফেলতে:
sed '/pattern/d' file.txt
সারসংক্ষেপ
grep: নির্দিষ্ট প্যাটার্ন অনুসন্ধান করে এবং মেলানো লাইন প্রিন্ট করে।awk: ফাইলের কলামভিত্তিক ডাটা প্রক্রিয়া করে এবং সেগুলির উপর বিভিন্ন কার্যক্রম সম্পাদন করে।sed: টেক্সট ফাইলের মধ্যে সরাসরি স্ট্রিং বা টেক্সট পরিবর্তন, মুছতে, অথবা ইনসার্ট করতে ব্যবহৃত হয়।
এই তিনটি কমান্ড UNIX এবং LINUX সিস্টেমের মধ্যে টেক্সট প্রসেসিং এবং অনুসন্ধান করার জন্য অত্যন্ত শক্তিশালী এবং গুরুত্বপূর্ণ টুল।
Read more