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 ব্যবহার করেছি, তাছাড়া এর অন্য ক‌‌‌োন বিশেষত্ব নেই।

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

Tuesday, March 19, 2019

লিনাক্সের মৌলিক কমান্ড - ১/২০

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

https://gnulinuxbanglasesh.blogspot.com, ব্লগে বেশকিছু প্রথমিক তথ্য রয়েছে,
তার পর থেকে আলোচনা শুরু হল,

টার্মিনাল চালু করুন, লিখুন এবং এন্টার-কী (Enter-Key) চাপুন,
whatis cp
whatis ls
whatis mv
whatis man
whatis whatis

নিশ্চয়ই whatis কমান্ড সম্পর্কে সাধারণ কিছু ধারণা পেয়েছেন! এটা হল এক লাইনে ম্যানুয়াল বা কোন কমান্ড
সম্পর্কিত ধারণা দেবার কমান্ড। কোন কিছুর তথ্য যদি এক লাইনে না বলা যায়, এটা তাও বলে দেবে।

clear লিখে এন্টার-কী চেপে টার্মিনাল পরিষ্কার করে নিন, এবার লিখুন,
whereis cp
whereis ls
whereis mv
whereis man
whereis whereis

তাহলে বুঝতে পারলাম, whereis কমান্ড কোন কিছুর অবস্থান জানতে ব্যবহৃত হয়।

pwd = print working directory (যে ডাইরেক্টরিতে কাজ হচ্ছে তা দেখাও)
তার মানে, আপনার অবস্থান বর্তমানে কোখায় তাই দেখাবে।
টার্মিনালে লিখুন,
pwd
যা দেখাল, ওটিই আপনার অবস্থান।

cd = change directory (ডাইরেক্টরির পরিবর্তন)
টার্মিনালে যান, লিখুন,
cd /
pwd
cd /home
pwd
cd /bin
pwd
cd /home/your_name/Downloads/
pwd
cd .. [একধাপ পেছনে আসবে]
pwd
cd -  [আগের ডাইরেক্টরিতে ফিরে আসবে]
pwd
cd /etc
pwd
cd ~
pwd
cd /home/your_name

টার্মিনাল চালু করলেই আপনার অবস্থান থাকে /home/your_name এ। এটা আপনার ব্যবহারের ডাইরেক্টরি,
আর একটি হল মূল ডাইরেক্টরি, এটা রুট(root) ডাইরেক্টরি নামে পরিচিত। ডাইরেক্টরি নিয়ে কাজের ক্ষেত্রে
আর একটি গুরুত্বপূর্ণ বিষয় রয়েছে, Absolute Path আর Relative Path নামে এটি পরিচিত।
বোঝার সুবিধার জন্য একে প্রধান পথ এবং শাখা পথ ভেবে নিতে পারি। লিনাক্সের ক্ষেত্রে রুট (root) বা "/" হল
মূলপথ, অর্থাৎ যখন আপনি cd /home/your_name/Downloads এ গেলেন, আপনি প্রধান পথ দিয়েই
আপনার গন্তব্য Downloads এ গিয়েছেন, আর যখন আপনার অবস্থান /home/your_name এ, তখন
cd Downloads
লিখে Downloads নামের ডাইরেক্টরিতে যেতে পারবেন, এই পথ Relative Path বা শাখাপথ।
/home/your_name এখানে প্রধান পথ , আর এর ভেতরে রয়েছে Downloads নামের ডাইরেক্টরি।

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

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