লিনাক্স
কি বিশাল একটা নাম তাইনা?
শুনেই চোখের সামনে ভেসে ওঠে সেই টার্মিনাল বা কমান্ড লাইন আর কালি লিনাক্সের সেই অন্ধকার জগত। যেখানে শুধু হ্যাকিং এর আনন্দ আর সবাইকে চমকে দেওয়ার মজা
>>” দেখ বেটা আমিও লিনাক্স চালাই, আমি হ্যাকার। ২ মিনিটে তোর সিস্টেম খেয়ে নেব। “
হুম অনেকের কাছে লিনাক্স মানে শুধু এতটুকুই। কিন্তু আসলেই কি তাই? না, ভাই/বোন । লিনাক্সের ইউনিভার্স এর চেয়ে অনেক বড়। তবে হ্যাঁ লিনাক্স কিন্তু নিজে এত বড় না। এটি শুধুমাত্র একটা কার্নেল। যা আপনার হার্ডওয়্যার আর সফটওয়্যার এর মধ্য সংযোগ তৈরি করে। এর চেয়ে বেশি কিছু হবার ক্ষমতা খোদ লিনাক্সেরও নেই। লিনাক্সকে বড় করে এর উপর ভিত্তি করে তৈরি সফটওয়্যার গুলো। তাই এই টিউটোরিয়ালে আমরা যখনই লিনাক্স কথাটি বলবো তখন আমরা লিনাক্স কার্নেল না বুঝিয়ে এর উপর ভিত্তি করে তৈরি কোন সফটওয়্যার বা অপারেটিং সিস্টেমের কথা বলবো।
তো প্রথমেই যে কথা বলছিলাম, লিনাক্স কি শুধুই টার্মিনাল? না। বর্তমানে এমনও লিনাক্স ডিস্ট্র (লিনাক্স বেইসড অপারেটিং সিস্টেমকে লিনাক্স ডিস্টোবিউশন বলা হয়, আর ডিস্টোবিউশনকে সংক্ষেপে ডিস্ট্র বলা হয়) আছে যেমনঃ উবুন্টু, মিন্ট, এলিমেন্টরি ইত্যাদি যেগুলো আপনি একবারের জন্যও টার্মিনাল ওপেন না করে আপনার দৈনন্দিন জীবনের সব কাজ অনায়াসে চালিয়ে যেতে পারবেন।
>> তাহলে ভাই টার্মিনালটা দিয়েছে কেন?
— উত্তর হলো- যাতে আপনি আপনার সিস্টেমের সমস্ত সুবিধা নিতে পারেন। লিনাক্স টার্মিনালে এমন অনেক অসাধারণ কাজ এত সহজে করা যায় যেগুলো সাধারণ গ্রাফিক্যাল ইউজার ইন্টারফেস (gui) প্রোগ্রাম গুলোতে করা কঠিন বা আদতে সম্ভব নয়। তবে ভয় পাবেন না এর মানে এটা নয় যে আপনি gui তে কিছুই করতে পারবেন না। সাধারণ ইউজারদের জন্য এটা কোন সমস্যা নয়। আপনি যদি পাওয়ার ইউজার হতে চান, বা লিনাক্সকে ভালোভাবে জানতে চান তবে টার্মিনালই শ্রেষ্ঠ মাধ্যম। আর এখানে পাওয়ার ইউজার বলতে আমি কিন্তু হ্যাকার বুঝাচ্ছি না।
তবে কিছু টার্মিনাল কমান্ড আছে যা সবারই জেনে রাখা ভালো। এতে যেমন আপনার নিজের কম্পিউটার সিস্টেম সম্পর্কে জ্ঞান বাড়বে তেমনি অন্যদের কাছে কিছুটা শো-অফ করতে পারবেন। আজকে এমনি কিছু টার্মিনাল কমান্ড নিয়ে আলোচনা করবো, আর টার্মিনালের সাথে আপনাদের পরিচয় করিয়ে দেব।
এক্ষেত্রে প্রথমেই যে সফটওয়্যারটি আপনাদের দরকার তা হলো একটি টার্মিনাল। প্রত্যেকটি লিনাক্স os এর মধ্য একটি টার্মিনাল থাকে। আপনি ctrl+alt+t প্রেস করে বা আপনার মেনু সিস্টেম থকে টার্মিনালটি চালু করতে পারবেন। সাধারণত একটি লিনাক্স টার্মিনাল দেখতে নিচের ছবির মতো হয়।
j@S:~$
>>এইগুলা কি ভাই?
— একটু দাঁড়ান বলতেছি। তো সাধারণত টার্মিনাল দেখতে এই রকমই। বাস টার্মিনাল না ভাই লিনাক্স টার্মিনাল। {{আমি এখানে xfce4 terminal ব্যবহার করতেছি। ডিস্ট্রিবিউশন অথবা ডেস্কটপ এনভায়রনমেন্ট ভেদে আপনার টার্মিনাল দেখতে অন্যরকম হতে পারে। তবে চিন্তার কোনও কারণ নেই। প্রায় সব টার্মিনালেই বেসিক জিনিসগুলো একইরকম হয়।}} আচ্ছা এখানে j@S হলো আমার ইউজারনেম আর আমার হোস্টনেম বা আমার কম্পিউটারের নাম। এখানে আমার ইউজারনেম হলো j আর আমার কম্পিউটার নেম বা হোস্টনেম হলো S যেগুলো আমিই লিনাক্স সেটআপ দেয়ার সময় অ্যাড করেছিলাম। এরপর ~ ক্যারেক্টারটি হলো আমাদের হোম ডিরেক্টরি বা হোম ফোল্ডারের সংক্ষিপ্ত রূপ। ~ ক্যারেক্টারটি থাকার অর্থ হলো আমরা আমদের হোম ডিরেক্টরিতে আছি। এরপর $ চিহ্নটির মানে হলো আমরা সাধারণ ইউজার হিসেবে লগডইন আছি। যারা জানেন না তাদের বলছি লিনাক্স সিস্টেমে সাধারণত ২ জন ডিফল্ট ইউজার থাকে। অবশ্যই আপনি চাইলে আরও ইউজার যুক্ত করতে পারেন। তবে ডিফল্টভাবে দুটোই থাকে। একজন হলো রুট (root) ইউজার আর অন্যজন হলো সাধারণ ইউজার। মূলত দুইজনই হলেন আপনি। এক্ষেত্রে পার্থক্য হলো রুট ইউজার সিস্টেমের প্রায় সবকিছু change করতে পারবে আর নন রুট ইউজার সাধারণ কাজ যেগুলো রুট পার্মিশন ছাড়া করা যায় সেগুলো করতে পারবে।
>> হুম বুঝলাম $ মানে সাধারণ ইউজার। তাইলে আমি রুট কেমনে হইমু ব্রাদার??
— রুট ইউজার বা সুপার ইউজার হওয়ার জন্য আপনাকে টার্মিনালে sudo -s টাইপ করতে হবে এরপর আপনার ইউজার পাসওয়ার্ড বা রুট পাসওয়ার্ড দিতে হবে তাহলেই আপনি সুপার ইউজার বা রুট ইউজার হয়ে যাবেন।
এখানে দেখুন আমার ইউজারনেম চেঙ্গ হয়ে root চলে আসছে এর মানে আমি এখন রুট ইউজার। আবার $ ক্যারেক্টারটির জায়গায় # ক্যারেক্টারটি আসছে। # থাকার অর্থ হলো আমি রুট ইউজার বা সুপার ইউজার। এখন আপনি আপনার সিস্টেমের প্রায় সকল ক্ষমতার অধিকারী।
>> থাক ভাই এত ক্ষমতা আমার লাগবে না। রুট থেকে আবার নরমাল কেমনে হইমু তাই বলেন।
— ঠিকই বলেছেন নতুন মানুষের হাতে এত ক্ষমতা দেয়া উচিত না। তো রুট থেকে আবার নরমাল হতে চাইলে exit লিখে এন্টার চাপুন তাহলেই হবে।
আচ্ছা এবার বেসিক কিছু কমান্ড নিয়ে আলোচনা করা যাক।
১ . pwd
pwd এর পূর্ণরূপ হলো print working directory আপনি যদি আপনার টার্মিনালে এই কমান্ডটি এন্টার করেন তবে আপনি এখন যে ডিরেক্টরিতে আছেন তা দেখতে পারবেন।
আমি বর্তমানে আছি আমার হোম ডিরেক্টরিতে। এখানে প্রথম / নির্দেশ করে আমাদের মেইন ফাইলসিস্টেম, আমাদের রুট ডিরেক্টরি। তারপর home হলো লিনাক্স সিস্টেমের এমন একটি ফোল্ডার যেখানে সকল সাধারণ ইউজারের ফাইলগুলো থাকে। j হলো আমার ইউজারনেম অর্থাৎ এটি j ইউজারের হোম ফোল্ডার। এখন আপনি যদি k নামে একজন ইউজার ক্রিয়েট করেন তবে তার হোম ফোল্ডার হবে /home/k ।
>> আচ্ছা বুঝলাম, আমি টার্মিনালে আমার হোম ফোল্ডার দেখতে পারব। এখন আমি যদি দেখতে চাই যে আমার হোম ফোল্ডারে কি কি আছে তাহলে কি করতে হবে??
— সেজন্য রয়েছে ls কমান্ড। চলুন এবার এটা নিয়ে আলোচনা করা যাক।
২ . ls
ls (এল এস) মানে হলো লিস্ট । এই কমান্ডটি মূলত আমরা বর্তমানে যে ডিরেক্টরিতে কাজ করছি তার মধ্য যা কিছু আছে তা দেখাবে।
এখানে আমার হোম ফোল্ডারে অনেকগুলো ডিরেক্টরি আছে যেমনঃ Desktop, Documents, Downloads ইত্যাদি। উল্লেখ্য এখানে নীল রঙয়ের লেখাগুলো হলো ফোল্ডার আর অন্য রঙ্গের লেখাগুলো ফাইল।
প্রায় প্রত্যেকটি কমান্ডেই কিছু ফ্ল্যাগ দেয়া যায়। এখানে ফ্ল্যাগ মানে আমাদের কমান্ডের সাথে কিছু কথা যুক্ত করা যাতে কমান্ডটি দিয়ে একটু বেশি কিছু করা যায়। তো এখানে ls কমান্ড দিলে ফাইল এবং ফোল্ডারগুলো দেখাচ্ছে। তবে আসলেই কি সব ফাইল দেখাচ্ছে??
না সব ফাইল দেখাচ্ছে না। লিনাক্স সিস্টেমে কিছু হিডেন ফাইল থাকে যেগুলো সাধারণত দেখা যায় না। আপনার হাতের মোবাইলফোনে যেমন কোনও ফোল্ডার বা ফাইলের সামনে . (ফুলস্টপ / পিরিয়ড) দিলে সেটি হাইড হয়ে যায় ঠিক তেমনই লিনাক্স সিস্টেরমেও কিছু ফাইল ও ফোল্ডারের সামনে . থাকে। অর্থাৎ সেগুলো লুকোনো থাকে। তো সেগুলো যদি দেখতে চান তবে ls কমান্ডের সাথে -a (a = all) ফ্ল্যাগটি যুক্ত করতে হবে। তাহলে পুরো কমান্ডটি হবে ls -a
এখানে লক্ষ করার মতো একটি বিষয় হলো যে সকল ফাইল বা ফোল্ডার কিন্তু লিস্ট আকারে আসছে না এগুলো পাশাপাশি আসছে। আমরা যারা উইন্ডোজ বা মোবাইলফোন ব্যবহার করি তারা তো আর এভাবে দেখে অভ্যস্ত নই। তাই আমরা ls কমান্ডের সাথে একটি -l ( এল, l = long) ফ্ল্যাগ যুক্ত করে
এগুলোকে উপর নিচে অর্থাৎ এক লাইনে নিয়ে আসতে পারবো।
>>কিন্তু ভাই হিডেন ফাইল গুলোতো আর দেখা যাচ্ছে না।
— আচ্ছা হিডেন ফাইলগুলোকেও যদি দেখতে চান তবে -a আর -l ফ্ল্যাগ এক সাথে লেখতে হবে। এক্ষেত্রে কমান্ডটি হবে ls -l -a
তবে আপনি চাইলে কমান্ডটি শর্ট করে ls -la লিখতে পারেন।
অর্থাৎ আপনি দুটো ফ্ল্যাগ একসাথেও লিখতে পারেন।
>> ভাই ls কমান্ড দিয়ে কি শুধু এই দুটোই করা যায়??
— না ভাই এই কমান্ড দিয়ে আরও অনেক কিছু করা যায়। যার সবগুলো আমার জানা নেই। তবে আপনি যদি চান তবে ls দ্বারা কি কি করা যায় তা জেনে নিতে পারেন আপনার কমান্ডলাইন থেকেই। এজন্য আপনাকে টাইপ করতে হবে man ls এটা লিখে এন্টার দিলে আপনি নিচের ছবির মতো দেখতে পাবেন।
এখানে আপনি ls কমান্ড কি কাকে বলে এর কাজ কি এর দ্বারা কি কি করা সম্ভব তার সবকিছুই জানতে পারবেন।
>> ভাই এটা দিয়ে কি শুধু ls এরই সব কিছু জানা যাবে ? অন্যগুলোর দেখা যাবে না?
— হ্যাঁ ভাই যাবে। এখানে man মানে হলো manual । আপনারা যখন কোনও পণ্য কেনেন তখন তার সাথে পণ্যটি কিভাবে প্যবহার করতে হবে সে সম্পর্কিত একটি বই থাকে। যাকে বলে manual বা ব্যবহারবিধি। ঠিক সেই রকমই লিনাক্স এর প্রতিটি সফটওয়ারের সাথেই এরকম একটি manual থাকে। আপনি টার্মিনালে man <command name> লিখে যেকোনো প্রোগ্রাম বা কমান্ডের নিয়মাবলী বা ব্যবহারবিধি পড়তে পারবেন। যেমন আমি যদি firefox এর manual পড়তে চাই তবে টার্মিনালে লিখতে হবে man firefox
আগামীতে একদিন man কমান্ড বা man পেইজ নিয়ে বিস্তারিত আলোচনা হবে ইনশাহআল্লাহ। তাহলে ls কমান্ডটিও এখানেই শেষ করছি। এটা নিয়েও ইনশাহআল্লাহ বিস্তারিত আলোচনা হবে।
>> আচ্ছা ভাই কইরেন একদিন। এখন প্রশ্ন হলো এক ফোল্ডারে কি কি আছে তা নাহয় দেখালাম তবে এক ফোল্ডার থেকে আরেক ফোল্ডারে কেমনে যাব?
– এক ফোল্ডার থেকে অন্য ফোল্ডারে যেতে আপনি cd কমান্ডটি ব্যবহার করতে পারেন।
৩ . cd
cd এর পুর্ণরূপ হলো change directory এর মাধ্যমে আপনি এক ডিরেক্টরি বা ফোল্ডার থেকে অন্য ফোল্ডারে যেতে পারবেন। যেমন আমি এখন আছি আমার home ফোল্ডারে এখানে যদি ls করি তবে অনেকগুলো ফোল্ডার দেখা যাচ্ছে।
ধরুন আমি jf ফোল্ডারে যেতে চাই তবে আমাকে টাইপ করতে হবে cd jf
( উল্লেখ্য লিনাক্সে ছোট হাতের অক্ষর আর বড় হাতের অক্ষর আলাদা। অর্থাৎ আপনি যদি Downloads ডিরেক্টরিতে যেতে চান তবে আপনাকে টাইপ করতে হবে cd Downloads এখানে যদি আপনি cd downloads টাইপ করেন তবে কিন্তু হবে না। )
দেখুন এবার আমার ~ ক্যারেক্টারের পরে /jf চলে এসেছে। তার মানে আমি jf ডিরেক্টরিতে আছি। এখন যদি আমি ls করি তবে এই ফোল্ডারে থাকা সকল ফাইল দেখতে পারব।
দেখুন এই ফোল্ডারে শুধু আমার mount.sh নামে একটি শেল স্ক্রিপ্ট আর pp নামে একটি ফোল্ডার আছে।
এভাবেই আপনি এখন আপনার লিনাক্স মেশিনের ফাইল সিস্টেমে ঘুরে বেড়ান আর বিভিন্ন কমান্ড এবং প্রোগ্রামের man পেইজ নিয়ে গবেষণা করুন।
সতর্কতাঃ
লিনাক্স টার্মিনাল অনেক মজার জিনিস হলেও এটি কিন্তু ভয়ঙ্কর হয়ে উঠতে পারে। কিছু কমান্ড আছে, যেমন rm -rf এই কমান্ডটি কখনই আপনার টার্মিনালে রান করা উচিত নয়। এটি আপনার সমস্ত ফাইল সিস্টেমকে ধ্বংস করে দিতে পারে। তাই কোনও কমান্ড রান করার পূর্বে তার সম্পর্কে
ইন্টারনেটে একটু রিসার্চ করে নিয়েন।
আর হ্যাঁ এই পোস্টটি লিনাক্স মাস্টারদের জন্য নয়। এই সম্পূর্ণই নিউবি এবং যারা লিনাক্সে সুইচ করার কথা ভাবছেন তাদের জন্য। আর আগামীতে আরও অনেক পর্ব দিব ইনশাহআল্লাহ । তাই চিন্তার কোন কারণ নেই।
নামাজ কায়েম করুন।
শান্তি বজায় রাখুন।
আল্লাহ হাফেজ।