বাংলায় শেল স্ক্রিপ্টিং- পর্ব ০ [শেল প্রোগ্রামিং এর- অ আ ক খ]

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

এবার শেল স্ক্রিপ্টিং সম্পর্কে একটু ধারণা দেয়া যাক, ব্যাপারটা ঘুরিয়েফিরিয়ে একটু প্যাচানো লাগতে পারে। শেল স্ক্রিপ্ট আসলে একটি কম্পিউটার প্রোগ্রাম বা কমান্ডলাইন ইন্টারপ্রিটার, যেটার মাধ্যমে শেল ল্যাংগুয়েজকে ইনটারপ্রিট করা হয়। অনেক ধরনের শেল প্রোগ্রামিং আছে যেগুলো ভিন্নভিন্ন শেলের মাধ্যমে ইন্টারপ্রেট করা হয়। আমরা যে শেল ইউজ করবো সেটা হল ব্যাস(Bash- Bourn Again SHell) শেল যেটা ইউনিক্স সিস্টেমে ডিফল্ট দেয়া থাকে সাধারনত। Bash থেকে এটাকে সংক্ষেপে sh ও বলা হয়, যেটা আমরা কমান্ডলাইনে প্রায়ই ইউজ করতে দেখবো।

 

কেন শেল প্রোগ্রামিং?

আগেই বলে রাখি শেল প্রোগ্রামিংকে মূলত সাধারন অর্থের কোন প্রোগ্রামিং বা প্রোগ্রামিং ল্যাংগুয়েজ বলা যায় না। তাই এটা ভালভাবে শিখতে চাইলে আগে থেকে বেসিক কিছু প্রোগ্রামিং নলেজ নিয়ে আসলে ভাল হবে, যেমন- সি, সি প্লাস প্লাস বা পাইথন এর বেসিক জ্ঞান। স্ক্রিপ্টিং ল্যাংগুয়েজগুলো মূলত সিস্টেম এডমিন্সট্রেটিভ টুলস ডেভেলপ করতে ইউজ করা হয়। অর্থাত মোটামুটিভাবে একটু এডভান্সড লেভেলের কাজকর্মে। এছাড়াও আমরা বেসিক কিছু স্ক্রিপ্টিং জানলে একটা সিস্টেম, এটার টুলস কিভাবে কাজ করে… ভেতরের ব্যাপারস্যাপারগুলো একটু ক্লিয়ার হতে পারবো, আর চাইলে ছোটখাটো কিছু টুলসও বানিয়ে ফেলতে পারি। এজন্য লিনাক্স অপারেটিং সিস্টেমের জুরি নাই।

এছাড়া স্ক্রিপ্টিং ল্যাংগুয়েজ ব্যাবহার করার স্পেসিফিক কারনগুলোর মধ্যে নিচেরগুলো অন্যতম-

  • সিস্টেমের বুট মেনু কাস্টোমাইজ করতে পারি, তাহলে ভেতরে গিয়ে ম্যানুয়ালি পরিবর্তন করতে হয় না।
  • সিস্টেম এডমিন্সট্রেশনের জন্য টুলস ডেভেলপ করতে পারি।
  • প্রোগ্রাম প্যাকেজ ডেভেলপ করতে পারি এবং ওপেনসোর্স সিস্টেম থেকে নিজের মতো কাস্টোমাইজ করতে পারি।
  • ইউনিক্স বেজড অপারেটিং সিস্টেমকে মনিটরিং করতে পারি।
  • কমান্ড-লাইনে যেসব কমান্ড ও সিনট্যাক্স ব্যবহার হয় শেল স্ক্রিপ্টেও হুবহু তাই ব্যবহার করা হয়। ফলে প্রোগ্রামারকে সম্পূর্ণ ভিন্ন একটি সিনট্যাক্স শেখার ঝামেলা পোহাতে হয় না।
  • সুপার ফাস্ট প্রোগ্রাম ইন্টারপ্রিটেশন।

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

 

কিভাবে শেল প্রোগ্রামিং?

শেল প্রোগ্রামিং শুনেই নিশ্চই বুঝে ফেলার কথা এটা কোন না কোন শেলের মাধ্যমে প্রোগ্রামিং করা হবে। হ্যা,  আমরা যেমন ব্যাস শেল ইউজ করবো আমাদের শেখার জন্য। এটা লিনাক্স অপারেটিং সিস্টেমে ডিফল্ট দেয়া আছে, যেটাকে আমদের আছে সাধারনত লিনাক্স টার্মিনাল নামে পরিচিত। টার্মিনালে একটা ডিফল্ট ইডিটর দেয়া আছে, যেটা Vim নামে পরিচিত, যেটা vi লিখে এন্টার চাপলেই ওপেন হয়ে যায়। আমরা টার্মিনালের এই ইডিটর বেশিরভাব সময় ইউজ করবো না। আমি ব্যক্তিগতভাবে যেটা ইউজ করি সেটা হল Sublime Text, যেখানে আমরা কোড লিখে টার্মিনালের মাধ্যমে কল করে এক্সিকিউ করবো।

এজন্য যেটা করতে হবে , সেটা হল সাবলাইম টেক্সট ইন্সটল করা। নিচের কোড পরপর কপি করে টার্মিনালে পেস্ট করলেই আপনার সিস্টেমে SublimeText 3 ইন্সটল হয়ে যাবে-

এটি ইন্সটল হয়ে গেলে অপেন করে Shell Scripting(Bash) সিলেক্ট করি এবং এই ফাইলটিই আমরা টার্মিনালে কল করে ইন্টারপ্রিট করবো।

স্ক্রিপ্টিং ল্যাংগুয়েজ পরিচিতি আজ এপর্যন্তই। পরবর্তীতে প্রোগ্রামিং এর বেসিক অপারেশনগুলো কিভাবে স্ক্রিপ্টিং এর মাধ্যমে করা যায় তা ধারাবাহিকভাবে আলোচনা করবো। ধন্যবাদ সবাইকে…