আমি সজিব?
আজকে আমি আপনাদের সামনে একটি নতুন টিউটোরিয়াল তুলে ধরেছি জা নিয়ে অনেকেই অনেক কনফিউসনে আছেন। আজকে আমি তা দূর করার চেস্টা করবো। লিনাক্স এর চাহিদা বাংলাদেশে অনেক কম কিছু পোস্ট এর ভিউজ দেখলেই বুঝা যায় ত লিনাক্স জিনিশ টা অনেক মজা এবং এর ফিচার গুলাও অনেক মজার। আপনি যদি লিনাক্স চালানো না জেনে সারাদিন নিজেকে হ্যাকার হ্যাকার বলে দাবি করেন তাহলে আমি বলবো আপনি এখনো নুব কিছু শিখে আসুন টাইটেলে হ্যাক লাগালেই হ্যাকার হওয়া যায় না। অনেক বক বক করলাম মুল পোস্ট এ আসি।
আপনি যে বিষয় টি নিয়ে গবেষনা করতে চাইছেন আগে সেই বিষয়টা সম্পর্ক এ জানুন এবং শিখে কি হবে সেটার ব্যাপারে পরিষ্কার ধারনা থাকা ভালো। যারা অলরেডি জানেন এবং ধারনা আছে তারা স্কিপ করে যেতে পারেন। শুরুতে আমরা একেবারে বেসিক কিছু নিয়ে আলোচনা করবো তারপর আস্তে আস্তে অন্য সব কঠিন বিষয়গুলোতে যাবো !
লিনাক্স অপারেটিং সিস্টেমে অনেক কমান্ড আছে এগুলো একটা একটা টাইপ করে কাজ করা অনেক বোরিং, তাই না? এমন যদি হত যদি আমি সব কমান্ডগুলো একসাথে লিখে দিলাম তারপর সেটি নিজে নিজেই আমার কাজটা করে দিলো খুব ভালো হত না? শেল স্ক্রিপ্টিং সেই কাজটাই করে। খুব ছোট ছোট কিছু স্ক্রিপ্ট লিখে আপনি আপনার কাজটা করে নিতে পারবেন।
শেল স্ক্রিপ্ট কি?
শেল স্ক্রিপ্ট হচ্ছে কতগুলো কমান্ডের সমষ্টি। বা একটা ফাইল যার ভেতর অনেকগুলা কমান্ড লেখা আছে , একটার পর একটা রান করতে থাকবে। আমরা আস্তে আস্তে শিখবো কোন কমান্ড দিয়ে কি করে এবং কিভাবে স্ক্রিপ্ট লিখতে হয়।
ভাই, সবই বুঝলাম কিন্তু কমান্ড লাইন কেন?
মাউস দিয়ে আমরা কম্পিউটার যেভাবে অপারেট করি সেটাকে বলে গ্রাফিক্যাল ইউজার ইন্টারফেস – GUI (উচ্চারণ ‘গুই’)। গ্রাফিক্যাল ছাড়াও আমরা কমান্ড লাইন ব্যাবহার করে কম্পিউটার কমান্ড লাইন ব্যাবহার করেও অপারেট করা যায়। যাকে বলে, কমান্ড লাইন ইন্টারফেস (CLI). আগে যখন অপারেটিং সিস্টেম গ্রাফিক্যাল ছিলো না তখন কমান্ড লাইন ব্যাবহার করে ইউজ করা হত।
কমান্ড লাইন ব্যাবহার করে অনেক কঠিন কাজকে দ্রুত করে ফেলা যায়
শেল স্ক্রিপ্টিং
যখন আমরা কমান্ড লাইন বলবো তখন আমরা বুঝে নিবো এটা লিনাক্সে এর শেলকে বোঝাচ্ছে। শেল হচ্ছে একটা প্রোগ্রাম যা কিবোর্ড থেকে কমান্ড নিয়ে অপারেটিং সিস্টেমকে এক্সকিউট করতে দেয়।
মোটামুটি সব লিনাক্স ডিস্ট্রিবিউশনেই শেল রয়েছে। আমরা এই সিরিজে GNU এর Bash শেল শিখবো।
আসুন কিছু কমান্ড দেখি
টার্মিনাল ওপেন করে date কমান্ডটা লিখলে বর্তমান সময়ের টাইম এ্যান্ড ডেট দেখাবে।
এরকম কিছু কমান্ড হচ্ছে, যেগুলো আমাদের শেল স্ক্রিপ্ট শিখতে দরকার হবে।
- pwd – বর্তমানে আমরা যে ডিরেক্টরিতে (ফোল্ডারে) আছি সেটা দেখাবে
- cd – এক ডিরেক্টরি থেকে অন্য ডিরেক্টরিতে যাওয়ার জন্য
- cp – কপি করার জন্য
- mv – মুভ করার জন্য
- ls – বর্তমান ফোল্ডারে কি কি ফাইল আছে সেসব দেখাবে
এরকম হাজারো কমান্ড আছে লিনাক্সে। এগুলো ফাইল অপারেশন এর কমান্ড Bash শেল এ আছে। আপনি সবগুলো কমান্ড এই জিস্ট থেকে দেখে নিতে পারেন।
Hello World প্রোগ্রাম!
প্রায় সব প্রোগ্রামিং শিখতেই আমাদের প্রথমে হ্যালো ওয়ার্ল্ড প্রিন্ট করে দেখাতে হয়। বা এটা দিয়েই শুরু করতে হয় । আমরাও কমান্ড লাইনে হ্যালো ওয়ার্ল্ড দিয়েই শুরু করবো । উবুন্টু বা লিনাক্সের যেকোনো টেক্সট এডিটর ওপেন করে নিচের প্রোগ্রামটা লিখুন। তারপর hello.sh নাম দিয়ে সেভ করুন।
#!/bin/bash
# My hello world!
echo "Hello World!"
এরপর টার্মিনাল ওপেন করে ./hello টাইপ করুন । Permission denied আসবে
এর মানে হচ্ছে আপনার এই ফাইলটা এক্সিকিউট করার পার্মিশন নাই। আমরা এখন পার্মিশন দিবো। টার্মিনালে আবার লিখুন
chmod 755 hello.sh
এই কমান্ডে দিয়ে আপনি hello.sh নামের ফাইলটিকে এক্সিকিউট করার পার্মিশন দিলেন। এবার আবার
./hello.sh
রান করে দেখুন।
কনগ্রাচুলেশন!! আপনি প্রথম স্ক্রিপ্ট করে ফেলেছেন।
এখন আমরা আমাদের হ্যালো ওয়ার্ল্ড স্ক্রিপ্টটাকে বোঝার চেস্টা করবো।
প্রথম লাইনটি
#!/bin/bash
এটি দিয়ে বোঝানো হয় bash শেলটি কোন ফোল্ডারে/ডিরেক্টরিতে আছে। এখানে দেখা যাচ্ছে আমাদের শেলটি Bin নামের একটা ডিরেক্টরির ভেতরে bash নামে একটা ফোল্ডারে আছে। এর মানে, আমাদের স্ক্রিপ্টটা এখানের bash শেল-এ রান হবে।
পরের লাইনটি
# My hello world!
এটি একটি কমেন্ট। প্রোগ্রামরা সাধারনত এই প্রগ্রামটি দিয়ে কি হচ্ছে তা বোঝানোর জন্য কমেন্ট লিখে থাকেন। কমেন্ট যে লিখতে হবে এমন নয়। না লিখলেও চলবে, # দিয়ে কমেন্ট প্রকাশ করা হয়। এর ভেতরের কিছু এক্সিকিউট হবে না।
শেষ লাইনটি ছিলো
echo "Hello World!"
এখানে আমরা echo নামে একটি কমান্ড ব্যাবহার করেছি প্রিন্ট করার জন্য। যারা সি প্রোগ্রাম এর সাথে পরিচিত তারা এটিকে printf -ও ভাবতে পারেন। echo কমান্ডটি কিছু প্রিন্ট করার জন্য ব্যাবহৃত হয়।
আজকের মত এ পর্যন্ত বিদায় নিতে হচ্ছে। যদি কুনু প্রশ্ন থাকে তাহলে কমেন্ট সেকশনে জানিয়ে দিবেন।