Sebagai pengguna Linux, saya selalu menggunakan bash karena itu adalah default di setiap distro yang saya gunakan. Orang yang menggunakan sistem Unix lain seperti BSD tampaknya lebih sering menggunakan shell lain. Demi belajar lebih banyak, saya memutuskan untuk mencoba zsh.
Sebagai pengguna bash:
- Fitur apa yang akan saya lewatkan?
- Dan apa yang harus saya perhatikan?
Jawaban yang Diterima:
Untuk jawaban yang lebih luas, baca https://apple.stackexchange.com/questions/361870/what-are-the-practical-differences-between-bash-and-zsh/361957#361957
Sudah ada cukup banyak aktivitas pada topik di situs Stack Exchange lainnya. Pengalaman saya beralih dari bash ke zsh, sejauh yang dapat diingat (bertahun-tahun yang lalu²), adalah bahwa saya tidak melewatkan satu hal pun. Saya mendapatkan banyak; inilah yang menurut saya adalah fitur khusus zsh sederhana yang paling sering saya gunakan:
-
Fitur zsh yang paling saya rindukan ketika saya sesekali menggunakan bash adalah autocd:di zsh, menjalankan direktori berarti mengubahnya, asalkan Anda mengaktifkan
autocd
pilihan.⁴ -
Fitur lain yang sangat berguna adalah globbing mewah.
hieroglifkarakter agak sulit untuk diingat tetapi sangat nyaman (seperti, sering kali lebih cepat untuk mencarinya daripada menulisfind
yang setara memerintah). Beberapa contoh sederhana:
foo*~*.bak
=semua kecocokan untukfoo*
kecuali yang cocok dengan*.bak
foo*(.)
=hanya file biasa yang cocok denganfoo*
foo*(/)
=hanya direktori yang cocok denganfoo*
foo*([email protected])
=hanya tautan simbolik yang menjuntai yang cocok denganfoo*
foo*(om[1,10])
=10 file terbaru yang cocok denganfoo*
foo*(Lm+1)
=hanya file berukuran> 1 MB
dir/**/foo*
=foo*
di direktoridir
dan semua subdirektorinya, secara rekursif⁴ -
Untuk penggantian nama yang bagus,
zmv
builtin bisa berguna. Misalnya, untuk menyalin setiapfile
kefile.bak
:zmv -C '(*)(#q.)' '$1.bak'
-
Baik bash dan zsh memiliki sistem penyelesaian yang layak yang perlu diaktifkan secara eksplisit (
. /etc/bash_completion
atauautoload -U compinit; compinit
). Zsh jauh lebih dapat dikonfigurasi dan umumnya lebih menarik.
Jika Anda menjalankan zsh tanpa .zshrc
, itu memulai menu interaktif yang memungkinkan Anda memilih opsi konfigurasi. (Beberapa distribusi mungkin menonaktifkan ini; dalam hal ini, jalankan autoload zsh-newuser-install; zsh-newuser-install
.) Saya sarankan untuk mengaktifkan opsi riwayat yang disarankan, mengaktifkan penyelesaian ("gaya baru"), dan mengaktifkan "opsi shell umum" kecuali beep
. Nanti, konfigurasikan lebih banyak opsi saat Anda menemukannya.
²Pada saat penyelesaian yang dapat diprogram adalah fitur pembunuh zsh, tetapi bash segera mendapatkannya.
Fitur yang bash diperoleh hanya di versi 4 (jadi tidak tersedia secara luas pada saat jawaban ini diposting, dan tidak tersedia di bash yang disediakan sistem di macOS) dalam tipe yang lebih kecil.