আপনার মন্তব্যগুলি থেকে, শেলটি ঠিক কী তা সম্পর্কে আপনি বিভ্রান্ত বলে মনে হচ্ছে। কার্নেলটি সিস্টেম পরিচালনার জন্য দায়বদ্ধ। এটি সেই অংশ যা প্রকৃতপক্ষে প্রোগ্রাম লোড করে এবং চালায়, ফাইলগুলি অ্যাক্সেস করে, মেমরি বরাদ্দ করে ইত্যাদি etc. তবে কার্নেলের কোনও ব্যবহারকারী ইন্টারফেস নেই; আপনি কেবলমাত্র মধ্যস্থতাকারী হিসাবে অন্য প্রোগ্রাম ব্যবহার করে এটির সাথে যোগাযোগ করতে পারেন।
শেল একটি প্রোগ্রাম যা প্রম্পট মুদ্রণ করে, আপনার কাছ থেকে ইনপুট একটি লাইন পড়ে, এবং তারপরে ফাইলগুলিকে ম্যানিপুলেট করতে বা অন্যান্য প্রোগ্রামগুলি চালনার জন্য এক বা একাধিক আদেশ হিসাবে ব্যাখ্যা করে। জিইউআই আবিষ্কারের আগে শেলটি কোনও ওএসের প্রাথমিক ব্যবহারকারী ইন্টারফেস ছিল। এমএস-ডস-এ, শেলটি কল করা হয়েছিল command.comএবং খুব কম লোকই কখনও আলাদা ব্যবহার করার চেষ্টা করেছিল। ইউনিক্সে, যদিও বহু আগে থেকেই একাধিক শেল ব্যবহারকারীরা নিতে পারত।
এগুলি 3 ধরণের মধ্যে ভাগ করা যায়। বোর্ন-সামঞ্জস্যপূর্ণ শেলগুলি মূল বোর্ন শেল থেকে প্রাপ্ত সিনট্যাক্স ব্যবহার করে । সি শেলগুলি মূল সি শেল থেকে সিনট্যাক্স ব্যবহার করে । তারপরে এমন অনিয়ন্ত্রিত শাঁস রয়েছে যা তাদের নিজস্ব বাক্য গঠন আবিষ্কার করে, বা কোনও প্রোগ্রামিং ভাষা থেকে একটি ধার করে, এবং সাধারণত প্রথম দুটি ধরণের তুলনায় খুব কম জনপ্রিয় হয়।
বিল্ট-ইন কমান্ড হ'ল একটি কমান্ড যা শেল নিজেই বহন করে, অন্য কোনও প্রোগ্রাম লোড ও চালানোর অনুরোধ হিসাবে ব্যাখ্যা করার পরিবর্তে। এটির দুটি প্রধান প্রভাব রয়েছে। প্রথমত, এটি সাধারণত দ্রুত হয়, কারণ কোনও প্রোগ্রাম লোড এবং চালাতে সময় লাগে। অবশ্যই, কমান্ডটি চালাতে যত বেশি সময় নেয়, সামগ্রিক রান সময়ের সাথে তুলনামূলকভাবে লোডের সময় কম তাত্পর্যপূর্ণ হয় (কারণ লোডের সময়টি মোটামুটি ধ্রুবক হয়)।
দ্বিতীয়ত, একটি অন্তর্নির্মিত কমান্ড শেলের অভ্যন্তরীণ অবস্থাকে প্রভাবিত করতে পারে। এ কারণেই কমান্ডগুলি cd অবশ্যই অন্তর্নির্মিত হতে হবে , কারণ কোনও বহিরাগত প্রোগ্রাম শেলের বর্তমান ডিরেক্টরি পরিবর্তন করতে পারে না। অন্যান্য কমান্ডগুলি যেমন echoদক্ষতার জন্য অন্তর্নির্মিত হতে পারে তবে এটি বাহ্যিক আদেশ হতে পারে না এমন কোনও অভ্যন্তরীণ কারণ নেই।
কোন কমান্ডগুলি অন্তর্নির্মিত তা আপনি যে শেলটি ব্যবহার করছেন তার উপর নির্ভর করে। আপনাকে কোনও লিস্টের জন্য এটির ডকুমেন্টেশনগুলির সাথে পরামর্শ করতে হবে (উদাহরণস্বরূপ, bashবিল্ট-ইন কমান্ডগুলি এর ম্যানুয়ালটির ৪ র্থ অধ্যায়ে তালিকাভুক্ত )। typeযদি কমান্ড বিল্ট-ইন (যদি আপনার শেল POSIX সামঞ্জস্যপূর্ণ) হয় কমান্ড আপনি বলতে পারেন, কারণ POSIX যে প্রয়োজন typeএকটি বিল্ট-ইন করা আবশ্যক। যদি whichআপনার শেলটিতে অন্তর্নির্মিত না হয়, তবে এটি সম্ভবত আপনার শেলের বিল্ট-ইনগুলি সম্পর্কে জানতে পারে না, তবে কেবল বাহ্যিক প্রোগ্রামগুলি সন্ধান করবে।