Anasayfa » nasıl » Bash, Zsh ve Diğer Linux Kabuklar Arasındaki Fark Nedir?

    Bash, Zsh ve Diğer Linux Kabuklar Arasındaki Fark Nedir?

    Çoğu Linux dağıtımında varsayılan olarak bash kabuğu bulunur, ancak başka bir kabuk ortamına da geçebilirsiniz. Zsh özellikle popüler bir alternatiftir ve kül, kısa çizgi, balık ve tcsh gibi başka mermiler de vardır. Ama fark nedir ve neden bu kadar çok var??

    Kabuklar Ne Yapar??

    Komut satırında oturum açtığınızda veya Linux'ta bir terminal penceresi başlattığınızda, sistem kabuk programını başlatır. Kabuklar, komut satırı ortamını genişletmenin standart bir yolunu sunar. İsterseniz varsayılan kabuğunu başka biri için değiştirebilirsiniz..

    İlk kabuk ortamı Bell Labs'ta geliştirilen ve 1971'de piyasaya sürülen Thompson Shell'di. Shell ortamları o zamandan beri konsept üzerine inşa edilmiş, çeşitli yeni özellikler, işlevsellik ve hız iyileştirmeleri eklemiştir..

    Örneğin, Bash komut ve dosya adı tamamlama, gelişmiş komut dosyası özellikleri, komut geçmişi, yapılandırılabilir renkler, komut takma adları ve 1971'de ilk kabuk piyasaya çıktığında kullanılamayan çeşitli diğer özellikler sunar..

    Kabuk ayrıca arka planda çeşitli sistem servisleri tarafından da kullanılır. Linux dağıtımları, kabuk komut dosyaları olarak yazılmış birçok işlevi içerir. Bu komut dosyaları, komutlar ve kabuk ortamında çalışan diğer gelişmiş kabuk komut dosyası işlevleridir..

    Bash'e Giden Kabuklar: sh, csh, tsh ve ksh

    Modern mermilerin en öne çıkan atası, “sh” olarak da bilinen Bourne kabuğu, AT & T's Bell Laboratuarlarında çalışan yaratıcısı Stephen Bourne olarak seçildi. 1979'da piyasaya sürüldü, diğer özelliklerle birlikte komut değiştirme, borulama, değişkenler, durum testi ve döngü desteği nedeniyle Unix'te varsayılan komut yorumcusu oldu. Kullanıcılar için çok fazla kişiselleştirme yapmadı ve takma adlar, komut tamamlama ve kabuk işlevleri gibi modern güzellikleri desteklemedi (en sonuncusu eklense de).

    C kabuğu veya “csh” 1970'lerin sonunda Berkley, California Üniversitesi'nde Bill Joy tarafından geliştirilmiştir. Kullanıcıların sistemlerini kontrol edebildiği, takma adlar (uzun komutlar için kısayollar), iş yönetimi yetenekleri, komut geçmişi ve daha fazlası gibi birçok etkileşimli öğe ekledi. Unix işletim sisteminin kendisinin de yazdığı C programlama dili kullanılarak modellenmiştir. Bu, Bourne kabuğunun kullanıcılarının C komutlarını öğrenmeleri ve böylece komutları girmeleri anlamına geliyordu. Ek olarak, csh, hem kullanıcılar hem de yaratıcılar tarafından büyük bir süre zarfında dövülmesi gereken birkaç hataya sahipti. İnsanlar etkileşimli olmayan komutları daha iyi ele aldığından, ancak normal kullanım için C kabuğuna saplandığından komut dosyaları için Bourne kabuğunu kullandılar.

    Zamanla, birçok kişi hataları düzeltip C kabuğuna özellikler ekleyerek “tcsh” olarak bilinen gelişmiş bir csh sürümüyle sonuçlandı. Ancak, Unix tabanlı bilgisayarlarda hala csh varsayılandı ve standart dışı bazı özellikler ekledi. Bell Labs'dan David Korn, Bourne kabuğunun dili ile geriye dönük olarak uyumlu olmakla birlikte csh kabuğundan birçok özellik ekleyerek durumu iyileştirmeye çalışan KornShell veya “ksh” üzerinde çalıştı. 1983 yılında, ancak özel bir lisans altında yayınlandı. Çeşitli açık kaynaklı lisanslar altında piyasaya sürüldüğü 2000'li yıllara kadar özgür bir yazılım değildi..

    Bash'ın doğuşu

    Unix için Taşınabilir İşletim Sistemi Arabirimi veya POSIX, telaşlı tescilli csh uygulamalarına başka bir cevaptı. Komut yorumlama (başka şeylerin yanı sıra) için bir standart oluşturdu ve sonunda KornShell'deki birçok özelliği yansıtdı. Aynı zamanda, GNU Projesi ücretsiz, Unix uyumlu bir işletim sistemi yaratmaya çalışıyordu. GNU Projesi, özgür işletim sisteminin bir parçası olmak için ücretsiz bir yazılım kabuğu geliştirdi ve “Bourne Again Shell” veya “bash” olarak adlandırdı..

    Bash, 1989’daki ilk sürümünden bu yana on yıllar içinde iyileştirildi, ancak bugün çoğu Linux dağıtımında hala varsayılan kabuk. Aynı zamanda Apple'ın macOS'unda varsayılan kabuktur ve Microsoft Windows 10'a yüklenmek için kullanılabilir.

    Yeni Kabuklar: kül, çizgi, zsh ve balık

    Linux topluluğu, o zamandan beri Bash'e yerleşmiş olsa da, geliştiriciler Bash'in 28 yıl önce piyasaya sürüldüğü zaman yeni mermiler yaratmayı bırakmadı..

    Kenneth Almquist, Almquish kabuğu, A Kabuğu, “kül” veya bazen sadece “sh” olarak bilinen bir Bourne kabuğu klonu yarattı. Aynı zamanda POSIX uyumluydu ve Unix'in farklı bir kolu olan BSD'de varsayılan kabuk haline geldi. Kül kabuğu, gömülü Linux sistemlerinde popüler kılan bashtan daha hafiftir. BusyBox yüklü bir köklü Android telefonunuz varsa veya BusyBox yazılım paketine sahip başka bir cihaz varsa, kül kodunu kullanır..

    Debian, kül bazlı bir kabuk ortamı geliştirdi ve “tire” olarak nitelendirdi. POSIX uyumlu ve hafif olacak şekilde tasarlanmıştır, bu nedenle Bash'ten daha hızlıdır, ancak tüm özelliklerine sahip olmaz. Ubuntu, çizgi olmayan kabukları etkileşimli olmayan görevler için varsayılan kabuk olarak kullanır, kabuk komut dosyalarını ve arka planda çalışan diğer görevleri hızlandırır. Ubuntu, etkileşimli mermiler için hala bash kullanıyor, ancak kullanıcılar hala tam özellikli etkileşimli ortamlara sahipler..

    En popüler yeni mermilerden biri Z kabuğu veya “zsh” dir. 1990 yılında Paul Falstad tarafından oluşturulan zsh, bash'ta bulabileceğiniz özellikleri ve daha da fazlasını içeren Bourne tarzı bir kabuktur. Örneğin, zsh yazım denetimine, giriş / çıkış izleyebilme özelliğine, bayt kodu gibi bazı yerleşik programlama özelliklerine, sözdiziminde bilimsel gösterim için destek, kayan nokta aritmetiğine ve diğer özelliklere izin verir.

    Daha yeni bir kabuk 2005 yılında piyasaya çıkan Friendly Interactive Shell veya “fish” dır. Öğrenmesi biraz daha kolay olacak şekilde tasarlanmış, ancak Bourne kabuğundan veya C kabuğundan türetilmemiş benzersiz bir komut satırı sözdizimine sahiptir. Bu ilginç bir fikir, ancak balık kullanarak öğrendikleriniz mutlaka bash ve diğer Bourne türevi mermileri kullanmanıza yardımcı olmaz.

    Hangisini Seçmelisin? (ve Zsh Popüler Neden?)

    Bir kabuk seçmenize gerek yok. İşletim sisteminiz sizin için varsayılan kabuğunu seçiyor ve bu seçim neredeyse her zaman bash. Bir Linux dağıtımı veya hatta bir Mac bile oturun ve neredeyse her zaman bir bash shell ortamına sahip olacaksınız. Bash epeyce gelişmiş özelliklere sahiptir, ancak kabuk komut dosyaları programlamadığınız sürece muhtemelen kullanmazsınız.

    Gömülü Linux sistemlerinde veya BSD sistemlerinde, kül kabuğuna sahip olacaksınız. Ancak kül, Bourne bazlı bir kabuktur ve büyük ölçüde bash ile uyumludur. Bazı gelişmiş komut dosyası özellikleri bu hafif kabukta bulunmamakla birlikte, bash kullanmakta olduğunuz herhangi bir bilgi, bir kül veya çizgi kabuk kullanmaya aktarılır..

    Neredeyse karşılaşacağınız her kabuk Bourne tabanlıdır ve zsh dahil benzer şekilde çalışır.

    Bu yüzden zsh popülerdir. Bu yeni kabuk bash ile uyumlu, ancak daha fazla özellik içeriyor. Zsh kabuğu, yerleşik yazım düzeltme, geliştirilmiş komut satırı tamamlama, kabuğunuz için eklenti görevi gören yüklenebilir modüller, dosya adlarını takma yapmanıza olanak sağlayan genel takma adlar veya komut satırı yerine sadece komutlar yerine başka komutlar sunar. daha fazla tema desteği. Bu bash gibi, ancak çok fazla ekstra, ek özellikler ve yapılandırılabilir seçeneklerle, komut satırında çok zaman geçirirseniz sevinirsiniz.

    Eğer bash ile aşina iseniz, farklı bir sözdizimi öğrenmeden zsh'ye geçebilirsiniz - sadece ek özellikler kazanacaksınız. zsh ile aşina iseniz, farklı bir sözdizimi öğrenmeden bash'a geçiş yapabilirsiniz - bu özelliklere erişemezsiniz.

    “Oh My ZSH”, zsh eklentilerini daha kolay etkinleştirmenize ve hazır temalar arasında geçiş yapmanıza yardımcı olan, zsh kabuğunuzu işleri saatlerce değiştirmeden hızla özelleştirmenizi sağlayan bir araçtır.

    Başka kabukları da var. Örneğin, tcsh kabuğu hala etrafta ve hala bir seçenek. FreeBSD, varsayılan kök kabuğu olarak tsch ve varsayılan etkileşimli kabuğu olarak kül kullanır. C programlamasını düzenli olarak kullanıyorsanız, tsch sizin için daha uygun olabilir. Ancak, bash veya zsh olarak yaygın olarak kullanılan hiçbir yere yakın değildir.

    Kabuklar Arasında Nasıl Geçilir?

    Denemek için yeni bir mermiye geçmek kolaydır. Kabuğu Linux dağıtımınızın paket yöneticisinden yükleyin ve kabuğunu başlatmak için komutu yazın.

    Örneğin, Ubuntu'da zsh'yi denemek istediğinizi varsayalım. Yüklemek ve başlatmak için aşağıdaki komutları çalıştırdınız:

    sudo apt yüklemek zsh zsh

    Daha sonra bir zsh kabuğunda oturuyor olurdun. Yazın ” çıkış ”Kabukunda bırakın ve mevcut kabuğunuza geri dönün.

    Bu sadece geçici. Yeni bir terminal penceresi açtığınızda veya komut satırında sisteminize giriş yaptığınızda, varsayılan kabuğunuzu göreceksiniz. Giriş kabuğunuz olarak bilinen oturum açtığınızda gördüğünüz kabuğu değiştirmek için, genellikle chsh , veya “Kabuğu Değiştir”, komut.

    Bu komutu kullanmak için önce kabuğunuzun tam yolunu hangi komutla bulmanız gerekir. Örneğin, zsh kabuğuna geçmek istediğimizi varsayalım. Aşağıdaki komutu çalıştırdık:

    hangi zsh

    Ubuntu'da, bu bize zsh binary'in / usr / bin / zsh konumunda olduğunu gösterir..

    Aşağıdaki komutu çalıştırın, şifrenizi girin ve sizden yeni bir giriş kabuğu seçmeniz istenecek:

    chsh

    Yukarıdaki komuta göre, gireriz / Usr / bin / zsh . Zsh kabuğu daha sonra biz koştuğumuzda bizim varsayılanımız olurdu. chsh komut ve geri değişti.