লিনাক্স শেল স্ক্রিপ্টিং ১ – Hello World

Published on
-4 min read

সূচীপত্র

কেন শিখবো শেল স্ক্রিপ্টিং?

যেকোনো কিছু শেখার আগে সেই বিষয়টা শিখে কি হবে সেটার ব্যাপারে পরিষ্কার ধারনা থাকা ভালো। যাদের অলরেডি ধারনা আছে তারা স্কিপ করে যেতে পারেন। শুরুতে আমরা একেবারে বেসিক কিছু নিয়ে আলোচনা করবো তারপর আস্তে আস্তে অন্য সব কঠিন বিষয়গুলোতে যাবো ! 😉

লিনাক্স অপারেটিং সিস্টেমে অনেক কমান্ড আছে এগুলো একটা একটা টাইপ করে কাজ করা অনেক বোরিং, তাই না? এমন যদি হত যদি আমি সব কমান্ডগুলো একসাথে লিখে দিলাম তারপর সেটি নিজে নিজেই আমার কাজটা করে দিলো খুব ভালো হত না? শেল স্ক্রিপ্টিং সেই কাজটাই করে। খুব ছোট ছোট কিছু স্ক্রিপ্ট লিখে আপনি আপনার কাজটা করে নিতে পারবেন।

শেল স্ক্রিপ্ট কি?

শেল স্ক্রিপ্ট হচ্ছে কতগুলো কমান্ডের সমষ্টি। বা একটা ফাইল যার ভেতর অনেকগুলা কমান্ড লেখা আছে , একটার পর একটা রান করতে থাকবে। আমরা আস্তে আস্তে শিখবো কোন কমান্ড দিয়ে কি করে এবং কিভাবে স্ক্রিপ্ট লিখতে হয়।

ভাই, সবই বুঝলাম কিন্তু কমান্ড লাইন কেন?

মাউস দিয়ে আমরা কম্পিউটার যেভাবে অপারেট করি সেটাকে বলে গ্রাফিক্যাল ইউজার ইন্টারফেস – GUI (উচ্চারণ ‘গুই’)। গ্রাফিক্যাল ছাড়াও আমরা কমান্ড লাইন ব্যাবহার করে কম্পিউটার কমান্ড লাইন ব্যাবহার করেও অপারেট করা যায়। যাকে বলে, কমান্ড লাইন ইন্টারফেস (CLI). আগে যখন অপারেটিং সিস্টেম গ্রাফিক্যাল ছিলো না তখন কমান্ড লাইন ব্যাবহার করে ইউজ করা হত।

কমান্ড লাইন ব্যাবহার করে অনেক কঠিন কাজকে দ্রুত করে ফেলা যায়

শেল স্ক্রিপ্টিং

যখন আমরা কমান্ড লাইন বলবো তখন আমরা বুঝে নিবো এটা লিনাক্সে এর শেলকে বোঝাচ্ছে। শেল হচ্ছে একটা প্রোগ্রাম যা কিবোর্ড থেকে কমান্ড নিয়ে অপারেটিং সিস্টেমকে এক্সকিউট করতে দেয়।

মোটামুটি সব লিনাক্স ডিস্ট্রিবিউশনেই শেল রয়েছে। আমরা এই সিরিজে GNU এর Bash শেল শিখবো।

আসুন কিছু কমান্ড দেখি

টার্মিনাল ওপেন করে date কমান্ডটা লিখলে বর্তমান সময়ের টাইম এ্যান্ড ডেট দেখাবে। Screenshot_11.png

এরকম কিছু কমান্ড হচ্ছে, যেগুলো আমাদের শেল স্ক্রিপ্ট শিখতে দরকার হবে।

- pwd –  বর্তমানে আমরা যে ডিরেক্টরিতে (ফোল্ডারে) আছি সেটা দেখাবে
- cd  – এক ডিরেক্টরি থেকে অন্য ডিরেক্টরিতে যাওয়ার জন্য
- cp – কপি করার জন্য
- mv – মুভ করার জন্য
- ls –  বর্তমান ফোল্ডারে কি কি ফাইল আছে সেসব দেখাবে

এরকম হাজারো কমান্ড আছে লিনাক্সে। এগুলো ফাইল অপারেশন এর কমান্ড Bash শেল এ আছে। আপনি সবগুলো কমান্ড এই জিস্ট থেকে দেখে নিতে পারেন।


Hello World প্রোগ্রাম!

প্রায় সব প্রোগ্রামিং শিখতেই আমাদের প্রথমে হ্যালো ওয়ার্ল্ড প্রিন্ট করে দেখাতে হয়। বা এটা দিয়েই শুরু করতে হয় । আমরাও কমান্ড লাইনে হ্যালো ওয়ার্ল্ড দিয়েই শুরু করবো । উবুন্টু বা লিনাক্সের যেকোনো টেক্সট এডিটর ওপেন করে নিচের প্রোগ্রামটা লিখুন। তারপর hello.sh নাম দিয়ে সেভ করুন।

#!/bin/bash
# My hello world!

echo "Hello World!"

এরপর টার্মিনাল ওপেন করে ./hello টাইপ করুন । Permission denied আসবে

Screenshot_12.png

এর মানে হচ্ছে আপনার এই ফাইলটা এক্সিকিউট করার পার্মিশন নাই। আমরা এখন পার্মিশন দিবো। টার্মিনালে আবার লিখুন

> chmod 755 hello.sh

এই কমান্ডে দিয়ে আপনি hello.sh নামের ফাইলটিকে এক্সিকিউট করার পার্মিশন দিলেন। এবার আবার

> ./hello.sh

রান করে দেখুন।

Screenshot_13.png

কনগ্রাচুলেশন!! আপনি প্রথম স্ক্রিপ্ট করে ফেলেছেন।

হ্যালো ওয়ার্ল্ড স্ক্রিপ্টটাকে বোঝার চেস্টা করবো।

প্রথম লাইনটি

#!/bin/bash

এটি দিয়ে বোঝানো হয় bash শেলটি কোন ফোল্ডারে/ডিরেক্টরিতে আছে। এখানে দেখা যাচ্ছে আমাদের শেলটি Bin নামের একটা ডিরেক্টরির ভেতরে bash নামে একটা ফোল্ডারে আছে। এর মানে, আমাদের স্ক্রিপ্টটা এখানের bash শেল-এ রান হবে।

পরের লাইনটি

# My hello world!

এটি একটি কমেন্ট। প্রোগ্রামরা সাধারনত এই প্রগ্রামটি দিয়ে কি হচ্ছে তা বোঝানোর জন্য কমেন্ট লিখে থাকেন। কমেন্ট যে লিখতে হবে এমন নয়। না লিখলেও চলবে, # দিয়ে কমেন্ট প্রকাশ করা হয়। এর ভেতরের কিছু এক্সিকিউট হবে না।

শেষ লাইনটি ছিলো

echo "Hello World!"

এখানে আমরা echo নামে একটি কমান্ড ব্যাবহার করেছি প্রিন্ট করার জন্য। যারা সি প্রোগ্রাম এর সাথে পরিচিত তারা এটিকে printf -ও ভাবতে পারেন। echo কমান্ডটি কিছু প্রিন্ট করার জন্য ব্যাবহৃত হয়।

আজকের মত এ প্রর্যন্তই।

পরবর্তিতে আমরা ভেরিয়েবল শিখবো