Sunday, March 24, 2019

লিনাক্সের মৌলিক কমান্ড - ২/২০ (ls,chmod, octal, binary)

লিস্ট (ls), চেঞ্জ মোড (chmod), বাইনারি (দুই অঙ্কের সংখ্যা) এবং অক্টাল (আট অঙ্কের সংখ্যা)

ls = list (তালিকা)
এটা দিয়ে ডাইরেক্টরি/ফোল্ডার এবং এদের ভেতরের ফাইলগুলো তালিকা আকারে দেখা যায়। অত্যন্ত গুরুত্বপূর্ণ এবং
প্রয়োজনীয় কমান্ড। গ্রাফিক্যাল ব্যবহারকারীরা যেমন ফাইল ম্যানেজারের মাধ্যমে তালিকা দেখতে পায়, কমান্ডলাইন
ব্যবহারকারীরা তেমনই এই ls কমান্ড ব্যবহার করে তালিকা দেখে। ত‌‌ো বুঝতেই পারছেন কতটা গুরুত্বপূর্ণ!

টার্মিনাল চালু করুন, লিখুন ls এরপর এন্টার-কী চাপুন।
ls -a
সকল কিছু, লুকানো ফাইল সহ (যে সব ফাইল বা ফোল্ডারের আগে ডট "." চিহ্ন থাকে, সেগুলো গনু/লিনাক্স সিস্টেমে লুকানো
ফাইল বা ডাইরেক্টরি/ফোল্ডার হিসেবে বিবেচিত হয়।)
সব কিছু টার্মিনালে দেখাবে।
ls -l
লম্বা তালিকা দেখাবে,
চর্চা করুন,
pwd
ls -al
ls /
ls /bin
ls /usr/share
ls /home
ls ~/Desktop
ls ~/
ls /usr
ls /etc
pwd

তার মানে, আপনি আপনার অবস্থানে থেকেই সমস্ত ফাইল বা ডাইরেক্টরি দেখতে পারছেন।
আর একটু মজা করা যাক!
ধরুন আপনার ইচ্ছে হল /bin এর ভেতর যা যা আছে তা একট টেক্সট ফাইলের ভেতর রাখবেন।
ls /bin >> listbin.txt
কাজ হয়ে গেছে।
ফাইলটা দেখতে চাইলে,
cat /bin/listbin.txt
listbin.txt ফাইলটা /bin এর ভেতর তৈরি হয়েছে, ডেক্সটপ ফোল্ডারে নিয়ে আসতে চাইলে,
sudo cp /bin/listbin.txt ~/Desktop
আর bin.txt ফাইলটি /bin এর ভেতর থেকে মুছে ফেলতে চাইলে,
sudo rm -v /bin/listbin.txt


একটি গুরুত্বপূর্ণ বিষয়, বাদ দেওয়া সম্ভব না, হয় বুঝে শিখতে হবে বা জানতে হবে নয়তো মুখস্ত করতে হবে, মুখস্ত করার
প্রবণতা বেশি, কিন্তু বোঝাটাই সহজ আর সবচেয়ে কার্যকরি, এখানে আলোচনা কিছুটা তাত্ত্বিক হয়ে যাবে, অনুরোধ করব‌ো
বুঝতে চেষ্টা করার।

লিনাক্সের ফাইল নিয়ে ব্যবহারকারী কি কি করতে পারে? ভাবুন দেখি, আচ্ছা, উত্তর বলে দিই, তিনটা কাজ করতে পারে,
১। ফাইলটি পড়তে পারে (Read = r)
২। ফাইলটিতে কিছু যোগ করা বা বাদ দিতে পারে (Write = w)
৩। ফাইলটি এক্সিকিউট করতে পারে (Execute = x)

এই তিনটি কাজ করার জন্য অনুমতি নেবার একটা ব্যাপারও আছে। একটা উদাহরণ, আপনি যখন ls -l কমান্ড
ব্যবহার করেছেন, তখন লাইনের প্রথমে -rw-rw-rw-, -rwxr-xr-x, drwxrwxrwx, lrwxrwxrwx ইত্যাদি
ধরনের লেখা লক্ষ্য করেছেন হয়তো,
অর্থ গুলো বলে ব্যাখ্যা করার চেষ্টা করছি,
-rw-rw-rw- , লক্ষ্য করুন, তিনটি অংশে ভাগ করা, প্রথম অংশটি ব্যবহারকারী ওই ফাইলটি নিয়ে কি করতে
পারবে তা বলা হয়েছে, দ্বিতীয় অংশ গ্রুপ সম্পর্কে বলেছে, আর তৃতীয় অংশ অন্যান্য সাধারণ ব্যবহারকারীর অনুমতির বিষয়ে
বলেছে। তো -rw-rw-rw- থেকে বোঝা যাচ্ছে  ব্যবহারকারী, গ্রুপ, এবং অন্যান্য সবাই ফাইলটি পড়তে পারবে আর
লিখতে বা পরিবর্তন করতে পারবে।
আবার, -rwxr-xr-x এটা থেকে বোঝা যাচ্ছে মূল ব্যবহারকারী তিনটি কাজই করতে পারবে, গ্রুপ ফাইলটি পড়তে
এবং এক্সিকিউট করতে পারবে আর বাকি সবাই শুধুমাত্র এক্সিকিউট করতে পারবে।
drwxrwxrwx, এখানেও তিনটি অংশ রয়েছ, শুরুতে শুধু d দেওয়া, এখানে ডাইরেক্টরি (Directory = d)
বোঝানোর জন্য d, এ থেকে বোঝা যাচ্ছে এটি আসলে ফাইল নয়, ডাইরেক্টরি বা ফোল্ডার।
lrwxrwxrwx, এটার সামনে l (এল) রয়েছে, লিঙ্ক (Link = l), ফাইলটি যে একটি লিঙ্ক (সিম্বলিক অথবা হার্ড)
তাই বোঝানো হচ্ছে।
এগুলিকে ফাইল এবং ডাইরেক্টরির বর্তমান অবস্থা বা মোড (Mode) বলা হয়। আর এই মোড বা অবস্থা পরিবর্তনের জন্য
chmod = change mode (অবস্থা/ধরন পাল্টাও) কমান্ড ব্যবহার করা হয়। এই মোড কমান্ড বেশ কয়েক ভাবেই করা
যায়, তবে এখানে শুধু অক্টাল (Octal) সংখ্যার ব্যবহার নিয়ে আলোচনা করবো। একটু কঠিন, আর মজা ত কঠিনেই!

বাইনারি সংখ্য়ার ডিজিট দুইটি, ০ এবং ১
হ্যাঁ এবং না।

অক্টাল সংখ্যার ডিজিট (অঙ্ক) আটটি (0, 1, 2, 3, 4, 5, 6, 7)
একটি অক্টাল অঙ্ককে উপস্থাপন করতে তিনটি বাইনারি অঙ্কের প্রয়োজন হয়। কারণ, অক্টালের মোট অঙ্ক সংখ্যা আটটি, আর বাইনারির অঙ্ক সংখ্যা দুইটি, এই ২ এর ঘাত ৩ এর মান ৮ , তাই, একটি অক্টাল অঙ্ককে উপস্থাপন করতে তিনটি বাইনারি অঙ্কের প্রয়োজন হয়।

বাইনারি    অক্টাল     অনুমতি
 000 ==     0     ==    কোন অনুমতি নেই
 001 ==     1     ==    শুধু এক্সিকিউট এর অনুমতি রয়েছে
 010 ==     2     ==    শুধুমাত্র পরিবর্তনের অনুমতি রয়েছে
 011 ==     3     ==    লেখা এবং পরিবর্তনের অনুমতি রয়েছে
 100 ==     4     ==    শুধু পড়ার অনুমতি রয়েছে
 101 ==     5     ==    পড়া এবং এক্সিকিউটের অনুমতি রয়েছে
 110 ==     6     ==    পড়া এবং পরিবর্তন করার অনুমতি রয়েছে
 111 ==     7     ==    পড়া, পরিবর্তন এবং এক্সিকিউটের অনুমতি রয়েছে


 অনুমতি যেহেতু অক্টাল কমান্ডে দেওয়া সহজ, তাই, আরো কিছু সহজ বিষয় শেখা যেতে পারে,

 chmod -v অক্টাল_নাম্বার  ফাইল_বা_ডাইরেক্টরির_নাম

 ব্যবহার করে শিখি,
 টার্মিনালে যান,
 touch hello.c
 ls -l
 chmod -v 746 hello.c ; ls -l

প্রথম 7 = 111 =  [মূল ব্যবহারকারীর] পড়া, পরিবর্তন এবং এক্সিকিউটের অনুমতি রয়েছে।
দ্বিতীয় 4 =  100 = [গ্রুপের] শুধু পড়ার অনুমতি রয়েছে।
তৃতীয় 6 = 110 = [অন্যদের] পড়া এবং পরিবর্তন করার অনুমতি রয়েছে।

 chmod -v 000 hello.c ; ls -l
 chmod -v 123 hello.c ; ls -l
 chmod -v 001 hello.c ; ls -l
 chmod -v 223 hello.c ; ls -l

তো কাহিনী এতটুকই, আর যখন সুপার ইউজার (রুট অথবা প্রধান ব্যবহারকারী অথবা কর্তা) হিসেবে কাজ করবেন তখন
 chmod এর আগে sudo শব্দটি লিখতে হবে।
 sudo = super user do (শুধু সুপার ব্যবহারকারীই কাজটি করতে পারে)

 sudo chmod -v 012 hello.c ; ls -l
 sudo chmod -v 512 hello.c ; ls -l
 ইত্যাদি!




আমরা প্রক্রিয়াটি দেখতে চাই, তাই -v ব্যবহার করেছি, তাছাড়া এর অন্য ক‌‌‌োন বিশেষত্ব নেই।

 হয়তো বুঝতে পেরেছি, অথবা পারিনি, দায়ভার আমার ওপরেই বর্তাবে, কিন্তু আপনার তো তাতে লাভ হবে না,
 না বুঝতে পারলে  মুক্ত মনো প্রশ্ন করুন, আর যদি কোন ভুল তথ্য উপস্থাপন করে থাকি তো দয়া করে আমায় জানান।

No comments:

Post a Comment

Simple Screen Recorder এবং ফেসবুকে স্ক্রিন শেয়ারিং এর Black Screen সমস্যার সমাধান

 লিনাক্স নির্ভর অপারেটিং সিস্টেমে GNOME Interface ব্যবহারকারীদের কেউ কেউ ফেসবুকের ভিডিও কলে স্ক্রিন শেয়ারিং অপশনে কিংবা সিম্পল স্ক্রিন রেকর্...