কেন বেশিরভাগ ওএস-এ ডিফল্ট শেল বাশ হয়?


38

কেন বেশিরভাগ ওএসে (উবুন্টু, ফেডোরা, ওএসএক্স, ইত্যাদি) ডিফল্ট শেলটি বাশ হয়? কেন এটি অনেক উন্নত ব্যবহারকারী বেশিরভাগই zsh ব্যবহার করেন? এটি যদি ভাল হয় তবে এটি ডিফল্ট নয় কেন?

আমি উভয় ব্যবহার করি আমি আমার সমস্ত কাজ সহজ করার জন্য কোনও পার্থক্য দেখতে পাই না :)


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

1
আসলে, আমি বিশ্বাস করি উবুন্টু ডিফল্ট শেল হিসাবে ড্যাশ ব্যবহার করে ...
বকুরিউ

1
এটির একটি ভাল উত্তর রয়েছে, আমি ভোট দিয়েছি আমরা এটি উন্মুক্ত রেখেছি।
শেঠ

উত্তর:


33

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

আরও জানতে, পড়ুন কেন লিনাক্সে বাশ স্ট্যান্ডার্ড? (ইউনিক্স এবং লিনাক্সে একই প্রশ্ন)।

এর সাথে আরও কিছু যুক্ত করতে চেষ্টা করার মতো আরও অনেক শেল রয়েছে, আপনি যদি আগ্রহী হন তবে এই উত্তরটি থেকে এখানে কয়েকটি দেওয়া হল :

  • জেডএসের আরও উন্নত ইন্টারেক্টিভ সুবিধাগুলি রয়েছে, তবে স্ক্রিপ্টিংয়ের ক্ষেত্রে কয়েকটি কৌতূহল রয়েছে (দিনগুলির তুলনায় এখনকার চেয়ে কম)। 1990-এর দশকের গোড়ার দিকে যখন লিনাক্স শৈশবকালীন ছিল, তখন zsh কার্যত অজানা ছিল।

  • Ksh যেহেতু মধ্য 1980 বাণিজ্যিক unices উপর কার্যত মান ছিল, কিন্তু 2000 পর্যন্ত প্রোপ্রাইটরি সফটওয়্যার ছিল, তাই লিনাক্স একটি বিকল্প। এছাড়াও, bsh এর সাথে তুলনা করে ksh এর সাবপার কমান্ড লাইন সম্পাদনার ক্ষমতা ছিল।

  • পিডিএক্স , ksh এর একটি বিনামূল্যে ক্লোন, একটি বিকল্প হতে পারে, তবে এটি সুপরিচিত ছিল না এবং এতে কম্যান্ড লাইন সংস্করণ ক্ষমতা ছিল না। (পিডিএক্স এখন আর কিছু সক্রিয় প্রকল্প নয় যদিও এটি এখনও কিছু বিএসডি-তে ব্যবহৃত হয়, এখন এটিটি কেএসএস বিনামূল্যে)

  • কিছু বিতরণ হিসাবে একটি ছাই বৈকল্পিক ইনস্টল /bin/sh। অ্যাশ (যার অর্থ আমি ছাই নামে পরিচিত শেলগুলির কোনও looseিলে .ালা পরিবারকেই ছোট এবং দ্রুত নকশাকৃত, কোনও ইন্টারেক্টিভ বৈশিষ্ট্য ছাড়াই (এটি কেবল স্ক্রিপ্ট সম্পাদনা করার জন্য) তৈরি করা হয়েছে। ছাই পুনরজ্জীবন তুলনামূলকভাবে সাম্প্রতিক; 1990 এর দশকে বিদ্যমান রূপগুলিতে অনেকগুলি বৈশিষ্ট্যের অভাব ছিল।

  • Tcsh সবচেয়ে উন্নত ইন্টারেক্টিভ শেল পর্যন্ত zsh বরাবর আগমন করত, অতঃপর এটি এবং SH সঙ্গে বেমানান এর তাই স্ক্রিপ্টিং সঙ্গে ভাল না


1
আপনি অন্য কোথাও থেকে জিনিসগুলি অনুলিপি করার সময়, আপনার স্পষ্টভাবে ইঙ্গিত করা উচিত যে এই ঘটনাটি।
মুড়ু

1
@ মুরু আমি মূল পোস্টটির লিঙ্কটি সরবরাহ করেছিলাম তবে আমি আপনার বক্তব্যটি দেখতে পাচ্ছি যে এটি আরও পরিষ্কার হতে পারে।
মার্ক কির্বি

আপনার মন্তব্যের উত্সটি কী যে স্ক্রিপ্টিং সম্পর্কিত zsh এর কয়েকটি প্রশ্ন আছে? কিছু মনে করবেন না, আমি দেখছি যে মন্তব্যটি অন্য কোথাও থেকে এসেছে।
স্কুটার

1
আপনার কাছেও মাছ রয়েছে (যা সিন সিনট্যাক্সের সাথে বেমানান)।
লায়ো লাম

1
আপনি কর্ন শেল সম্পাদনা সম্পর্কে কি ঘাটতি ছিল তা ব্যাখ্যা করতে পারেন? 90s এর মধ্যেও এটি সবসময় আমার জন্য ঠিক আছে বলে মনে হয়েছিল।
জোনাথন লেফলার

9

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

তবে বাশও একটি জিএনইউ প্রকল্প ছিল, এটি বলে আমি মনে করি, বার্কলে ইউনিক্স বা এটিএন্ডটি ইউনিক্সের উত্তরাধিকারী পণ্যের চেয়ে আরও সক্রিয় বিকাশ এবং অবদানকে সহজতর করা। খুব ভাল কেস তৈরি করা যেতে পারে যে জ্যাশ হ'ল বাশের চেয়ে ভাল শেল, তবে এটি বিভিন্ন লাইসেন্স এবং নন-জিএনইউ প্রকল্পের স্থিতিটি কাটিয়ে উঠতে যথেষ্ট নয়।

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

এখন যেহেতু বাশের বহু বছরের ডিফল্ট স্ট্যাটাস রয়েছে, এটি নিয়ে একটি বই লেখা সহ এটি একটি ডিফাক্টো স্ট্যান্ডার্ডে পরিণত হয়েছে। বাশ এবং জেড-শেল উভয়কেই কভার করে এমন একটি বই রয়েছে তবে কোনও বই এটিকে একচেটিয়াভাবে কভার করে না, যখন বাশের পক্ষে এমন একাধিক রয়েছে।

এবং এই মুহুর্তে, যদি ডিস্ট্রসগুলি কোনও বিদ্যমান সিস্টেমের আপগ্রেডের জন্য ডিফল্ট পরিবর্তন করতে থাকে তবে এটি সেটআপগুলি ভেঙে দেবে কারণ কিছু কিছু সূচনা ফাইলের আলাদা আলাদা নাম রয়েছে (যেমন .bashrc বনাম .zshrc) এবং ফাইলগুলির সামগ্রীতে অসঙ্গতিপূর্ণ বাক্য গঠন থাকতে পারে have সুতরাং তারা এটি করতে খুব অনিচ্ছুক হবে, নতুন ডাউনলোডগুলি ডিফল্ট হিসাবে zsh রাখতে এবং বাশকে আপগ্রেড করতে হবে। একই ডিসট্রোর জন্য দুটি পৃথক ডিফল্ট এমন একটি জিনিস যা তারা সম্ভবত সমর্থন করতে চায় না এবং ব্যবহারকারী / সংস্থাগুলিও এর সাথে ডিল করতে চায় না।


1

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

আপনি খুব সহজেই সাধারণ জিনিসগুলি শেষ করতে চাইলে সেগুলি চয়ন করেন। এই জন্য, আপনার প্রয়োজন:

  • সংক্ষিপ্ত বাক্য গঠন এবং পর্যাপ্ত ধারাবাহিকতা যাতে আপনি এটি আসলে মুখস্ত করতে পারেন (শর্টহ্যান্ড অপারেটরগুলি খুঁজে পাওয়া শক্ত)। আপনার শেলটি সর্বত্র ইনস্টল করা থাকলে এটি অনেকটাই গুরুত্বপূর্ণ, কারণ আপনি সত্যিকারের চেয়ে বরং এই ধরণের দানবগুলির মধ্যে একটির চেয়ে বেশি মুখস্থ করতে চান না।
  • ভাল ইন্টারেক্টিভ বৈশিষ্ট্য, যাতে আপনি ডান টার্মিনালে ডান হ্যাক করতে পারেন এবং একাধিক স্ক্রিপ্ট ফাইলের মধ্যে স্যুইচ না করেই স্টাফ কাজ করতে পারেন।
  • যে কোনও স্ক্রিপ্ট স্নিপেট যে কোনও জায়গা থেকে দখল করার ক্ষমতা এবং এটি স্রেফ কাজ করে। shসামঞ্জস্যতা এখানে একটি বড় প্লাস, এবং আরও একবার আরও ভাল জনপ্রিয়।

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

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


1
যে পরিমাণ ভাষা শ্বেত স্পেসের যত্ন নিয়ে থাকে সেগুলি "ভালভাবে নকশাকৃত" নয়, তবে আমি সম্মত হই যে জনপ্রিয়তাই মূল।
নাগোরা

1
@ নাগোরা: মতামত পৃথক। এফডাব্লুআইডাব্লু, আপনি সবসময় হোয়াইটস্পেসের পরিবর্তে ব্রেস এবং সেমিকোলন দিয়ে হাস্কেল লিখতে পারেন এবং আমি মনে করি পাইথনের অনুরূপ ফলব্যাক রয়েছে। কেবলমাত্র কেউই এটি করে না, কারণ ইনডেন্টেশন-ভিত্তিক গ্রুপিং পাঠযোগ্যতার জন্য আশ্চর্যজনক।
বাম দিকের বাইরে

1
  1. এটি যখন ছিল তখন এটি ছিল
  2. এতে পর্যাপ্ত চোখের ক্যান্ডি রয়েছে যে ব্যবহারকারীরা তাদের প্রম্পটটি কাস্টমাইজ করে এক সপ্তাহ কাটাতে পারেন।
  3. সাধারণ ব্যবহারের ক্ষেত্রে এটি যথেষ্ট ভাল (একক কমান্ড শুরু করা সর্বাধিক সাধারণ)
  4. যেখানে এটি পার্ল যথেষ্ট ভাল নয়, পাইথন এবং লুয়া স্ল্যাকটি নিতে পারে।
  5. পার্ল একটি ভয়ানক ইন্টারেক্টিভ শেল তোলে
  6. যদিও মাছ, ksh বা zsh তাত্ত্বিকভাবে একটি ভাল শেল হতে পারে আমার পক্ষে যখন পারল এত ভাল কাজ করে বা পোর্টিবিলিটি সমস্যা হয় তখন আমাকে বিরক্ত করার পক্ষে যথেষ্ট উন্নতি হয় না তাই আমি যাইহোক ড্যাশকে টার্গেট করছি।

0

"ক্রিটিকাল মাস" এর প্রধান উত্তর, আইএমও। বাশ কেবল কমান্ড লাইন কাজের জন্য নয়, এটি স্ক্রিপ্টিংয়ের জন্য এবং সেখানে প্রচুর পরিমাণে বাশ স্ক্রিপ্ট রয়েছে। কথোপকথনের জন্য বিকল্প এখন যত ভালতর হয় তা না কেন, এই স্ক্রিপ্টগুলিকে কেবল "প্লাগ এবং প্লে" করতে সক্ষম হওয়া প্রয়োজন যেমন এর সুবিধার চেয়েও বেশি। যেমন, বাশকে এখন বাস্তবে আনসেট করতে পারে এমন একমাত্র শেলটি পুরোপুরি সামঞ্জস্যপূর্ণ এবং এর পক্ষে সবচেয়ে সম্ভাব্য প্রার্থী হ'ল ... বাশের পরবর্তী সংস্করণ।


1
আপনার ডিফল্ট শেলটি যাই হোক না কেন আপনি কোনও এবং সমস্ত বাশ স্ক্রিপ্টগুলি ব্যবহার করতে পারেন। স্ক্রিপ্টের শীর্ষে শে-ব্যাং (#! / বিন / বাশ) এর অর্থ এটি।
প্যান্থার

1
@ bodhi.zazen যতক্ষণ না ব্যাশ শেল সিস্টেমে বিদ্যমান থাকে। আমি কমপক্ষে সোলারিসের একটি সংস্করণ জানি যাতে বাশ অন্তর্ভুক্ত নয়।
তুলাইনস কর্ডোভা

@ বোধি.জাজেন দুটি শেলের মধ্যে পরিবর্তন করতে মানসিক ব্যয় হয় - একটি ইন্টারেক্টিভের জন্য এবং একটি স্ক্রিপ্টিংয়ের জন্য। এটি সাধারণত বিরক্ত করার মতো নয়।
নাগোরা

1
@ নাগোরা স্ক্রিপ্ট চালানোর মানসিক ব্যয় কত ?
কোস

@ কোস যদি আপনি আক্ষরিকভাবে কেবল স্ক্রিপ্টগুলি চালাচ্ছেন তবে কিছুই নয়। যদি আপনাকে স্ক্রিপ্টগুলি বজায় রাখতে হয় এবং মানিয়ে নিতে হয় তবে আপনাকে বিভিন্ন অন্তর্নিহিত শেলগুলির মধ্যে প্রায়শই বেশিরভাগ ছোট পার্থক্য মনে রাখতে হবে, সেক্ষেত্রে চলমান ধাতব ব্যয় এবং প্রসঙ্গ-স্যুইচিংয়ের ব্যয় যখন আপনাকে কিছু কাজ করতে হয় "অন্যান্য" বাক্য গঠন।
নাগোরা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.