Bash atau Zsh, apa bedanya, mengapa menggunakan yang satu atau yang lain? [duplikat]

23

Jadi, pertanyaannya cukup banyak mengatakan itu semua. Saya menggunakan Snow Leopard, dan saya melakukan banyak pengembangan web, terutama di Rails 3 yang banyak menggunakan konsol.

Saya telah melihat beberapa blogger terkemuka, dll. Menyebut Zsh sebagai preferensi mereka daripada Bash, tapi saya tidak tahu apa bedanya.

Adakah yang bisa memberi saya perbandingan yang baik tentang perbedaan apa yang ada dan apa yang membuat seseorang lebih suka satu opsi atau yang lain?

Andrew
sumber
1
Jika itu membantu, artikel 2016: stackabuse.com/zsh-vs-bash
Cœur
Pertanyaan ini menjadi relevan lagi karena apel beralih ke zsh
amar

Jawaban:

16

Ini dari FAQ Zsh :

2.5: Persamaan dengan bash

Shell Bourne-Again, bash, adalah shell mirip Bourne yang ditingkatkan; yang paling jelas
perbedaan dari zsh adalah bahwa ia tidak berusaha untuk meniru shell Korn. Karena keduanya
cangkang sedang dalam pengembangan aktif mungkin tidak masuk akal untuk terlalu spesifik 
sini. Secara umum, bash lebih memperhatikan kepatuhan standar (yaitu POSIX) untuk
lebih lama, dan sejauh ini telah menghindari fitur-fitur interaktif yang lebih muskil (dapat diprogram 
penyelesaian, dll. yang dimiliki zsh.

Saya telah menggunakan keduanya, tetapi lebih memilih Bash sekarang karena mesin saya bekerja secara default untuk bash secara konsisten. Komentar kepatuhan standar adalah penting bagi saya karena itu berarti konsistensi antara OS.

Zsh memiliki kemampuan pelengkapan otomatis yang bagus, tetapi saya terus menemukan kasus di mana tidak tahu apa yang saya inginkan. Itu beberapa tahun yang lalu, jadi mungkin sudah membaik sejak saat itu.

Saya telah menemukan bahwa mengaktifkan "vi-mode" ( set -o vi) di Bash membuatnya menjadi lingkungan baris perintah yang jauh lebih baik daripada biasanya, jadi saya segera melakukannya dalam .bashrcfile saya .

Saat menulis skrip shell, saya tidak pernah memprogram bash atau zsh - saya menggunakan sh ( /bin/sh), karena ini adalah penyebut umum terendah dan paling tidak memiliki masalah kompatibilitas. Itu hanya kebiasaan lama yang membuat saya sehat.

Greg
sumber
2
Satu perbedaan adalah karakter wildcard berperilaku berbeda. Misalnya untuk menemukan semua contoh file bernama "vi" orang dapat menggunakan bash dengan perintah locate */vi. Menggunakan zsh hasil untuk perintah yang sama adalah zsh: no matches found: */vi. Agar pencarian berjalan di zsh, kueri pencarian harus dikelilingi oleh tanda kutip seperti locate "*/vi".
Cadangan Pro
Namun kedua contoh Anda bekerja di bash.
John Stack