'শেল' শব্দটির নাম ভালই আছে। এটি আক্ষরিক অর্থে ও / এস এর চারপাশে একটি শেল যা ব্যবহারকারীকে কম্পিউটারের সাথে ইন্টারঅ্যাক্ট করতে দেয়। যখন এটি প্রাথমিকভাবে ধারণা করা হয়েছিল যে কোনও গ্রাফিকাল ইউজার ইন্টারফেস (উইন্ডো নেই :() থাকলে খুব কম ছিল। কমান্ড লাইনে সবকিছুই করা হয়েছিল। তবে কমান্ড লাইনেরও থাকার জন্য একটি জায়গা প্রয়োজন ছিল। এটি বেঁচে ছিল, এবং এখনও শেলের মধ্যে রয়েছে ।
সাধারণ কথায়, কমান্ড লাইনটি কার্যকর হওয়ার জন্য এটি যে নির্দেশাবলী কল করতে পারে তা প্রয়োজন। সুতরাং কমান্ড লাইনের ব্যবহারের জন্য শেলের ভিতরে দিয়ে প্রোগ্রাম চালানো হয়েছিল programs প্রোগ্রামগুলি তাদের নিজস্ব প্যাকেজগুলিতে দৃly়ভাবে গোষ্ঠীভুক্ত করা হয়েছিল এবং একসাথে কাজ করার ইচ্ছা ছিল। এর মধ্যে "এলএস" এবং "গ্রেপ", "পিএস", "সেড" ইত্যাদি প্রোগ্রাম অন্তর্ভুক্ত রয়েছে এগুলিতে ">" এবং "<" এবং পাইপ ("|") এর মতো ফাইল পুনর্নির্দেশ কমান্ডও অন্তর্ভুক্ত রয়েছে। আরও গুরুত্বপূর্ণ এটির মধ্যে শর্তসাপেক্ষ অপারেশনগুলির মতো প্রোগ্রামিং কনস্ট্রাক্টসগুলিও অন্তর্ভুক্ত রয়েছে (যদি, তবে অন্যথায় লুপগুলির জন্য, যখন লুপগুলি থাকে, যখন আপনি কোনও বিবৃতি চালানোর সময় স্থিতি পরীক্ষা করার উপায়গুলি ফিরে আসে (উদাহরণস্বরূপ যদি আপনি "এলএস" চালান তবে এটি কিছু খুঁজে পেয়েছিল?), জিনিস সে রকমই). এগুলি আরও জটিল কমান্ড লাইন (শেল) স্ক্রিপ্টগুলির ভিত্তি,
যখন কেউ 'বাশ শেল' শব্দটি ব্যবহার করেন তারা ও / এস শেলের মধ্যে চলমান 'বাশ' নামক একটি কমান্ড লাইন দোভাষী সম্পর্কে কথা বলছেন। আপনি এটি 'বাশ শেল ইন্টারপ্রেটার' এর পক্ষে সংক্ষিপ্ত হিসাবে ভাবতে পারেন। বোর্নের মতো আরও দোভাষী রয়েছে (বাশ একটি 'নতুন এবং উন্নত বোর্ন শেল এবং এটি বোর্ন অ্যাগেইন শেলের পক্ষে সংক্ষিপ্ত)। এছাড়াও রয়েছে সি-শেল, কে-শেল (জটিল শেল স্ক্রিপ্ট লেখার পক্ষে অনেকেই পছন্দসই) এবং অন্যান্য জিএনইউ রূপগুলি। বছরের পর বছর ধরে শেল হিসাবে আপনি যে বিশেষ কমান্ড লাইন ইন্টারপ্রেটার ব্যবহার করছেন তা উল্লেখ করার প্রথা হয়ে দাঁড়িয়েছে কারণ একটি অন্যটি ছাড়া ব্যবহার করা যায় না। তবে বাস্তবতা হ'ল এগুলি আলাদা।
কেন তারা সঠিকভাবে কমান্ড লাইন ইন্টারপ্রেটার হিসাবে পরিচিত এবং প্রকৃত শেল হিসাবে নয়: কারণ তারা শেলটিতে থাকে এবং সমস্ত কমান্ডকে ব্যাখ্যা করে যেন তারা কোনও প্রোগ্রামে চলছে। যতক্ষণ না এটি সঠিক মান পূরণ করে ততক্ষণ আপনি কী দোভাষীর সাথে এটি চালাচ্ছেন তা শেলটির কোনও যত্ন নেই।
এবং কেন তাদেরকে দোভাষী বলা হয়, কারণ তারা সত্যই দোভাষী হয়। এমনকি যদি আপনি স্পষ্টভাবে কোনও স্ক্রিপ্ট চালাচ্ছেন না (এবং স্ক্রিপ্টটি আপনার তৈরি আদেশগুলির কেবল একটি টেক্সট ফাইল যা যাতে আপনি আবার এগুলি টাইপ না করে একই কমান্ডগুলি বারবার চালাতে পারেন)। উদাহরণস্বরূপ, নম্র 'ls' আদেশটি নিন। আপনি যখন এটি চালান, এটি ফাইলগুলির একটি তালিকা ফেরত দেয়। তবে এটি কীভাবে চলে তা আপনার প্রশ্নের পক্ষে আরও গুরুত্বপূর্ণ: এটি কমান্ড লাইন ইন্টারপ্রেটারের প্রেক্ষাপটের অভ্যন্তরে সঞ্চালিত হয়, এমনকি যদি আপনি কেবল এটি চালান এমনকি একটি সহজ কমান্ডের অফ কমান্ড বলে মনে হয়। অর্থাত্ এটি চালিত হয় যেন এটি কোনও বড় প্রোগ্রামের অংশ হিসাবে একটি বিবৃতি। এটি এমনভাবে চালিত হয় যেন এটি শেল স্ক্রিপ্ট স্ক্রিপ্ট ফাইলে আসলে শেল স্ক্রিপ্ট ফাইলটিতে না থাকে। এটি ছিল যেমন একটি বেনাম শেল স্ক্রিপ্ট ফাইল।
কমান্ড লাইনে আপনি যে কোনও কিছু চালনাচ্ছেন এটি সাধারণভাবে রয়েছে (এটি 'ls' এর মতো একক কমান্ড হোক বা কমান্ড এবং পুনরাবৃত্তকারী এবং শর্তসাপেক্ষ বিবৃতি পূর্ণ স্ক্রিপ্ট ফাইল): এটি সমস্ত কমান্ড লাইন ইন্টারপ্রেটার দ্বারা প্রক্রিয়া করা হয়; তা হোক বাশ, সি-শেল, কে-শেল (এআইএক্স বিটিডব্লিউতে ডিফল্ট)।
আমি কী বলতে চাইছি তা দেখতে একটি ডিরেক্টরি 'পরীক্ষা' করুন:
mkdir test
এটি প্রবেশ করান এবং ফলসিং কমান্ডগুলি চালান
grep hello *
আপনি 'এরকম কোনও ফাইল বা ডিরেক্টরি নেই' এর মতো এক ধরণের প্রতিক্রিয়া পাবেন। এখন কমান্ড লিখুন
echo $?
($? বলেছেন, ক্রিপ্টিক কম্পিউটারে আপনি কী খুঁজে পেয়েছেন তা বলুন)) আপনার এটি দেখতে একটি নম্বর ফিরে পাওয়া উচিত (এটি হওয়া উচিত) '2'। এটি গ্রাইপ থেকে রিটার্ন কোড যার অর্থ 'এই জাতীয় কোনও ফাইল বা ডিরেক্টরি নেই'। এখন নিম্নলিখিত চালান:
echo hello > hello.txt
grep hello *
echo $?
আপনি প্রাথমিক গ্রিপ কমান্ড থেকে 'হ্যালো. টেক্সট' ফাইলটি দেখবেন এবং এখন 'প্রতিধ্বনি $' দেখতে পাবেন? '0' নম্বরটি ফিরিয়ে দিন যার অর্থ এটি আসলে কিছু খুঁজে পেয়েছে।
এমনকি যদি আপাতদৃষ্টিতে এই অফ অফ কমান্ডগুলি চালিত হয়, তবুও কমান্ড লাইন ইন্টারপ্রেটার এগুলি বৃহত্তর প্রোগ্রামের অংশ হিসাবে কাজ করে এবং তাদের রিটার্নের মানগুলি রাখে। এজন্য আপনি গ্রেপ কমান্ডের শেষে * টি ভুলে গেলে তা ফিরে আসে না। এটি জানে যে বিবৃতিটি অসম্পূর্ণ এবং আরও ইনপুট প্রত্যাশা করে। সর্বোপরি আপনি কল্পিতভাবে এটি কিছু লুপের ফলাফল গ্রেপ করতে বলবেন যা কমান্ড লাইনে লিখতে এবং চালানোর জন্য পুরোপুরি আইনী।
নীচের লাইনটি শেলটি শেল এবং দোভাষী (আপনি যে কোনও নামই ব্যবহার করুন, 'বাশ', কে-শেল ইত্যাদি) আলাদা are তবে প্রায়শই এগুলি বিনিময়যোগ্য হিসাবে ব্যবহৃত হয়, কারণ যে কোনও তাত্ক্ষণিক সময়ে তারা সম্পূর্ণ একসাথে বাঁধা থাকে।