Saya telah menjadi pengguna zsh selama beberapa waktu (sebelum tcsh itu dan sebelum csh itu). Saya cukup senang dengan itu, tetapi bertanya-tanya apakah ada fitur menarik dari bash yang tidak ada di zsh. Dan sebaliknya, apakah ada fitur zsh yang tidak ada di bash. Perasaan saya saat ini adalah bahwa bash lebih baik:
- Jika Anda sudah terbiasa dan tidak ingin mempelajari sintaks baru.
- Ini akan ada pada sebagian besar semua mesin * nix secara default, sedangkan zsh mungkin merupakan instalasi tambahan.
Tidak mencoba memulai pertempuran agama di sini, itulah sebabnya saya hanya mencari fitur yang hanya ada di salah satu kerang.
Jawaban:
zsh untuk vulcan. ;-)
Serius: bash 4.0 memiliki beberapa fitur yang sebelumnya hanya ditemukan di zsh, seperti ** globbing:
setara dengan:
tapi jelas lebih kuat.
Dalam pengalaman saya penyelesaian bash yang dapat diprogram berkinerja sedikit lebih baik daripada zsh, setidaknya untuk beberapa kasus (menyelesaikan paket debian untuk aptitude misalnya).
bash
Alt + .
harus memasukkan!$
zsh has expansion of all variables, so you can use e.g.
for this. zsh can also expand a command in backtics, so
yields
I find it very useful to expand
rm *
, as you can see what would be removed and can maybe remove one or two files from the commmand to prevent them from being deleted.Also nice: using the output from commands for other commands that do not read from stdin but expect a filename:
From what I read bash-completion also supports completing remote filenames over ssh if you use ssh-agent, which used to be a good reason to switch to zsh.
Aliases in zsh can be defined to work on the whole line instead of just at the beginning:
sumber
C-M-e
ke "shell-expand-line", yang akan diperluascat `echo blubb | sed 's/u/a/'`
kecat blabb
danecho $SHELL
keecho /bin/bash
dalam kasus saya. Juga,C-x *
untuk "glob-expand-word", yang akan berkembangrm *
.Saya ingin menunjukkan bahwa bash tidak diinstal secara default pada FreeBSD, OpenBSD, atau NetBSD, dan itu juga tidak diinstal secara default pada Solaris 10 (OpenSolaris memilikinya sebagai default), terakhir kali saya menggunakan AIX, dan atau Server HP-UX juga tidak diinstal secara default.
Juga, pada OpenSolaris / bin / sh BUKAN bash. Itu ksh. Masalah terbesar yang saya miliki sebagai porter perangkat lunak adalah orang-orang yang menganggap / bin / sh adalah bash dan akan menerima sintaks bash extended. Walaupun hal ini tampaknya menjadi masalah pada sebagian besar distribusi Linux, ini tidak terjadi di tempat lain dan itu benar-benar menjengkelkan.
sumber
Meskipun saya pengguna bash, saya menemukan salah satu fitur zsh yang cukup keren: RPS1.
Ingat:
Sampel:
Saat menggunakan sesuatu seperti
Anda mendapatkan prompt Anda di sebelah kiri dan direktori saat ini didorong ke kanan. Bahkan menghilang ketika garis saat ini terlalu lama! Itu karena zsh cukup pintar untuk memberikan prioritas rendah ke RPS1.
Anda dapat melihat tangkapan layar dari contoh ini di http://imgur.com/OAZhC .
sumber
Zsh memiliki koreksi ejaan. Jika Anda libur (atau lebih) surat, itu akan mencari tahu apa yang Anda maksudkan.
Ini juga memiliki penyelesaian tab yang lebih kuat, yang saya suka.
Zsh memiliki utilitas konfigurasi interaktif untuk mengaturnya sesuka Anda.
Beberapa tes kecepatan mengatakan zsh lebih cepat, tetapi saya belum melihat adanya perbedaan.
sumber
zsh
bahkan memiliki pengaturan untuk memungkinkan kesalahan 'one letter off' untuk penggunaan keyboard Dvorak.Saya tidak tahu adanya fitur bash yang tidak didukung zsh. Tujuan desain zsh tampaknya termasuk mendukung semua fitur yang ditambahkan bash.
Saya masih menggunakan bash bukan zsh. Saya jarang menemukan fitur menarik yang mendukung zsh yang tidak dimiliki bash. Masalah sesekali dengan zsh selama bertahun-tahun, atau tidak ada pada sistem tertentu, membuatnya tidak layak melakukan transisi.
Saya akhirnya dapat menggunakan shell yang sama pada setiap sistem Unix, tidak ada baiknya melanggar ini untuk fitur yang tidak akan pernah saya gunakan.
Fitur-fitur yang ada di zsh yang tidak ada di bash tampaknya sebagian besar imut tetapi bukan yang akan berarti setiap hari.
sumber
bash memiliki banyak fitur yang dulunya hanya ada di zsh. Anda dapat memiliki 'penyelesaian tab pintar' dengan bash juga sekarang, seperti yang ditemukan oleh pengguna ubuntu baru-baru ini.
sumber
Substitusi proses dan globbing diperpanjang adalah dua fitur yang paling saya akan lewatkan. Pengaturan prompt juga cukup keren - melihat tingkat sarang ketika Anda mengetik pernyataan kompleks pada baris perintah. Autoloading membuat termasuk banyak fungsi di setiap shell yang layak.
sumber
Saya penggemar zsh karena dukungan mode vi, tetapi saya menemukan bahwa ini tidak terlalu banyak digunakan. Saya pikir saya membaca bahwa zsh suka mengambil fitur populer dari shell lain dan menggabungkannya (jadi hal-hal khusus untuk bash dan hal khusus untuk csh keduanya tersedia di zsh).
Seseorang juga mengatakan bahwa saya melenturkan faktor geek saya dengan menggunakan zsh, tetapi saya tidak dapat mengkonfirmasi atau menyangkal rumor itu.
sumber
Popularitas, #bash 430 pengguna. #zsh 123 pengguna. Saya percaya situs web zsh memiliki perbandingan zsh yang baik dengan cangkang lainnya. zsh memiliki dukungan mode vi yang lebih baik.
sumber
Bash menggunakan sintaks yang sama untuk if dan while karena itu dapat digunakan dalam skrip / bin / sh pada baris perintah.
Dalam zsh sintaksnya berbeda. Secara efektif menggunakan zsh Anda harus mengingat keduanya, jika Anda menggunakan pernyataan if- atau while-pada baris perintah Anda
sumber
if [[ $test = "test" ]]; then echo "success"; else echo "failure"; fi
pada kedua baris perintah dan skrip, dan itu berfungsi seperti yang diharapkan dalam kedua kasus. Jadi sepertinya fakta Anda tidak benar.