কেউ কেন সত্যই বোর্ন শেলকে / বিন / শ হিসাবে ব্যবহার করে না?


55

আমি লক্ষ্য করেছি যে মূলত আমি এর সাথে কাজ করেছি এমন কোনও সিস্টেমই /bin/shবাস্তব বাস্তবায়নযোগ্য হিসাবে নেই। এটা সবসময় একটি সিমবলিক লিঙ্ক এর dash, bashPOSIX মোড, বা অনুরূপ কিছু।

কেন? সত্য, আসল ব্যবহারের অসুবিধাগুলি কী কী /bin/sh? (গতি? লাইসেন্সিং?)


3
আপনি কেবল কখনও লিনাক্স ব্যবহার করেছেন, তাই না? আমি লিনাক্সে কেবল "sh as syMLink" দেখেছি।
গ্রেগ হিউগিল

সোলারিস সাম্প্রতিক সংস্করণ না @GregHewgill কি shসিমলিঙ্ক ksh?
গিলস 'অসন্তুষ্ট হওয়া বন্ধ করুন'

1
@ গিলস উত্তরগুলির একটি অনুসারে, হ্যাঁ, সোলারিস ১১ এর পরে এটির সাথে যুক্ত ksh
strugee

1
@ গ্রেগ হিউগিল আমি ডারউইনকেও ব্যবহার করেছি, যা এটি bashআইআইআরসি-র সাথে সাদৃশ্যযুক্ত রয়েছে।
strugee

6
মূল / বিন / শ বলতে কী বোঝ ? ইউনিক্স ভি 1 থেকে থমসন শেল? ইউনিক্স ভি 7 এর বোর্ন শেলটিতে কোনও ফাংশন নেই বলে মন্তব্য করা হয়নি ...? সিসিআইআই, সিসিভি, সোলারিস, এইচপি / ইউএক্সের একটি, বিএসডিগুলিতে ছাই পুনঃস্থাপন? আজকাল shএমন একটি স্ট্যান্ডার্ডের উপর ভিত্তি করে যার অর্থ আমরা আপনার স্ক্রিপ্টে যতক্ষণ স্ট্যান্ডার্ড সিনট্যাক্স ব্যবহার করি ততক্ষণ আমাদের বেশ কয়েকটি বাস্তবায়ন হতে পারে যা স্পষ্টভাবে নির্দিষ্ট আচরণ করবে।
স্টাফেন চেজেলাস 21

উত্তর:


38

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

কিন্তু কোড পাওয়া যায় এখন। আপনি একবার দেখতে পারেন, এটি সংকলন করতে পারেন, এটি একটি স্পিন দিতে পারেন।


50
এবং তারপরে তত্ক্ষণাত্ আপনি আগে যা ব্যবহার করছেন তা ফিরিয়ে দিন।
Ignacio Vazquez-Abram

24
@ মাস্তি "" বৈশিষ্ট্যের অভাব "- কেন এই সমস্যা হবে?" হ্যাঁ, ভাল কথা ... প্রোগ্রামাররা কেন সমাবেশ / সি / উচ্চ স্তরের ভাষার মতো অকেজো জিনিস ব্যবহার করেন যখন আপনি ইতিমধ্যে লেখার কাজ করতে পারেন সরাসরি মেশিনের ভাষা? ফ্যাক্ট হল: বৈশিষ্ট্য = উন্নয়নের গতি + + বৃদ্ধি maintainability বৃদ্ধির = কম খরচ = ভাল ব্যবহার shঠিক ব্যবহার করার মত bashছাড়া এটা যে: ধীর, প্রোগ্রাম আর এবং এটি কঠিন বজায় রাখা হয়।
বাকুরিউ

10
এটি আসলে বৈশিষ্ট্যের অভাব নয়, তবে পসিক্স shএকটি পসিক্স কমপ্লায়েন্ট শেল চালানোর জন্য কমান্ডকে আদেশ দেয় , উত্তরাধিকার বোর্ন শেলটি কী নয়। যদিও পসিক্সের shমধ্যে থাকা দরকার নেই /bin/sh, এটি এটির জন্য সবচেয়ে যুক্তিযুক্ত ডিরেক্টরি।
jlliagre

4
@ বাকুরিউ কমান্ডের ইতিহাস এবং কমান্ড লাইন সম্পাদনা দুটি জিনিস যা আপনার সত্যই কোনও স্ক্রিপ্টের প্রয়োজন হবে না।
strugee

4
@strugee যারা না শুধুমাত্র পার্থক্য। উদাহরণস্বরূপ shটিলড এবং ব্রেস সম্প্রসারণ নেই, কিছু বিল্ট-ইনগুলি অনুপস্থিত (যেমন pushdএবং popd, select) কোনও গাণিতিক সম্প্রসারণ নয়। প্রচুর ভেরিয়েবল অনুপস্থিত, যেমন PIPESTATUS
বাকুরিউ

23

আপনার প্রশ্নের বিবৃতিটি ভুল। সংস্করণ 10 পর্যন্ত সোলারিস হয় যেমন উত্তরাধিকার সত্য বোর্ন শেল প্রদানের /bin/sh। এটি পুরানো স্ক্রিপ্টগুলির সাথে সামঞ্জস্যতা না ভাঙার জন্য করা হয়েছিল যা কোনও ভিন্ন শেলের সাথে ব্যর্থ হতে পারে। অন্যথায় যদিও এই পছন্দটি খুব হতাশাজনক ছিল।

সোলারিস 11 সহ সমস্ত ইউনিক্স এবং ইউনিক্স প্রকাশের মতো না হলে বেশিরভাগ ক্ষেত্রেই একটি পসিক্স সামঞ্জস্যপূর্ণ শেল সরবরাহ করে /bin/shকারণ পসিক্স shএকটি পসিক্স শেল প্রবর্তনের জন্য আদেশকে আদেশ করে , উত্তরাধিকারী বর্ন শেল নয় comp /bin/shসাধারণত:

  • ksh88বা ksh93বাণিজ্যিক ইউনিক্স বাস্তবায়নে
  • একটি পরিবর্তিত bashউপর OS/X(যদিও এটা ব্যবহার করা হয় zsh)
  • an ashor pdkshderivative at otherBSDs
  • bashঅথবা dashGnu / লিনাক্স বিতরণে।

এটি অগত্যা কোনও লিঙ্ক নয় তবে অনেকগুলি সিস্টেমে Gnu / Linux- এ বাস্তব বাস্তবায়নযোগ্য হতে পারে।

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

এটি কয়েকটি বাস্তব শাঁস, উল্লেখযোগ্যভাবে bash, ডাকা হলে আলাদা আচরণ করে shএবং এটি প্রায়শই অন্য উপায়ে নয়, শেল থেকে বৈশিষ্ট্যগুলি সরিয়ে দেয় a


16

যতদূর আমি জানি মূল বোর্ন শেলটি লাইসেন্সের কারণে বিএসডি এবং জিএনইউ প্রকল্পের দ্বারা ব্যবহার করা যায়নি।

তারপরে মূল ইউনিক্সের কোনও লাইসেন্স ছিল না এবং জিএনইউ প্রকল্পের একটি শেল দরকার যা জিপিএল এর অধীনে ছিল সুতরাং তারা ব্যাশ ব্যবহার করেছিল।

সমস্ত বিএসডি-র পিতা-মাতার বিএসডি 4 এর ক্ষেত্রেও একই জিনিস। বোর্ন শেল সহ মূল ইউনিক্স থেকে সমস্ত উত্স পুনরায় লেখার জন্য এটি অ্যান্ড টি মোকদ্দমার জন্য ধন্যবাদ।

Traditionalতিহ্যবাহী বিএসডি লাইনে, বোর্ন শেলটি 4.3BSD-Reno পর্যন্ত চালিত হয়েছিল (তবে নেট / ২ এবং নিম্নলিখিত 4.4BSD গুলি নেই)। লাইসেন্সের কারণে এটি তখন কেনেথ অ্যালকুইস্ট (প্রায়শই অ্যাশ নামে পরিচিত) দ্বারা বোর্ন-সামঞ্জস্যপূর্ণ, এসআরআর 4-এর মতো এস দ্বারা প্রতিস্থাপিত হয়েছিল।

ফ্রিবিএসডি থেকে man sh

থমসন শেল নামে একটি sh কমান্ড সংস্করণ 1 এটিএন্ডটি ইউনিক্স-এ উপস্থিত হয়েছিল। এটি বোর্ন শেল দ্বারা সংস্করণ AT এটিএন্ডটি ইউনিক্সে বাতিল করা হয়েছিল, নামটি উত্তরাধিকারসূত্রে উত্তরাধিকার সূত্রে প্রাপ্ত।

এটিএন্ডটি সিস্টেম ভি রিলিজ 4 ইউএনআইএক্স থেকে বোর্ন শেল দেওয়ার পরে 1989-এ BSD লাইসেন্সের অধীনে sh এর এই সংস্করণটি আবার লেখা হয়েছিল

সুতরাং উভয় প্রকল্পই বোর্ন শেলটি ব্যবহার না করে এবং একটি সত্য ওপেন সোর্স শেলের জন্য নিষ্পত্তি করতে বাধ্য হয়েছিল were


7

অন্যান্য সমস্যা আছে। বোর্ন শেল malloc () এর পরিবর্তে sbrk () ব্যবহার করেছে এবং এটি এটিকে খুব বহনযোগ্য নয়।

ওপেন সোলারিসের মাধ্যমে বোর্ন শেল ওপেনসোর্স হয়ে যাওয়ার পরে, আমি জেওফ কলিয়ার (একই ব্যক্তি যে এসআরবিকে এড়াতে সহায়তা করেছিল (একই ব্যক্তি যে এসআরবি এড়াতে সহায়তা করেছিল) এর সাহায্যে মলোক () দ্বারা sbrk () প্রতিস্থাপন করে একটি হাফওয়ে পোর্টেবল সংস্করণ এবং পরে একটি সত্যই বহনযোগ্য সংস্করণ তৈরি করেছি কর্ন শেল)।

আমি কেন বোর্ন শেলের একটি বহনযোগ্য সংস্করণ তৈরি করলাম তা প্রাথমিক কারণ হ'ল আমি 1982 থেকে 1984 এর মধ্যে আমার "bsh" এর জন্য লিখেছিলাম ইতিহাস সম্পাদককে বর্ন শেলটিতেও উপলব্ধ করা পছন্দ করেছিলাম। এদিকে, আমি "bsh" এর জন্য বোর্ন শেলকে লিখেছি এমন অনন্য বৈশিষ্ট্যগুলির বেশিরভাগ পোর্ট করেছি।

এটি অন্যদের মধ্যে রয়েছে:

  • সাইগউইন সহ প্রায় সর্বত্র সংকলন এবং কাজ করে (ব্যাশের তুলনায় প্রায় 2x দ্রুত)
  • LRU রিং বাফার সহ ইতিহাস সম্পাদক
  • অন্তর্নির্মিত TERMCAP
  • অ্যাডভান্সড অ্যালিয়াস (গ্লোবাল কনস্ট্যান্ট অ্যালিয়াসস, লোকাল এলিয়াসস, ....) এবং "দোশ" বিল্টিনের সাথে বর্ন শেল হল একমাত্র বোর্ন শেল যা একইভাবে প্যারামিটারাইজেবল অ্যালিয়াসগুলির অনুমতি দেয়।
  • কাঁচা মোডে ইতিহাস সম্পাদককে জটিল উপাত্ত সম্পাদনা করার জন্য সমর্থন।
  • .Sh। * ভেরিয়েবলের মাধ্যমে প্রস্থান (2) কোডের সমস্ত 32 বিট অ্যাক্সেস করুন।
  • 6 সংখ্যার রেজোলিউশন সহ উন্নত স্বয়ংক্রিয় সময় tim
  • pushd / popd / dirs
  • অন্তর্নির্মিত "সন্ধান"
  • Stderr থেকে পাইপ
  • উন্নত পারফরম্যান্সের জন্য ভিফোর্ক () ব্যবহার করা।
  • অবশেষে SVr4 বোর্ন শেল থেকে সমস্ত নথিভুক্ত বাগগুলি স্থির করে, যেমন সাসপেন্ড সবসময় কাজ নিয়ন্ত্রণ মোডে কাজ করে। ...

অনলাইন ম্যান পৃষ্ঠাটি এখানে রয়েছে: http://schillix.sourceforge.net/man/man1/bosh.1.html উত্সগুলি স্কিলি টুলবক্সের অংশ:

https://sourceforge.net/projects/schilytools/files/

আমি ব্যবহার করার পরামর্শ দিচ্ছি: http://sourceforge.net/projects/schilytools/files/schily-2015-08-18.tar.bz2 বা আরও নতুন সংস্করণ।

PS আমি প্রতিক্রিয়া আগ্রহী


হাই জোয়ার্গ ইতিমধ্যে কিছু BSD sh বা pdksh এর মতো পসিক্সাইফাই করা শেলের চেয়ে এগুলি কেন বোর্ন শেলটিতে পোর্ট করবেন?
স্টাফেন চেজেলাস

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

এছাড়াও নোট করুন যে আমি vshk () ব্যবহার করে ksh গতি হয়েছে কিনা তা যাচাই করতে চেয়েছিলাম। এখন যেহেতু আমি বোর্ন শেলটিকে ভিফোরক () ব্যবহার করতে রূপান্তর করেছি তা সাম্প্রতিক ksh সংস্করণগুলির তুলনায় ঠিক দ্রুত। আসল বোর্ন শেল সোর্স কোড দিয়ে শুরু করার সময় এটি আপনি পেয়ে যাবেন।
স্কিচলি

ঠিক আছে, তবে যতক্ষণ না আপনি এই পসিক্স উপযোগী না করেন, তত বেশি আগ্রহ আকর্ষণ করার সম্ভাবনা নেই। আমার মনে আছে আপনি বাউর্ন শেলের POSIX এর অসম্পূর্ণতা সম্পর্কে অস্টিন গ্রুপ এমএলকে জিজ্ঞাসা করেছিলেন, এটি কি এমন কিছু যা আপনি কাজ করছেন (যার অর্থ বর্ন শেলটি পিছিয়ে পড়া সামঞ্জস্যতা ভেঙে দেওয়া)? এছাড়াও লোকেরা (আমি কমপক্ষে) পজনিক্স সিন সিনট্যাক্সকে বোর্ন শেলটির উপরে অগ্রগতি হিসাবে বিবেচনা করে। আপনার বোর্ন-উত্পন্ন শেলকে কল করে রাখা বোর্ন শেলটি ভুল ধারণাটি পাঠিয়ে দিতে পারে। বিমশ সম্পর্কে কীভাবে (বোর্ন উন্নত (আলা vi / vim))?
স্টাফেন চেজেলাস

আমার বোর্ন শেল কিছু দিক থেকে ইতিমধ্যে কেএসএস এর চেয়ে ভাল, যেমন আধুনিক ইউএনএক্স বৈশিষ্ট্যের উপর ভিত্তি করে উন্নত এলিয়াসগুলি, পুশড / পপড / ডায়ারগুলি প্রয়োগ করা এবং রিসোর্স ইউজিলাইজেশন সমর্থন যদি এর পরিবর্তে কেএসএস করে যা এখনও এসভিআর 2 ভিত্তিক। আপনি যেমন শেলটি সম্পর্কে আগ্রহী এবং দক্ষ বলে মনে করছেন, আমি পড়ার পরে বোর্ন শেলটিতে আপনি পরবর্তীটি কী দেখতে চান সে সম্পর্কে ধারণা পেতে চাই: schillix.sourceforge.net/man/man1/bosh.1.html নোট করুন যে এখনও অবধি, আমার কাছে সমস্ত নতুন কোড রয়েছে # ifdef'd এবং কিছু বৈশিষ্ট্য (যেমন স্ট্যাডার পাইপ) সেট (1) এর মাধ্যমে চালু করা দরকার।
চৌদ্দ

4

এটি 100% পশ্চাদপদ সামঞ্জস্যতা সরবরাহ করে এমন শাঁসের সাথে লিঙ্কযুক্ত । মূল শেলটি রয়েছে এমন কোনও কিছুই আপনি হারাবেন না তবে এর উপরে আরও বৈশিষ্ট্য অর্জন করুন। কোনও খারাপ দিক নেই তাই কেন নতুন বৈশিষ্ট্যগুলি মিস করবেন? এটি একই কারণেই /bin/viসাধারণত ভিমের সাথে যুক্ত থাকে ।


5
খারাপ দিকটি হ'ল লোকেরা এমন স্ক্রিপ্টগুলি লেখেন যা তাদের এক সিস্টেমে কাজ করে, তাদের স্ক্রিপ্টটি যখন তা হয় না তখন তা সামঞ্জস্যপূর্ণ হয় thinking আমি একবার প্রায় একশ জেন্টু শেল স্ক্রিপ্টগুলি স্থির করেছিলাম যেগুলিতে আসলে বাশ প্রয়োজন কিন্তু / বিন / শ নামে ডাকা হয়। আমি বাশের পরিবর্তে ড্যাশ হওয়ার জন্য / বিন / শ পরিবর্তন করে এগুলি সমস্ত ভেঙে ফেলেছে।
জ্যান লিংস

3
"কোনও খারাপ দিক" নয় - গতি। উদাহরণস্বরূপ bash, অনেক ধীরdash
স্ট্রুজি

@ মাসজি আপনি যদি শেলের মধ্যে এমএস-রেঞ্জের উন্নতির গতি খুঁজছেন, তবে আপনি সম্ভবত কাজের জন্য সঠিক সরঞ্জামটি ব্যবহার করছেন না।
ক্রিস ডাউন

1
@ ক্রিসডাউন "এমএস-রেঞ্জ উন্নতি" সংজ্ঞায়িত করেছেন?
strugee

2
পোসিক্স সিন সিনট্যাক্স বোর্ন শ সিনট্যাক্সের সাথে পুরোপুরি পিছনে সামঞ্জস্যপূর্ণ নয়। উদাহরণস্বরূপ, IFS=,; rm file1,file2,file3বোর্ন শেল-এ সেই 3 টি ফাইল সরানো হবে। সেই (নির্বোধ) বৈশিষ্ট্যটি পসিক্স এসএইচে সরানো হয়েছে। কয়েক ডজন সূক্ষ্ম পার্থক্য রয়েছে যা বোর্ন শেলটির জন্য একটি স্ক্রিপ্ট লিখিত একটি স্ক্রিপ্টকে একটি পসিক্স sh এর সাথে আলাদাভাবে কাজ করতে পারে।
স্টাফেন চেজেলাস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.