উত্তর:
ইতিহাস (গবেষণার মাধ্যমে নয়, বেল ল্যাবসের লোকদের সাথে পুরোপুরি বেশি সময় ব্যয় করার মাধ্যমে) অর্জিত:
শুরুতে (আপনি যদি সূচনাটিকে ইউনিক্স সংস্করণ 7 হিসাবে বিবেচনা করেন) ছিল বোর্ন শেল। স্টিভ বোর্নই প্রথম দেখিয়েছিল যে ব্যবহারকারীর মিথস্ক্রিয়া নিয়ন্ত্রণকারী শেলটি কোনও ব্যবহারকারী প্রোগ্রাম হতে পারে এবং অপারেটিং সিস্টেমের বিশেষ অংশ নয়। একটি historicতিহাসিক ব্রেকথ্রু। শেলটি নিজেই স্ক্রিপ্টিংয়ের জন্য তুলনামূলকভাবে পরিষ্কার ছিল তবে কোনও কমান্ড-লাইন সম্পাদনা বা কাজের নিয়ন্ত্রণ ছিল না had ইউনিক্স শেলের সাথে বোর্নের ভূমিকা আজও প্রাথমিক ব্যবহারকারীদের জন্য কার্যকর।
সম্পাদনা : আমি কেন থম্পসন এবং জন মাশে, মাল্টিক্স থেকে কিছু "প্রাগৈতিহাসিক" উপেক্ষা করেছি। আমি নিশ্চিত যে বর্ন এই সমস্ত কাজ সম্পর্কে সচেতন ছিল (তিনি একই ল্যাবে ছিলেন, 1127, বেল ল্যাবগুলিতে), কিন্তু বোর্নের শেলটি যথার্থ ছিল এবং স্টিভ বোর্নের দ্বারা ব্যাখ্যা করা ব্যতীত আগের কাজটির খুব কম প্রভাব ছিল। উদাহরণস্বরূপ, যদিও কেন পরে প্ল্যান 9 সি সংকলক লিখেছিলেন এবং প্ল্যান 9-তে খুব প্রভাবশালী ছিলেন, তবে প্ল্যান 9 নং শাম (আরসি) এর টম ডাফের কাগজে কেবল বোর্নের শেল উল্লেখ করা হয়েছে, থম্পসনের নয়।
শেলটি কেবলমাত্র একটি ব্যবহারকারী প্রোগ্রাম, যাতে যে কোনও একটি এটি লিখতে পারে। নিউ জার্সিতে সংস্করণ 7 ইউনিক্স তৈরি হওয়ার সাথে সাথে ক্যালিফোর্নিয়ায় বার্কলে ইউনিক্স তৈরি করা হয়েছিল। বার্কলেতে বিল জয় লিখেছিলেন csh
, সি শেল। জয় চাকরি নিয়ন্ত্রণ এবং ইতিহাস এবং পরবর্তীকালে কমান্ড-লাইন সম্পাদনা যুক্ত করেছিল, তবে বোর্নের কাজ সম্পর্কে অবগত ছিল না এবং তাই থম্পসন শেলের উপর তার ভাষাকে ভিত্তি করে (যা আমি আগের বুলেটে "প্রাগৈতিহাসিক" বলে বিবেচনা করেছি)। ইউনিক্স সম্প্রদায় চাকরি নিয়ন্ত্রণ পছন্দ করত, তবে তারা বোর্নের ভাষাও পছন্দ করত। সিএসএস ভাষার বিরুদ্ধে বিশেষভাবে-ভাল- পোলামিকের জন্য , সিএসএস প্রোগ্রামিংকে ক্ষতিকারক হিসাবে বিবেচনা করুন । কিছু সময়ের জন্য, অনেকে csh
এর কাজ-নিয়ন্ত্রণ এবং ইতিহাস বৈশিষ্ট্যগুলির জন্য ইন্টারেক্টিভভাবে ব্যবহার করেছিলেন, তবে sh
স্ক্রিপ্টগুলি লেখার জন্য বোর্নের ব্যবহার করেছেন। এই পরিস্থিতি আদর্শের চেয়ে কম ছিল।
সম্পাদনা : এর কালানুক্রম সম্পর্কে আমাকে সোজা করার জন্য ডিজিটালরোসকে ধন্যবাদ csh
। যেহেতু আমি বিএসডিকে "বার্কলে ধর্মবিরোধী" বলে উল্লেখ করে তাদের কাছ থেকে আমার পড়াশোনা হয়েছিল, তাই আমি সেখানে তথ্যের খুব কমই ছিলাম।
বেল ল্যাবসে ডেভ কর্ন কর্ন শেল (কেএসএস) উত্পাদন করতে বোর্ন শেলের একটি উজ্জ্বল পুনরায় ইঞ্জিনিয়ারিং করেছিলেন। এটি বোর্ন শেলের সাথে পুরোপুরি সামঞ্জস্যপূর্ণ ছিল sh
তবে অমূল্য উন্নতির নৌকা বোঝা সরবরাহ করেছিল। ksh
একটি পসিক্স স্ট্যান্ডার্ডের ভিত্তিতে পরিণত হয়েছিল এবং এটি সান সফ্টওয়্যার দিয়ে স্ট্যান্ডার্ড প্রেরণ করা হয়েছিল। (এটি সত্ত্বেও বিল জয় বার্কলে ছেড়ে সানকে খুঁজে পেতে সহায়তা করেছিলেন এবং তাদের অন্যতম শীর্ষস্থানীয় সফটওয়্যার ছিলেন))
বেল ল্যাবস এবং এটিএন্ডটি বোকামিভাবে ksh
ওপেন সোর্স তৈরি করতে ব্যর্থ । ksh88
বহুল ব্যবহৃত হয়, তবে উত্স থাকা বৈধ নয়। কিছু লোক এতটাই আসক্ত হয়ে পড়ে যে তারা ডিজিটাল অপরাধী হয়ে ওঠে।
সম্পাদনা : এটি কি আসলেই বোকা? জানা শক্ত। বার্কলে ইতিমধ্যে ইউনিক্সকে দিচ্ছিলেন, এবং অন্যান্য কর্পোরেশনগুলি শীঘ্রই অনুসরণ করবে, কিন্তু কর্পোরেট মাস্টার্স ইউনিক্সের জন্য চার্জিংয়ে বিশ্বাস করেছিলেন তখনও এটি সেই যুগ ছিল। তবে ফলাফল: এটিটি ও টি ইউনিক্স মারা গেছে, বিভিন্ন দলের কাছে কয়েকবার বিক্রি হয়ে যাওয়ার পরে। বিএসডি এবং এর ডেরিভেটিভসগুলি জীবিত এবং ভাল, তবে "লিনাক্স" এবং "জিএনইউ" নামে পরিচিত এই আপস্টার্ট জিনিসগুলির মনস্তাদকের বিশাল অংশ রয়েছে যা একসময় বেল ল্যাবগুলির অন্তর্ভুক্ত ছিল।
ফ্রি সফটওয়্যার ফাউন্ডেশন একটি পসিক্স শেলের স্ক্র্যাচ বাস্তবায়ন থেকে শুরু করে ডেভ কর্নের সমস্ত ধারণাকে বর্তমান হিসাবে গ্রহণযোগ্যতা এবং যথাসময়ে এফএসএফ স্টাইলে তাদের নিজস্ব নতুন বৈশিষ্ট্য যেমন প্রোগ্রামেবল সমাপ্তি হিসাবে যুক্ত করে, একটি "ক্লিন-রুম" করে। তারা এটিকে "আবার বোর্ন" শেল বা ডাকে bash
।
১৯৯০ এর দশকের মাঝামাঝি এটিটি ও টি ওপেন-সোর্স ksh93
, তবে ততক্ষণে এটি ব্যাপকভাবে গ্রহণের ক্ষেত্রে দেরি হয়ে গেছে। লাইসেন্সিং চুক্তিটি অদ্ভুতভাবে মানহীন। bash
এবং ksh
বিচ্যুত ksh
হয় এবং ইতিহাসে এর স্থানের সাথে মিলে বাজারের শেয়ার কখনই অর্জন করে না।
পাঠ:
বাজারে প্রথম পর্যাপ্ত পণ্য জিতেছে (sh)।
লোকেরা নতুন বৈশিষ্ট্যগুলি (কাজের নিয়ন্ত্রণ, কমান্ড সমাপ্তি) পছন্দ করে তবে তাদের পুরানো স্ক্রিপ্টগুলি কাজ চালিয়ে গেলে তারা তাদের আরও বেশি ভালবাসে।
সম্পাদনা : প্রকৌশল অধ্যাপকদের বিজ্ঞানের ইতিহাসবিদদের কাছে ইতিহাস ছেড়ে দেওয়া উচিত :-)
বাশের দুটি সম্পূর্ণ ভিন্ন জিনিস এটির জন্য চলছে।
এটি একটি সূক্ষ্ম শেল। এটি সম্ভবত 2 টি শেলের একটি (অন্যটি zsh) যা ইতিহাসের প্রতিস্থাপনের csh
মতো কিছু দুর্দান্ত বৈশিষ্ট্যকে !
পিক্স সিনট্যাক্সে সংহত করে । এটির অ্যারে সহ প্রচুর এক্সটেনশন রয়েছে।
এটি এফএসএফ / জিএনইউ শেল। ওপেন সোর্স ওয়ার্ল্ডে এটি এটিকে এক ধরণের ক্যাশে দেয়।
আমার এটিও যুক্ত করা উচিত যে এটি সর্বদা ডিফল্ট হয় না। ash
/ bin / sh হিসাবে প্রায়শই ব্যবহৃত হয় যাতে bash
ইন্টারেক্টিভ শেল থাকতে পারে, ash
"স্রেফ কমান্ড ফাইল চালান" শেল। এর কারণ ash
এটি ছোট এবং দ্রুত এবং এতে পিক্স বৈশিষ্ট্য রয়েছে তাই এটি একটি উপযুক্ত উপসেট। ash
ইন্টারেক্টিভ শেল হিসাবে ব্যবহার করা কখনও কখনও সমস্যাযুক্ত। চালু করুন, নেটবিএসডি বলুন, এটি ভালভাবে কাজ করে, কারণ সেখানে এটি সমস্ত বৈশিষ্ট্য সহ নির্মিত হয়েছে। এটি তাদের এক ধরণের শেল এবং bash
এটি একটি বাহ্যিক প্যাকেজ। তবে লিনাক্সে ash
সাধারণত অ-ইন্টারেক্টিভ হিসাবে বিবেচিত হয়, তাই তারা ইতিহাস ব্যতীত এবং তাত্ত্বিক (গুরুত্বপূর্ণ) লাইন সম্পাদনা ছাড়াই এটি সংকলন করে যে এটি কেবল এই বিশাল gnu configure
স্ক্রিপ্টগুলি চালাতে ব্যবহৃত হয় ।
খোলের আসল ইতিহাস
আপডেট: ওয়েবে স্থান-স্থান থেকে শেলটি অনুলিপি করার একটি ভুল ইতিহাস রয়েছে এবং লোকেরা বোধগম্যভাবে এটি বিশ্বাস করছে। আমি একটি নির্ভুল সংস্করণ দেওয়ার চেষ্টা করব এবং এটি এখানে দৃ .় করার জন্য কয়েকটি লিঙ্ক সরবরাহ করব।
<, >, >>, |, &
এটিতে সমস্ত বেসিক ছিল , তবে এটি কেবলমাত্র goto
একটি বহিরাগত প্রোগ্রামের মাধ্যমে সাধারণ নিয়ন্ত্রণ বাক্য গঠন যা স্ট্যান্ডার্ড ইনপুট চেয়েছিল । তখন কোনও জটিল শেল স্ক্রিপ্ট ছিল না। পরে শেলগুলি পৃথক এফডিতে কমান্ড ইনপুটটি খুলতে পারে। এটি আজ দেখতে খুব সহজ লাগবে তবে 1970 এর গণনা যে হরর-মুভিতে এটি পৃথিবীর সেরা জিনিস। বিশ্বাস করুন বা না করুন, এই প্রাচীন শেলের আজ নিজস্ব টুইটার স্ট্রিম রয়েছে এবং অবশ্যই একটি হোম পৃষ্ঠা রয়েছে ।csh
, লিখিত (যেমন ছিল vi
) দ্বারা বিল জয় ইউসিবি করেন। এটি জিএনইউ রিডলাইন এবং নেটবিএসডি সম্পাদনার আগে ছিল, সুতরাং !
সিনট্যাক্সের সাথে ইতিহাস করা একেবারে যুক্তিসঙ্গত বলে মনে হয়েছে । সিএসএস আজকের বেশিরভাগ শেল বৈশিষ্ট্য যুক্ত করেছে তবে সিএস সিনট্যাক্স সহ। সিএসএস বিন্যাস বা অন্যথায় কোনও সিনট্যাক্স পরিবর্তন করেনি । এটি থম্পসন শেলের সাথে পিছনের দিকে সামঞ্জস্যপূর্ণ ছিল এবং মূলত টিএস উত্স কোড অন্তর্ভুক্ত করেছিল।osh
এবং csh
কিছু সময়ের জন্য জনপ্রিয় থাকুন । কোনও ইন্টারনেট ছিল না এবং এটি এসডাব্লুও লাইসেন্স ছিল, সুতরাং সেই পরিবেশে এটি সম্ভব যে স্টিফেন বোর্ন জয়ের শেল সম্পর্কে জানতেন না এবং অবশ্যই জয় বোর্ন সম্পর্কে জানতেন না। ইউসিবি যখন ভ্যাক্স এবং এখন-ভুলে যাওয়া ইউনিক্স / 32V এর পূর্বরূপ পেয়েছিল তখন দুটি শেলটি প্রথম দেখা হয়েছিল । আমার মনে আছে বিল মেমোরি বরাদ্দ সম্পর্কে অভিযোগ করেছিল। মনে রাখবেন যে উভয় শেলগুলি V6 শেলের সাথে পিছনে সামঞ্জস্যপূর্ণ ছিল, তারা কেবল বাক্যটিকে বিভিন্ন দিকে প্রসারিত করেছিলেন। ksh
। অবশেষে, csh
আধা-উপলভ্য উত্স কোড ছিল, তবে এটিটি অ্যান্ড টি এবং ক্যালিফোর্নিয়া বিশ্ববিদ্যালয়ের মধ্যে একটি মামলাতে আবদ্ধ হয়েছিল । তবুও, এই বিএসডি ইউনিক্সের গৌরবময় দিন ছিল কারণ পরিশীলিত সংস্থাগুলি যারা ৫০,০০০ ডলার ফি দিতে পারে এটিএন্ডটি লাইসেন্স কিনে ৪.০ বিএসডি ডিস্ট্রিবিউশন ইনস্টল করে এবং বিশ্ববিদ্যালয়গুলি এটি বিনামূল্যে পেয়েছিল।csh
বর্ন শেল সিনট্যাক্সের মতো কমপক্ষে অনেকে সিনট্যাক্সের সাথে গিয়েছিলেন এবং কেউ কেউ দু'টি একীভূত করেছিলেন। আপনি ছিল অন্তত tcsh
, zsh
, bash
, এবং ash
। বোর্ন সিনট্যাক্সটি "অফিসিয়াল" ছিল, এটিএটিটিটি রিলিজের অংশ ছিল, কিন্তু সেই দিনগুলিতে বিএসডি বেশ গুরুত্বপূর্ণ ছিল এবং প্রাথমিকভাবে বিএসডি সান বিশ্ব ইউনিক্স এসডাব্লুয়ের ন্যায্য পরিমাণ বিতরণ করেছিল।/bin
এবং তার /sbin
উপর নির্ভর করে তবে তা /usr
ভেঙে গেছে এবং এটি ঠিক করা দরকার; তাদের কেবলমাত্র গ্রন্থাগারের উপর নির্ভর করা উচিত /lib
। কেবল login
প্যাম প্রয়োজন; "নতুন এপিআই" যার জন্য ডায়নামিক লিব প্রয়োজন হয় তা এনএসএস হবে। "প্রবণতা"? নেটবিএসডি ২.০ ইতিমধ্যে পুরোপুরি গতিশীল /bin
এবং /sbin
৫ বছর আগে ফ্রিবিএসডি ৫.২ এবং আরও লিনাক্সের দিকে চলে গেছে ... ঠিক আছে, এটি ডিস্ট্রো অনুসারে পরিবর্তিত হয়, তবে এটি অনেক দিন হয়ে গেছে।
@ ডিজিটালরোস যা বলেছিল তা যুক্ত করতে
কারণ লিনাক্স হ'ল কর্নেল (এবং প্রয়োজনীয় সমর্থন সামগ্রী) যখন GNU সমস্ত বেসিক ইউনিক্স সফ্টওয়্যার ক্লোন সরবরাহ করে (যা সরবরাহ করে) যা আমরা "লিনাক্স" কে ব্যবহারযোগ্য করে তোলে। বাশ হ'ল জিএনইউ প্রকল্পের শেলটি ইউনিক্স সংস্করণ from থেকে পুরানো বোর্ন শেল (শ) এর ক্লোন হিসাবে লেখা ।
ইউনিক্স ডটকমের সমীক্ষা অনুসারে, এটি Ksh এর চেয়ে অনেক বেশি দূরে নয়।
/ বিন / শ 83 9 8.96%
/ বিন /
সিএসএস 36 3.89% / বিন / কেএসএস 370 39.96%
/ বিন / টিসিএস 36 3. 3.89%
/ বিন / বাশ 401 43.30%
সমৃদ্ধ বৈশিষ্ট্যগুলির কারণে বাশ ব্যাপকভাবে গ্রহণযোগ্য। এটি অন্যান্য শেল যেমন সি-শেল এবং কর্ন শেল থেকেও বৈশিষ্ট্য গ্রহণ করে। বৈশিষ্ট্যগুলির এই সেটটি একবার দেখুন ।
কারণ 'বাশ' হ'ল 100% 'sh / ksh' তুলনীয় এবং 'ksh' হ'ল পসিএক্স শেল।
সুতরাং আপনি যদি কোনও পসিক্স অনুবর্তী সিস্টেম চান এবং আপনি লিনাক্সে থাকেন তবে আপনি ব্যাশ ব্যবহার করেন use
আপনি যদি বাণিজ্যিক ইউনিক্সে থাকেন তবে আপনি সাধারণত ডিফল্ট শেল হিসাবে ksh পাবেন (একসময় সাদামাটা পুরানো sh) sh কোনও কারণে সান এখনও ফ্লিকে সিএস শেলের সাথে ডিফল্ট রয়েছে।
সুবিধাটি হ'ল এইচপি-ইউক্স বা এআইএক্স-এর জন্য লিখিত একটি .sh এর কোনও পরিবর্তন ছাড়াই লিনাক্স 'ব্যাশ' হিসাবে চালানোর ভাল সুযোগ রয়েছে।
এবং অন্যান্য সমস্ত উত্তর যুক্ত করতে: zsh
পিছনের দিকে সামঞ্জস্যপূর্ণ বোঝানো হয় না। আপনি সম্ভবত এটি সেট আপ করতে পারেন যাতে এটি সামঞ্জস্যপূর্ণ হয় তবে তারপরে আপনি এর বৈশিষ্ট্যগুলি হারাচ্ছেন।
আমি ব্যবহার করব zsh
আমার নিয়মিত ইন্টারেক্টিভ শেল হিসাবে, কিন্তু bash
/ dash
আরো একটি শেল স্ক্রিপ্টিং ভাষার হিসাবে আমাকে বিবেকী মনে; তারা কম যাদু করে এবং আরও অনুমানযোগ্য ... আমি যখন বেশ কয়েক বছর ধরে কাজ করার জন্য একটি স্ক্রিপ্ট লিখছি তখন আমার পক্ষে এটি আরও গুরুত্বপূর্ণ।
কেবল বিষয়গুলিকে বিভ্রান্ত করতে, sh
কমান্ডটি কখনও কখনও অন্য শেল প্রোগ্রামের কেবল একটি প্রতীকী লিঙ্ক হয়, যেমন ash
, bash
বা dash
।
উবুন্টু এটির সাথে লিঙ্কটি ব্যবহার করত bash
, যেহেতু bash
কোনও অনুগত বোর্ন শেল স্ক্রিপ্ট চালানোর জন্য ডিজাইন করা হয়েছে।
যদিও সম্প্রতি উবুন্টু sh
লিঙ্কটি সরিয়ে নিয়েছে dash
। স্ক্রিপ্টগুলি dash
চালানোর জন্য ডিজাইন করা হয়েছে bash
(এবং এটি sh
স্ক্রিপ্টগুলিও) তবে এটি কেবল স্ক্রিপ্টিংয়ের জন্য ব্যবহারের জন্য ডিজাইন করা হয়েছে, সুতরাং এতে ইন্টারেক্টিভ বৈশিষ্ট্যগুলির অভাব রয়েছে bash
। এটি এটিকে আরও ছোট এবং (সম্ভবত) দ্রুত করে তোলে।