सवाल यूनिक्स शैल की तुलना


प्रमुख यूनिक्स शैल (बैश, ksh, tcsh, zsh, अन्य?) में, क्या किसी एक दूसरे का उपयोग करने के लिए कोई अनिवार्य कारण हैं?

  • सबसे इंटरैक्टिव / कमांड लाइन अनुकूल कौन सा है?
  • स्क्रिप्ट लिखने के लिए सबसे अनुकूल / अंतर्ज्ञानी कौन सा है?
  • क्या कोई बड़ी अंतर्निर्मित विशेषताएं हैं जो एक खोल प्रदान करती हैं जो दूसरों को नहीं करती?
  • क्या इनमें से कोई भी गोला वास्तव में एक प्रकार के फ़ंक्शन के लिए अच्छा है, लेकिन दूसरा नहीं? या वे सभी अच्छी तरह से गोल / लचीला हैं?
  • क्या यह सिर्फ व्यक्तिगत वरीयता का मामला है?

यदि कोई भी पसंद करता है तो मैं इस समुदाय विकी को बना सकता हूं।


9
2018-05-07 06:08


मूल




जवाब:


वर्तमान:

  • bash - अधिकांश लिनक्स वितरण में बोर्न फिर से खोल, डिफ़ॉल्ट खोल। कम विशेषताएं;
  • zsh - सबसे अधिक सुविधा समृद्ध, लेकिन अभी भी शायद ही कभी इस्तेमाल किया;
  • ksh - सोलारिस, एईक्स और अन्य कुछ अन्य इकाइयों में डिफ़ॉल्ट खोल;
  • tcsh - विभिन्न * बीएसडी स्वाद इकाइयों में डिफ़ॉल्ट खोल;

ऐतिहासिक:

  • sh - मूल बोर्न शेल (1 9 77 जारी)। बाश द्वारा अप्रचलित;
  • csh - मूल सी खोल (1 9 78 जारी)। Tcsh और ksh द्वारा अप्रचलित;

नोट, कि bash, ksh और zsh sh वाक्यविन्यास से प्राप्त होता है, जबकि tcsh csh वाक्यविन्यास से निकला है। यह दो काफी अलग वाक्यविन्यास हैं।

सुविधा चार्ट (विकी)।


17
2018-05-07 08:05



ज्यादातर स्क्रिप्ट आमतौर पर sh compliant के रूप में लिखी जाती हैं, क्योंकि sh के माध्यम से एक स्क्रिप्ट लॉन्च करना आमतौर पर बैश से बहुत तेज़ होता है। - Mikeage
सो कैसे? लिनक्स / बिन / sh पर / bin / bash के लिए symlink है। - vartec
/ bin / sh हमेशा / bin / bash के लिए एक symlink नहीं है - Brad Gilbert
जब आप "sh" के रूप में बैश को तुरंत चालू करते हैं, तो यह "sh" मोड में चलता है जो बैश कमांड के सबसेट का समर्थन करता है। मेरा मानना ​​है कि "sh" वाक्यविन्यास एक पॉज़िक्स मानक है। - duffbeer703
डेबियन पर आप 'डैश' का उपयोग '/ bin / sh' के विकल्प के रूप में कर सकते हैं। - drybjed


मछली एक नया खोल है जो शायद दूसरों की तुलना में अधिक दिलचस्प है, क्योंकि यह जरूरी नहीं है कि इसमें अधिक सुविधाएं हों, लेकिन क्योंकि वे डिफ़ॉल्ट रूप से काम करते हैं और क्योंकि मछली उपयोगिता के लिए प्रयास करती है।

कुछ स्क्रीनशॉट (1, 2, 3, 4) सामान्य विचार देने के लिए पर्याप्त हैं।

मछली अब मेरे मैक पर काम पर डिफ़ॉल्ट खोल है। जाओ पता लगाओ।


9
2018-05-07 07:21





यदि आप इसके अलावा एक खोल सीखने जा रहे हैं sh/bash, आप साथ ही साथ जा सकते हैं zsh। मुझे नहीं लगता कि कोई गंभीरता से प्रतिस्पर्धा करता है कि यह वैकल्पिक गोले का सबसे शक्तिशाली और फीचर-पैक है; चाहे वह सिर्फ ब्लोट है, बेशक, अभी भी बहस के लिए है।

मैंने इसके बारे में अच्छी बातें सुनी हैं fish, लेकिन उनके साथ परेशान करने के प्रयास को कभी भी काम नहीं किया।

मुझे पता है व्यवस्थापक csh तथा tcsh उन घृणित होने के लिए जिन्हें हर कीमत से बचा जाना चाहिए, और मैं उनके साथ सहमत हूं कि कभी भी किसी भी खोल के माध्यम से खुद को मजबूर नहीं किया गया है।


2
2018-05-07 09:44





मैं बैश को अच्छी तरह से जानने की सलाह दूंगा क्योंकि यह सबसे आम (आमतौर पर लिनक्स डिफ़ॉल्ट) में से एक है। निजी तौर पर, मैं अपने इंटरैक्टिव खोल के रूप में zsh प्यार करता हूँ। इसमें महान समापन सुविधाएं हैं। उदाहरण के लिए, आप मेजबानों की एक सूची सेट कर सकते हैं और जब आप ssh Ser [tab] जैसे कुछ करते हैं तो यह उन होस्टों में से एक को स्वत: पूर्ण करने का प्रयास करेगा। इसमें रिकर्सिव ग्लोबिंग भी है, इसलिए यदि आप वर्तमान और उपनिर्देशिका में सभी जेपीईजी फाइलों को ढूंढना चाहते हैं तो आप इसका उपयोग कर सकते हैं ls -ld **/*.jpg । Zsh (लोगों की .zshrc फ़ाइलों के लिए खोज) के साथ बहुत सारी मजेदार विशेषताएं हैं, और आप इसे 'बैश संगत' पर सेट कर सकते हैं, इसलिए दोनों के बीच स्विच करना आसान है। यदि आप इसे जीएनयू स्क्रीन के साथ जोड़ते हैं तो आपको कमांड लाइन के साथ काम करने में खुशी हो सकती है।


2
2018-05-13 17:54





अपना दूसरा प्रश्न मत भूलना सबसे आम यूनिक्स / लिनक्स खोल - सबसे लोकप्रिय खोल शायद किसी कारण के लिए सबसे लोकप्रिय है ;-)

इसके लायक होने के लिए, ज्यादातर लोग अक्सर गोले के बीच स्विच नहीं करते हैं, इसलिए विभिन्न विकल्पों की अच्छी तरह से तुलना करने में मुश्किल होगी; आप अपने पसंदीदा गोले के गुणों को बढ़ावा देने वाले विभिन्न लोगों को देखने की अधिक संभावना रखते हैं। मैंने अलग-अलग गोले के बारे में जो कुछ सुना है, उससे वे सभी मूलभूत सुविधाओं (जैसे I / O पुनर्निर्देशन, कमांड इतिहास इत्यादि) प्रदान करते हैं, इसलिए निजी वरीयता एक बड़ा घटक होने की संभावना है।


1
2018-05-07 06:43





जेडएसएच का उपयोग करने के लिए एक अनिवार्य कारण जिसका उल्लेख नहीं किया गया है vi मोड और emacs मोड है

उन लोगों के लिए जो शेल में अपनी वी मांसपेशी स्मृति का उपयोग करना पसंद करते हैं, यह एक हत्यारा सुविधा है।

और उन लोगों के लिए जो emacs पसंद करते हैं, आप भी उन कीबाइंडिंग का उपयोग कर सकते हैं, लेकिन सच्चे emacs-विश्वासी शायद यह कहेंगे कि emacs उनके पसंदीदा खोल है।

;-)


1
2017-07-05 15:16





दिन-प्रतिदिन उपयोग के लिए प्राथमिकता वास्तव में व्यक्तिगत स्वाद का एक मादर है, हालांकि, लिपियों को लिखते समय, मैं पोर्टेक्स के लिए पोर्टेक्स के अनुरूप होने का प्रयास करता हूं।


0
2018-05-07 06:44





जैसे ही हेड्स अप: उबंटू "sh" से "डैश" को चूकता है जो अतीत में कुछ समस्याओं को पॉज़िक्स compability के साथ ले जाता है। जाहिर है, गूंज आदेश थोड़ा अलग हैं।


0
2018-05-20 17:57