Unix mermilerinin karşılaştırılması


9

Başlıca Unix mermilerinden (bash, ksh, tcsh, zsh, diğerleri?), Birini diğerinin üzerinde kullanmanın zorlayıcı nedenleri var mı?

  • En etkileşimli / komut satırı dostu hangisidir?
  • Senaryo yazmak için en elverişli / sezgisel olan hangisidir?
  • Bir kabuğun diğerlerinin sunmadığı önemli yerleşik özellikler var mı?
  • Bu mermilerden herhangi biri bir tür işlev için gerçekten iyi mi, diğeri için değil mi? Yoksa hepsi oldukça yuvarlak / esnek mi?
  • Bu sadece kişisel bir tercih midir?

Herkes isterse bu topluluğu wiki yapabilirim.

Yanıtlar:


17

Güncel:

  • bash- Bourne tekrar kabuk, çoğu Linux dağıtımlarında varsayılan kabuk. İyi özellikler;
  • zsh - en zengin özelliklere sahip, ancak yine de nadiren kullanılır;
  • ksh - Solaris, AIX ve diğer birkaç birleşimde varsayılan kabuk;
  • tcsh - Çeşitli * BSD lezzet birimlerinde varsayılan kabuk;

Tarihi:

  • sh- orijinal Bourne kabuğu (1977'de piyasaya sürüldü). Bash tarafından geçersiz kılındı;
  • csh- orijinal C kabuğu (1978'de piyasaya sürüldü). Tcsh ve ksh tarafından kullanılmaz;

Dikkat edin, bash, ksh ve zsh sh sözdiziminden, tcsh ise csh sözdiziminden türemiştir. Bu oldukça farklı iki sözdizimidir.

Özellik tablosu (wiki).


Komut dosyalarının çoğu genellikle sh uyumlu olarak yazılır, çünkü sh ile bir komut dosyası başlatmak genellikle bash'den çok daha hızlıdır.
Mikeage

O nasıl? Linux / bin / sh üzerinde / bin / bash simgesine bağlanmıştır.
vartec

2
/ bin / sh her zaman / bin / bash için bir sembolik bağlantı değildir
Brad Gilbert

1
Bash komutunu "sh" olarak başlattığınızda, bash komutlarının bir alt kümesini destekleyen bir "sh" modunda çalışır. "Sh" sözdiziminin POSIX standardı olduğuna inanıyorum.
duffbeer703

Debian'da '/ bin / sh' yerine 'tire' kullanabilirsiniz.
drybjed

9

balık , belki de diğerlerinden daha ilginç olan yeni bir kabuktur, zorunlu olarak daha fazla özelliğe sahip olduğu için değil, sadece Varsayılan Olarak Çalıştıkları ve balıkların kullanılabilirlik için çabaladığı için.

Genel bir fikir vermek için birkaç ekran görüntüsü ( 1 , 2 , 3 , 4 ) yeterlidir.

balık artık Mac'imdeki varsayılan kabuktur. Git şekil.


2

sh/ Dışında bir kabuk öğrenecek basholursanız, sadece gidebilirsiniz zsh. Kimsenin bunun alternatif mermilerin en güçlü ve özellik dolu olduğuna ciddi bir şekilde itiraz ettiğini düşünmüyorum; sadece şişkin olup olmadığı elbette hala tartışmaya açık.

Hakkında iyi şeyler duydum fish, ama onlarla uğraşmak için hiçbir zaman çaba göstermedim.

Bildiğim yöneticiler , her ne pahasına olursa olsun kaçınılması gereken iğrenç şeyleri düşünüyor cshve tcshkendimi her iki kabuğa da sokmak zorunda kalmama rağmen onlara katılıyorum.


2

En yaygın olanlardan biri olan bash'ı bilmenizi tavsiye ederim (genellikle Linux varsayılanı). Şahsen, zsh'ı interaktif kabuğum olarak seviyorum. Harika tamamlama özelliklerine sahiptir. Örneğin, bir ana bilgisayar listesi ayarlayabilirsiniz ve ssh Ser [tab] gibi bir şey yaptığınızda, bu ana bilgisayarlardan birini otomatik olarak tamamlamayı sekmeye çalışmayı bilecektir. Ayrıca özyinelemeli globing vardır, bu nedenle mevcut ve alt dizindeki tüm jpeg dosyalarını bulmak istiyorsanız kullanabilirsiniz ls -ld **/*.jpg. Zsh ile çok sayıda eğlenceli özellik var (insanların .zshrc dosyalarını arayın) ve 'bash uyumlu' olarak ayarlayabilirsiniz, böylece ikisi arasında geçiş yapmak kolaydır. Bunu GNU Screen ile birleştirirseniz, komut satırının çalışmaktan zevk aldığını görebilirsiniz.


1

Diğer sorunuzu unutmayın En yaygın Unix / Linux kabuğu - en popüler kabuk muhtemelen en popüler sebeplerden biridir ;-)

Değeri için, çoğu insan kabuklar arasında sık sık kapanmaz, bu nedenle çeşitli seçeneklerin kapsamlı bir karşılaştırmasını almak zor olacaktır; farklı insanları en sevdikleri mermilerin erdemlerini benimseme ihtimaliniz daha yüksektir. Farklı mermiler hakkında çok az şey duyduğumdan, hepsi aynı temel özelliklerden bazılarını (G / Ç yönlendirmesi, komut geçmişi vb.) Sunar, böylece kişisel tercih büyük olasılıkla büyük bir bileşen olabilir.


1

ZSH'yi kullanmanın zorlayıcı bir nedeni vi modu ve emacs modudur .

Vi kas hafızasını kabukta kullanmayı sevenler için bu bir katil özelliktir.

Ve emacs'ı tercih edenler için, bu tuş bağlantılarını da kullanabilirsiniz, ancak gerçek emacs inananları muhtemelen emac'ların en sevdikleri kabuk olduğunu söylerdi.

;-)


0

Günlük kullanım tercihi gerçekten kişisel bir zevktir, ancak senaryo yazarken, taşınabilirlik uğruna posix uyumlu olmaya çalışıyorum.


0

Tıpkı Heads Up'da olduğu gibi: Ubuntu, geçmişte POSIX uyumluluğu ile bazı sorunlara yol açan "sh" değerini "tire" olarak ayarlar. Görünüşe göre echo komutları biraz farklı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.