মূলধারার * এনআইএক্স শেলের মধ্যে মৌলিক পার্থক্যগুলি কী কী? [বন্ধ]


52

মূলধারার * এনআইএক্স শেলের মধ্যে মৌলিক পার্থক্যগুলি কী কী এবং কোন পরিস্থিতিতে আপনাকে একের পর এক ব্যবহার করতে অনুরোধ করতে পারে? আমি বুঝতে পারি যে এর কিছুটি সম্ভবত ব্যবহারকারীর পছন্দের দিকে নেমে আসে তবে আমি কেবল কখনও ব্যাশ ব্যবহার করেছি এবং অন্য শেলটি কোথায় কার্যকর হতে পারে তা শুনতে আগ্রহী।

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

উত্তর:


52

ইন্টারেক্টিভ ব্যবহারের জন্য, সেখানে দুটি প্রধান দাবীদার, প্রথম, হয় ব্যাশ এবং zsh , প্লাস straggler tcsh শেল এবং আগন্তুক মাছ

  • বেশিরভাগ লিনাক্স বিতরণে বাশ হ'ল জিএনইউ প্রকল্পের অফিশিয়াল শেল এবং ডিফল্ট শেল। বেস ইন্সটলেশনের অংশ হিসাবে একটি শালীন ইন্টারেক্টিভ শেল দিয়ে শিপ না করে এমন অন্যান্য ইউনিটগুলিতে, আমি মনে করি বাশ হ'ল লোকেরা যা পছন্দ করে, স্বাবলম্বীকরণে "ব্যাশ সর্বত্র থাকে তাই আমিও এটি ব্যবহার করব" লুপ। আরও দেখুন বাশ কেন সবখানে? (প্রচুর historicalতিহাসিক তথ্য সহ)

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

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

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


স্ক্রিপ্টিংয়ের জন্য, আপনার স্ক্রিপ্টগুলি কীভাবে বহনযোগ্য হতে চান তার উপর নির্ভর করে আপনি লক্ষ্য করতে চাইতে পারেন এমন কয়েকটি ভাষা রয়েছে।

  • ইউনিক্স-জাতীয় হওয়ার ভান করে যে কোনও কিছুতেই বোর্ন- নামক শেল রয়েছে /bin/sh। এখনও প্রায় যেখানে কিছু বাণিজ্যিক unices হয় /bin/shনা হয় POSIX অনুবর্তী।

  • প্রায় প্রতিটি চলমান ইউনিক্সের একটি shএক্সিকিউটেবল থাকে যা কমপক্ষে কমপক্ষে POSIX.2-1992 এবং সাধারণত কমপক্ষে POSIX: 2001 ওরফে সিঙ্গেল ইউনিক্স ভি 3 এর সাথে সামঞ্জস্যপূর্ণ । এই শেলটি হয়ত অন্য কোনও ডিরেক্টরিতে /usr/bin/posixবা যেমন থাকতে পারে /usr/xpg6/bin। পসিক্স এমুলেশন স্তরগুলি প্রায় প্রতিটি সিস্টেমের জন্য এটির পক্ষে যথেষ্ট শক্তিশালী, এটি একটি আকর্ষণীয় লক্ষ্য হিসাবে তৈরি করে।

  • অনেক UNIX সিস্টেমের আছে ksh93 (অ্যারে, মিশুক অ্যারে, বর্ধিত globs (, যা POSIX SH অভাব আছে কিছু খুব দরকারী বৈশিষ্ট্য এনেছে *(foo), @(foo|bar), ...), নাল globs ( ~(N)foo*,) ...)। Ksh প্রাথমিকভাবে বাণিজ্যিক সফ্টওয়্যার ছিল (এটি 2000 সালে বিনামূল্যে হয়ে উঠেছে, কিছু অভ্যাস স্থাপনের পরে), এবং অনেকগুলি বিনামূল্যে ইউনিক (লিনাক্স, * বিএসডি) কেবলমাত্র অনেক বেশি পুরানো ফ্রি ক্লোন ( পিডিএক্স ) সরবরাহ করার অভ্যাসে চলে আসে যার মধ্যে অনেকগুলি দরকারী বৈশিষ্ট্য নেই la । পিডিএক্স এখন ওপেনবিএসডি-র বাইরে মিক্স দ্বারা বাস্তুচ্যুত হচ্ছে , তবে মিক্স সমস্ত ksh93 বৈশিষ্ট্য প্রয়োগ করতে কমই পড়েছে। আজ, আপনি ksh93 সর্বত্র যে কোনও জায়গায় উপলভ্য রয়েছে তা নির্ভর করতে পারবেন না, বিশেষত লিনাক্সে যেখানে বাশ আদর্শ।

  • বাশ সর্বদা লিনাক্সে উপলব্ধ থাকে (কিছু এম্বেড থাকা রূপগুলি ব্যতীত) এবং প্রায়শই অন্যান্য ইউনিটে। এটিতে ksh93 এর বেশিরভাগ দরকারী বৈশিষ্ট্য রয়েছে, যদিও মাঝে মাঝে এটি আলাদা সিনট্যাক্স সহ।

  • Zsh এর বেশিরভাগ ksh93 এবং ব্যাশের দরকারী বৈশিষ্ট্য রয়েছে। এর মূল বাক্য গঠনটি ক্লিনার তবে বোর্নের সাথে বেমানান। ম্যাকোস ব্যতীত, আপনি ইনস্টল না করে এমন কোনও সিস্টেমে zsh উপলব্ধ থাকার বিষয়টি বিবেচনা করবেন না।

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


4
স্ক্রিপ্টিংয়ের জন্য আমি ড্যাশকে লক্ষ্যবস্তু করি, (যদি না আমার বাশের উন্নত বৈশিষ্ট্যের প্রয়োজন হয়) তবে যার ন্যূনতম বৈশিষ্ট্য সেট রয়েছে এবং এটি সর্বোচ্চ সামঞ্জস্যের জন্য পিক্সিক্স অভিযোগ। (এবং এটা ছোট হালকা এবং দ্রুত)
hildred

দুর্দান্ত দস্তাবেজ! দুটি নোট। প্রথমত, সোলারিস হ'ল এমন একটি "ব্যবসায়িক সংস্থাগুলির মধ্যে যেখানে / বিন / শ পসিক্স অনুগত নয়" " বিশেষ করে, এটি ব্যবহার করে jsh(যা না একটি জাভা শেল!), যা মত পরিবর্তনশীল প্রতিকল্পন অভাব আছে ${VAR#foo}এবং ${VAR%bar}
আদম কাটজ

দ্বিতীয়ত, tcshইউনিক্স ব্যবহারকারী যারা আগে ~ মধ্য 90s (যা উভয় প্রবর্তনের দেখেছি তাদের ঠাট শিখেছি মধ্যে বরং জনপ্রিয় bashএবং zsh,) বিশেষত পুরোনো ইউনিক্স + + মধ্যে Cবিকাশকারী, কার সাথে জীবন শুরু csh(অনুস্মারক, মধ্যে cshজন্য ব্রিদিং Cভাষা , যা বোর্ন-স্টাইল শাঁস থেকে তার পার্থক্যগুলির জন্য অনুপ্রেরণা ছিল)। ক্ষতিকারক হিসাবে বিবেচিত সিএস প্রোগ্রামিংও দেখুন , যা আমি প্রায়শই পসিক্স গভীর যাদু সম্পর্কিত টিপসের জন্য ব্যবহার করি (এর বিরোধী সিশ বিরোধী যুক্তি ছাড়াও)।
আদম কাটজ

ম্যাক ওএস এক্স কখনই "ওএস / এক্স" হয় না। (: এবং জর্ন বোর্নের সাথে কীভাবে বেমানান? (আচ্ছা, শব্দ বিভাজনে পরিবর্তনশীল প্রসারণ নয় এমন জিনিসগুলি বাদে))
সিলভারওয়াল্ফ - মনিকা পুনরায় ইনস্টল করুন

@ সিটারটল শব্দ-বিভাজন পরিবর্তনশীল বিস্তৃতি নয় প্রধান পার্থক্য যা আপনি zsh দিয়ে চালানোর চেষ্টা করলে (sh / ksh এমুলেশন মোডে zsh চালানো না হলে) অনেকগুলি শ স্ক্রিপ্টগুলি ভেঙে ফেলবে।
গিলস 'অশুভ হওয়া বন্ধ করুন'

27

শেলের দুটি মূল স্বাদ রয়েছে, শে (উদাঃ, বাশ) এবং সিএসএ (যেমন, টিসিএসএস)। ইন্টারেক্টিভ ব্যবহারের জন্য, এটি বেশিরভাগ ক্ষেত্রে আপনার অভ্যস্ত হয়ে আসে to আমি বহু বছর ধরে csh ব্যবহার করেছি এবং তারপরে tshsh করেছি এবং এটি পরিবর্তন করা বেদনাদায়ক হবে, কারণ আমি এটির অভ্যস্ত। আমি বাশও ব্যবহার করেছি, এবং আমি মনে করি না যে স্যুইচ করার কোনও জোরালো কারণ আছে। আপনি নিয়মিত ব্যবহার করেন এমন মেশিনে যদি এক বা অন্যটি না পাওয়া যায় তবে ব্যতীত।

প্রোগ্রামিংয়ের জন্য সিনট্যাক্স আলাদা। আপনি কেবল শেলটি পরিবর্তন করতে পারবেন না, পাশাপাশি স্ক্রিপ্টটির বাক্য গঠনটিও পরিবর্তন করতে হবে। স্ক্রিপ্টিংয়ের জন্য আপনি sh বা ব্যাশ ব্যবহার করতে চান। স্ক্রিপ্টিংয়ের জন্য সিনট্যাক্সটি অনেক বেশি সাবলীল, যেমনটি এখানে ব্যাখ্যা করা হয়েছে ( লিঙ্কটির জন্য রিকার্ডো মুরিকে ধন্যবাদ rip বাশ স্ক্রিপ্টিংয়ের জন্য এটি একটি ভাল গাইড

যদি আপনি কোনও শেল সম্পর্কে সিদ্ধান্ত না নিয়ে থাকেন এবং আপনি কিছু স্ক্রিপ্ট লেখার প্রত্যাশা করেন তবে আমি আপনাকে শিখতে হবে এমন পরিমাণের পরিমাণ হ্রাস করার জন্য ব্যাশ ব্যবহার করব।


12

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

এটিএন্ডটি সত্যই ইউনিক্স ব্যবসায়ে ছিল না, তাই এই সময়ে খুব বেসিক ওএস বার্কেল্লি কিছুটা গ্রহণ করেছিল এবং তারা বিএসডি ইউনিক্সে কিছু পরিবর্তন করেছিল। অনেকগুলি পরিবর্তনের মধ্যে একটি ছিল নতুন শেল, নামক সিএসএস, যার মধ্যে চাকরির নিয়ন্ত্রণ আরও ভাল ইন্টারেক্টিভ ব্যবহার এবং আরও অনেক কিছু রয়েছে sh দুর্ভাগ্যক্রমে, তারা সিদ্ধান্ত নিয়েছে যে sh প্রোগ্রামিং সিনট্যাক্স চুষছে এবং তাদের নিজস্ব তৈরি করেছে, (কিছুটা খারাপভাবে) সি কোডিং শৈলী থেকে অনুলিপি করা হয়েছে। (একটি ক্লাসিক রেন্ট হ'ল http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/ ) সুতরাং এখন দুটি বাক্য গঠন রইল।

পরে, তারা ট্যাব সমাপ্তি এবং কিছু অন্যান্য জিনিস সিএসএইচে উন্নতি করেছে। এটি টিসিএস হয়ে গেছে এবং আপনি যদি সিএসএইচ ব্যবহার করেন তবে সম্ভবত এটিই আপনি ব্যবহার করেন।

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

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

'চূড়ান্ত' শেল হিসাবে লেখা zsh রয়েছে। এটি লিনাক্স বিশ্বেও খুব সাধারণ। এটি ব্যাশ প্রসারিত করেছে (এবং কিছুটা পরাগকে পরাভূত করেছিল, কিছু নতুন জিনিস আবার ব্যাশে ফিরে গেছে)।

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

কোন স্ক্রিপ্ট রূপান্তর করা নির্ভর করে কি থেকে কোনটিতে। বোর্ন শেল স্টাইল (sh, ksh, bash, zsh) বা সিএসএস স্টাইলের (সিএসএস, টিসিএসএস) শক্ত হতে হবে। পুরানো থেকে নতুন (/ bin / sh => ব্যাশ, / বিন / ksh => zsh) এ যাওয়া অন্য উপায়ের চেয়ে সহজ হবে।


মনে রাখবেন যে সিএসএস-কেন পাতায় সেপ্টেম্বর 1995 এ ফিরে লেখা হয়েছিল (শীর্ষে সংস্করণ ট্যাগটি দেখুন)। আমি জানি না, তবে আমি 18 বছরের মধ্যে তার পরে প্রচুর জিনিস পরিবর্তিত হবে বলে আশা করব।
একটি সিভিএন

8

শেলের দুটি প্রধান শাখা হ'ল বোর্ন শেল ডেরিভেটিভস (শ, বাশ, কেএস, অ্যাশ, যশ এবং জেডএস) এবং সিএস ডেরিভেটিভস (টিসিএলএস এবং ... উহম ... টিসিএসসি)।

আমার সন্দেহ (যদিও আমার কোনও সত্যিকারের সংখ্যা নেই) যে ব্যাশ সর্বাধিক ব্যবহৃত হয়, এটি বেশিরভাগ লিনাক্সের মধ্যে ডিফল্ট শেল বলে মনে হয়।

এক বোর্ন শেল ডেরিভেটিভে লেখা বেশিরভাগ জিনিস সম্ভবত অন্যদের মধ্যে কাজ করবে। বোর্ন শেল-এ লেখা বেশিরভাগ জিনিস সম্ভবত সিএসএস বা টিসিএস-এর অধীনে চলার জন্য সংশোধন করা দরকার।

আমি যখন শুরু করি তখন ব্যক্তিগতভাবে আমি ksh ব্যবহার করতাম কারণ আমি যে সিস্টেমে ব্যবহার করছিলাম সেটাই ছিল। আমি এখন প্রধানত ব্যাশ ব্যবহার করি।


1
ফিশ হ'ল একটি
ক্যাশ

1

আমি সময়ের সাথে সাথে অসংখ্য শাঁস ব্যবহার করেছি। সুপার অ্যাডভান্সড কিছু নয় তবে প্রচুর ব্যবহারিক সিসাদমিন এবং প্রোগ্রামিং স্টাফের জন্য পর্যাপ্ত কাস্টমাইজেশন প্রয়োজন।

আমি মনে করি zsh এর আরও কাস্টমাইজেশন বিকল্প রয়েছে, কমপক্ষে এটি আগে ব্যবহৃত হত, তবে বেশ কয়েক বছর ধরে এটি ব্যবহার করার পরে এর স্থায়িত্ব এবং চরিত্রের এনকোডিংয়ের সমস্যাগুলির সাথে আমার যথেষ্ট ছিল। বাশ খুব শক্ত, কখনও একই সমস্যা ছিল না এবং এটি সর্বত্র ইনস্টল করা আছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.