1 Answers
সবচেয়ে সহজভাবে বলতে গেলে বলা যায় শেল হল একটি ম্যাক্রো প্রসেসর, যেটি কমান্ড এক্সিকিউট করতে পারে। ম্যাক্রো প্রসেসর হল এমন প্রোগ্রাম যেটি ছোট টেক্সট বা সিম্বলকে এক্সপান্ড করে বড় আকারের এক্সপ্রেশন বানাতে পারে। (অবস্যই এটা নিজে নিজে বানায় না, এটা প্রোগ্রাম করে দেয়া হয়)।
শেল একই সাথে একটি কমান্ড লাইন ইন্টারপ্রিটার এবং একটি প্রোগ্রামিং ল্যাংগুয়েজ। কমান্ড লাইন টুল হিসেবে শেল ব্যবহার করলে ইউনিক্স এর সব শক্তিশালী কমান্ড টুল হাতের কাছেই পাওয়া যায় ( অত দুধ ভাত সোজা না। টাইপ করতে হয় সব আবার মনেও থাকে না এইজন্যই কমান্ড লাইনে কিছু করলেই ভাব চলে আসে।) সাথে প্রোগ্রামিং ল্যাংগুয়েজ হিসেবে ব্যবহার করা যায় বলে এটির ক্ষমতা আরো এক ধাপ বেড়ে যায়। ফাইলের ভেতরে বিভিন্ন কমান্ড রেখে ফাইলটিকেই কমান্ড হিসেবে চালানো যায়, যার ফলে যে কোন সিস্টেম কমান্ড চালানো বা লজিক দিয়ে কাজ করানো বেশ সহজ হয়।
প্রথমদিকের কম্পিউটারগুলোতে বেশ কিছু সীমাবদ্ধতা ছিল। ইনপুট এর জন্য কী-বোর্ড ব্যবহার করা হত, মনিটরে আউটপুট হত টেক্সট মোড এ। আবার গ্রাফিকাল ইন্টারফেস বা মাউস এসব ও ছিল না। এই অবস্থাতে কম্পিউটারে কাজ করার জন্য একটা প্রধান অস্ত্র ( ! ) ছিল শেল প্রোগ্রামিং। এখন অপারেটিং সিস্টেম আগের চাইতে জটিল হয়ে পড়েছে, সাথে সাথে শেল এর ক্ষমতাও বেড়েছে। শেল এ একসাথে একাধিক কমান্ড চালানো যায় ( সমান্তরালভাবে বা আলাদা আলাদা শেল এ) আবার ধারাবাহিকভাবে একটির পর একটি কমান্ড ও চালানো যায়।
শেল এর কিছু বিল্ট ইন ফাংশন সেট ও আছে ( cd, continue, exec ) এগুলো শেল এর বাইরে এক্সিকিউট করা যায় না ।
শুধু কমান্ড দিয়ে বিভিন্ন কাজ করা যায় এইজন্যই আসলে শেলকে পাওয়ারফুল বলা হয় না। এটি পাওয়ারফুল কারণ এটিকে প্রোগ্রামিং ল্যাংগুয়েজ হিসেবেও কাজ করানো যায়। হাই লেভেল ল্যাংগুয়েজগুলোর মতন শেল এ ও ভ্যারিয়েবল, ফ্লো কন্ট্রোল বা ফাংশন বানানো ও ব্যবহার করা যায়।