ইউনিক্সে সিস্টেমের মতো একাধিক শেল কেন?


16

আমি সবেমাত্র ইউনিক্সের মূলসূত্রগুলি শিখতে শুরু করেছি এবং ভাবছি কেন ইউনিক্সের মতো সিস্টেমে এতগুলি শেল রয়েছে। ইউনিক্স পরিবেশে অ্যাডভান্সড প্রোগ্রামিং বইটি থেকে :

শেল হ'ল একটি কমান্ড-লাইন ইন্টারপ্রেটার যা ব্যবহারকারীর ইনপুট পড়ে এবং কমান্ড কার্যকর করে to

এবং তারপরে বইটি বোর্ন শেল, বোর্ন-পুনরায় শেল, চেল, ইত্যাদির মতো অনেকগুলি শেল প্রোগ্রামের তালিকাতে চলেছে। আমার প্রশ্নটি মূলত আমাদের একাধিক শেল কেন দরকার?


4
অন্যান্য বিভিন্ন প্রযুক্তির জন্য এতগুলি মানক প্রয়োগ করার একই কারণ রয়েছে। xkcd.com/927
ড্যান ফায়ারল্ড ফায়ারলাইট

1
একই কারণে আপনি একাধিক প্রোগ্রামিং ভাষার (একটি ভাষার জন্য একাধিক সংকলক) বা একাধিক ইন্টারনেট ব্রাউজারের সংকলক / দোভাষী রাখতে পারেন।
মিশা আরেফিয়েভ

6
আপনার প্রশ্ন অনুমানযোগ্য। " আমাদের একাধিক শেল কেন দরকার? " কে আপনাকে বলেছিল যে আমাদের একাধিক শেল দরকার ? আপনার বই বলেন, আমরা আছে একাধিক শেল। এটি একই জিনিস নয়।
রব

উত্তর:


15

আধুনিক ইউনিক্স পরিবেশে ব্যবহৃত বেশিরভাগ শেলগুলি পসিক্স এস স্পেসিফিকেশন অনুসারে ব্যবহৃত হয়। পসিক্স মূল কর্ন শেল (কেএস ৮৮) থেকে উদ্ভূত হয়েছে, যা পূর্বের বোর্ন শেল থেকে পরিবর্তিত হয়, তবে পসিক্স শ এমনকি কেবল ksh88 এর কার্যকারিতাটির একটি ছোট উপসেট নির্দিষ্ট করে। একটি শেল যা কেবলমাত্র ন্যূনতম প্রয়োজনীয়তা প্রয়োগ করে সেগুলি সুরক্ষিত এবং যুক্তিসঙ্গত পদ্ধতিতে স্ক্রিপ্টগুলির মধ্যে সবচেয়ে তুচ্ছ ব্যতীত সমস্ত লেখার জন্য প্রয়োজনীয় অনেকগুলি বৈশিষ্ট্য অনুপস্থিত। উদাহরণস্বরূপ, স্থানীয় ভেরিয়েবল এবং অ্যারেগুলি মানহীন অতিরিক্ত।

অতএব, প্রথম কারণটি অতিরিক্ত বৈশিষ্ট্যযুক্ত শেলটি প্রসারিত করা। বিভিন্ন শেল বিভিন্ন জিনিসে ফোকাস করতে পছন্দ করে। উদাহরণস্বরূপ, জেডএস উন্নত ইন্টারেক্টিভ বৈশিষ্ট্যগুলিতে ফোকাস করে যখন ksh93 (বর্তমান "মূল" কর্ন শেল) শক্তিশালী প্রোগ্রামিং বৈশিষ্ট্য এবং কর্মক্ষমতা উপর ফোকাস করে। এমনকি ড্যাশের মতো খুব ন্যূনতম শেলও স্থানীয় ভেরিয়েবলের মতো কমপক্ষে কয়েকটি অ-মানক অতিরিক্ত যোগ করে।

অতিরিক্ত বৈশিষ্ট্যগুলি হ'ল খুব কমই বিস্তৃতভাবে আন্তঃযোগাযোগ্য। বেশিরভাগ ksh88 ফিচারসেটটি প্রসারিত গ্লোব্বিং সিনট্যাক্সের মতো মোটামুটিভাবে আন্তঃযোগাযোগ্য, তবে অ-মানক বৈশিষ্ট্যগুলির সাথে কোনও গ্যারান্টি নেই, এবং আপনাকে অবশ্যই পোর্টেবল উপায়ে এগুলি ব্যবহার করার জন্য কী করছেন তা অবশ্যই আপনাকে জানতে হবে।

দ্বিতীয় কারণটি উত্তরাধিকার। এখনও অনেকগুলি মালিকানাধীন ইউনিক্স রয়েছে যা তাদের / বিন / শের জন্য প্রাচীন অ-মানক বাস্তবায়ন ব্যবহার করে। সম্প্রতি অবধি, সোলারিস এখনও বোর্নকে তাদের ত্রুটি হিসাবে ব্যবহার করেছিল এবং আধুনিক কিছুতে উন্নীত না করে হেরলুম শেল বজায় রাখতে বেছে নিয়েছিল। এই সিস্টেমগুলি সাধারণত বিভিন্ন শেল নিয়ে আসে যা আপনি স্যুইচ করতে পারেন উদাহরণস্বরূপ আপনার PATH ভেরিয়েবল পরিবর্তন করে বা পৃথক স্ক্রিপ্টগুলির মধ্যে শেবাংগুলি পরিবর্তন করে।

তাই সংক্ষেপে। একাধিক শেল রয়েছে, প্রায়শই ডিফল্ট হিসাবে:

  • অতিরিক্ত বৈশিষ্ট্যগুলির জন্য, বিশেষত নন-পোর্টেবল অতিরিক্তগুলি নিয়ে কাজ করার জন্য।
  • লিগ্যাসি স্ক্রিপ্টগুলি পরিচালনা করতে যা প্রায়শই অবিশ্বাস্য।
  • আকার / কর্মক্ষমতা। এম্বেড সিস্টেমে প্রায়শই ছোট ছোট শাঁস যেমন ম্যাক্স বা ব্যস্তবক্স শ এর প্রয়োজন হয়।
  • লাইসেন্সের কারণ এটিএন্ডটি কেএসএস প্রায় 2000 বা তার বেশি সময় পর্যন্ত মালিকানাধীন সফ্টওয়্যার ছিল। এটি মূলত যা Zsh এবং বাশের মতো সমস্ত ksh- এর মতো ক্লোনগুলির জন্ম দিয়েছে।
  • অন্যান্য historicalতিহাসিক কারণ। যদিও আজ খুব জনপ্রিয় না, তবুও স্ক্যাশ এবং এসএস-এর মতো ভাষাটিকে নতুন করে ডিজাইনে আনার জন্য মৌলিক প্রচেষ্টা হয়েছে। অনেকগুলি শেলের প্রক্রিয়া প্রতিস্থাপন বৈশিষ্ট্যটি মূলত আরসি থেকে আসে (কিছুটা আলাদা সিনট্যাক্স সহ), এবং সিএসএস থেকে ব্রেস প্রসারিত হয়। বিভিন্ন শেলের বিভিন্ন বৈশিষ্ট্যগুলির বিভিন্ন সংমিশ্রণ পাওয়া যায় সাধারণত কিছু সূক্ষ্ম বা না তাই সূক্ষ্ম পার্থক্য।

2
মনে রাখবেন যে localপসিক্স বা ইউনিক্স না হলেও এটি লিনাক্স স্ট্যান্ডার্ড (এলএসবি) এবং ডিবিয়ান নীতি স্ট্যান্ডার্ডে নির্দিষ্ট এবং প্রয়োজনীয় । নোট যে esএকটি ফলো-আপ হয় rc
স্টাফেন চেজেলাস

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

19

কারণ মানুষের বিভিন্ন প্রয়োজন রয়েছে এবং প্রদত্ত পরিস্থিতিতে আপনার প্রয়োজনের সাথে মানানসই বিকল্প থাকা ভাল। একটি শেল নিজেই একটি সরঞ্জাম এবং আমার মতে অন্য কোনও দ্বারা প্রতিস্থাপনযোগ্য হওয়া উচিত। এটি ইউনিক্স / লিনাক্সের শক্তি, মাইক্রোসফ্ট উইন্ডোজ যা বেছে নেওয়া হয়েছে তার বিপরীতে।

একইভাবে ... এত পাঠ্য সম্পাদক কেন? লোকেরা যদি ইতিমধ্যে একটি ব্রাউজার থাকে তবে এটি কেন বিকাশ করবে? কেন জিনোম, কেডিএ, এক্সফেস, এলএক্সডিইডি, ই 17 ইত্যাদি আছে?


12
অবিকল। কেউ জিজ্ঞাসা করতে পারেন "এত উইন্ডো ম্যানেজার কেন?" যেমন. কোনও ইউনিক্স দেশীয় বিপরীত প্রশ্ন জিজ্ঞাসা করতে পারে: কেন কেবল একটি সিএমডি.এক্সই? উইন্ডোজ কেন এত অনমনীয় এবং কাস্টমাইজযোগ্য নয়?
ব্রুস এডিগার

1
@ ব্রুসইডিগার, আপনি কেবল একটি সেমিডি.এক্সেই মানে? আপনি যদি সেগুলি ব্যবহার করতে চান তবে এর বিকল্প রয়েছে। এমনকি মাইক্রোসফ্টের নিজস্ব বিকল্প হিসাবে পাওয়ারশেল রয়েছে।
ম্যালকম

3
এমনকি COMMAND.COMডস- এও প্রতিস্থাপনযোগ্য ছিল। তবে অন্যান্য অ্যাপ্লিকেশনগুলির (এবং অন্যান্য ব্যবহারকারীদের) অনুমানের কারণে আপনি প্রায়শই একটি খুব ভঙ্গুর সিস্টেম পেয়েছিলেন। ফলস্বরূপ, এর কয়েকটি সফল বিকল্প রয়েছে CMD.EXE। একটি হ'ল পাওয়ারশেল, এটি মাইক্রোসফ্টের জড়তা রয়েছে it আরেকটি উদাহরণ হ'ল আশ্চর্যের বিষয় যথেষ্ট, bashসাইগউইন সম্প্রদায়ের কাছ থেকে ভাল সমর্থন পাওয়ার কারণে, মিনিজিডব্লিউ লোকদের উল্লেখ না করা। উইন্ডো ম্যানেজার হিসাবে, উইন্ডোজ শুধুমাত্র একবারে একটি ছিল, কিন্তু উইন্ডোজ পরিবেশ নিজেই বিবর্তিত হিসাবে অনেক সময় হয়েছে।
আরবার্টেইগ

এই উত্তরের জন্য +1। আমি মনে করি এ কারণেই আমাদের অনেকগুলি বিভিন্ন ইউনিক্স স্বাদ রয়েছে: এআইএক্স, এইচপি-ইউএক্স, সোলারিস, ট্রু 64ru, আইআরআইএক্স, ইউনিক্সওয়্যার, ওএস এক্স, লিনাক্স, ফ্রিবিএসডি, নেটবিএসডি, ওপেনবিএসডি, ..., আপনি এটির নাম দিন!
টঙ্গা

4

সংক্ষিপ্ত উত্তর

একটি অদ্ভুত লাইসেন্সিং ইতিহাসের কারণে, কোনও একক সত্ত্বা ইউনিক্স বিকাশ করতে পারেনি। এটি একটি সম্প্রদায় প্রক্রিয়া ছিল যেখানে স্বেচ্ছাসেবক এবং কর্পোরেশন উভয়ই অংশ নিয়েছিল। এই সত্তাগুলি সর্বদা তাদের সমস্ত সরঞ্জাম ভাগ করে না, তাই পৃথক শেল ঘটেছে। আমরা বুঝতে পেরেছি যে এটি কতটা উত্পাদনশীল, ততক্ষণে ব্যবহারের সমস্ত শেল একীভূত করতে খুব দেরি হয়ে গেছে। পরিবর্তে এই সমস্ত শেলগুলি একে অপরের সাথে সামঞ্জস্যপূর্ণ (তাত্ত্বিকভাবে) উপযুক্ত হবে তা নিশ্চিত করার জন্য কাজ করা হয়েছে ।

দীর্ঘ উত্তরটি জটিল এবং দৃ Un়ভাবে ইউনিক্সের ইতিহাসের সাথে যুক্ত। এই পৃষ্ঠায় এটির কোনও উত্তর ধরে রাখার কোনও উপায় নেই তবে এটি ব্যাপকভাবে (ভুল) নথিভুক্ত হয়েছে। আপনি ইউনিক্স ইতিহাসের সাথে সম্পর্কিত ওয়েব এবং বইগুলির চারপাশে আরও বিশদ এবং সুনির্দিষ্ট উত্তর খুঁজে পাবেন।


2

বিভিন্ন ওয়েব ব্রাউজার যেমন বিদ্যমান তেমনি বিভিন্ন শেল বিদ্যমান: প্রত্যেকেরই পছন্দ থাকে এবং কিছু শেলের historicalতিহাসিক ব্যাগেজ বা গতি থাকে। প্রত্যেকের বিভিন্ন বৈশিষ্ট্য এবং আইডিসিএনক্র্যাসি রয়েছে।


1

বেশিরভাগ ক্ষেত্রে, ইতিহাস ...

বোর্নকে (সপরিবারে) সিসভি ইউনিক্সের অংশ হিসাবে বিকাশ করা হয়েছিল, যখন বিএসডি ব্যবহার করেছিল csh... পরে, বাশ বোর্ন শেলের (এবং তার উন্নত সংস্করণগুলি, যেমন কেএসএস) বিকল্প হিসাবে ওপেন-সোর্স বিকল্প হিসাবে বিকশিত হয়েছিল। পসিক্স স্ট্যান্ডার্ডে বোর্নের মতো শেল গৃহীত হয়েছিল। ksh অনুগত এবং বশ অনুগত হতে পারে।

শেল পছন্দ cshএবং tcshমূল বোর্ন শেল (যা কমান্ড সমাপ্তির, ইত্যাদি অভাব) কিন্তু চেয়ে ইন্টারেক্টিভ ব্যবহার করতে অনেক সহজ স্ক্রিপ্টিং জন্য ভয়ঙ্কর হয় ...

কিছু পরিবেশে যেমন ইউনিক্স-ভিত্তিক এমবেডেড সিস্টেমস, স্ক্রিপ্টিং বৈশিষ্ট্য, আকার এবং গতি কমান্ড সমাপ্তির মতো ইন্টারেক্টিভ বৈশিষ্ট্যগুলির চেয়ে বেশি গুরুত্বপূর্ণ এবং শেলগুলির পৃথক রূপ ব্যবহার করা হয়।

পোর্টেবল স্ক্রিপ্টিংয়ের জন্য আপনার পসিক্স অনুগত বোর্ন-বৈকল্পিক ব্যবহার করা উচিত এবং এক্সটেনশনগুলি এড়ানো উচিত।


3
-১ এই চিন্তাভাবনার জন্য যে সিসভিতে বিশ্ব শুরু হয়েছিল। বোর্ন শেল 1977 সালে ইউনিক্স v7 মুক্তি পায়, ছয় বছর আগে সিস মুক্তি পায়।
রব

@Rob, S / 1977/ 1979 /
Stéphane Chazelas

ফেয়ার যথেষ্ট ... * স্নো ইতিহাস বেশ জটিল ... দেখুন en.wikipedia.org/wiki/File:Unix_history-simple.svg
গার্টি ভ্যান ডেন বার্গ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.