কমান্ড লাইন ইন্টারফেস
শেল হচ্ছে এমন কিছু প্রোগ্রাম এর সমস্তটি যেটি ইউজারের থেকে ইনপুট নিয়ে হার্ডওয়্যারের কাছে পৌঁছে দেয় । ইউজারের সাথে কম্পিউটারের সাথে সম্পর্ক স্থাপন করে দেয়। শেল এমন এক ধরনের পরিবেশ তৈরি করে যেখানে ইউজারের নিদেশ বা কমান্ড সিস্টেম বুঝতে পারে।
যেমন ধরুন আপনি আপনার জমিতে ধান চাষ করবেন। ধান চাষ করার আগে তো অবশ্যই আপনার জমি প্রস্তুত করে নিতে হবেনা হলে আপনি চাষ করবেন কিভাবে । এই একই কাজ শেল করে থাকে। শেল এমন পরিবেশ তৈরি করে দেয় যেন কম্পিউটার আপনার নির্দেশ বা কমান্ড বুঝতে পারে।
কম্পিউটারের ভাষায়, শেল হলো একটি কমান্ড ল্যাঙ্গুয়েজ ইন্টারপ্রেটর বা ট্রান্সলেটর, যা কীবোড বা কোন ফাইল থেকে ইনপুট নিয়ে কমান্ড রান করে থাকে।
শেল কি কারণে তৈরি হলো
আমরা এটা সবাই জানি কম্পিউটার ০ এবং ১ ছাড়া কিছু বুঝতে পারে না । আগেকার দিনে কম্পিউটারকে ইনপুট হিসেবে শুধু বাইনারি ভাষা ব্যবহার করে নির্দেশনা দেওয়া হতো, যা সবার কাছে সহজ ছিল না ।
এই উপলব্দি থেকে অপরেটিং সিস্টেমে একটি প্রোগ্রাম তৈরি করা হলো যাকে শেল বলা হয়। শেল ইউজারের থেকে ইংরেজি বা অন্য কোন ভাষায় নিয়ে সেটি বাইনারি ভাষায় রূপান্তর করে ।
প্রথমে লিনাক্স এ একটা মাত্র ইউজার ইন্টারফেস ছিল। কিন্তু বর্তমানে গ্রাফিক্যাল ইউজার ইন্টারফেস(GUI) যুক্ত করা হয়েছে এবং কমান্ড লাইন ইন্টারফেস(CLI) উভয়ই আছে ।
এই কমান্ড লাইন ইন্টারফেসই(CLI) শেল নামে পরিচিত । বেশিরভাগ লিনাক্স সিস্টেমে একটি প্রোগ্রাম এর মাধ্যমে ট্রান্সলেট করে থাকে যাকে আমরা bash (Bourne Again Shell) বলে, যা মূলত Sh এর উপগ্রেড ভার্সন , যা শেল প্রোগ্রাম হিসেবে কাজ করে ।
আপনি যদি লিনাক্স টামিনালে cat /etc/shells লিখে এন্টার প্রেস করেন তাহলে আপনি দেখতে পাবেন আপনার সিস্টেম এ কয়টি শেল ইন্সটল করা আছে ।
ওপেনসোস সিস্টেমে বাবহ্রত বিভিন্ন শেলগুলো হলোঃ
১। GNU Bourne-Again shell(bash)
২। Bourne shell(sh)
৩। C shell (csh)
৪। Korn shell(ksh)
৫। Desktop Korn shell(dtksh)
৬। Job Control shell(jsh)
৭। Restricted Shell Command Interpreter(rsh)
৮। Enhanced C shell(tcsh)
৯। Z shell(zsh)
আবার আপনি যদি দেকতে চান এগুলো কোন ফোল্ডারে আছে তাহলে লিখতে হবে which bash, which zsh ইত্যাদি । তাহলে আমরা যে উইন্ডোজ / লিনাক্স / ম্যাক এগুলোর মধ্যে Terminal নামে যেটি বাহহার করি সেটা আসলে কি জিনিস?
উইন্ডোজ এর Windows Terminal / cmder / লিনাক্সের xfce/ Q terminal/ gnom- terminal/ console ম্যাক এর iTerm2 /Terminal.app /Hyper ইত্যাদিকে টার্মিনাল ইমুলেটর বলে ইমুলেটর হচ্ছে এমন একটি প্রোগ্রাম যেটি একটি উইন্ডো ওপেন করে এবং ইউজারকে শেলের সাথে যোগাযোগ করে দেয় ।