GNU/Linux >> Belajar Linux >  >> Linux

Fitur Apa Yang Ada Di Zsh Dan Hilang Dari Bash, Atau Sebaliknya?

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. hieroglif karakter agak sulit untuk diingat tetapi sangat nyaman (seperti, sering kali lebih cepat untuk mencarinya daripada menulis find yang setara memerintah). Beberapa contoh sederhana:
        foo*~*.bak =semua kecocokan untuk foo* kecuali yang cocok dengan *.bak
        foo*(.) =hanya file biasa yang cocok dengan foo*
        foo*(/) =hanya direktori yang cocok dengan foo*
        foo*([email protected]) =hanya tautan simbolik yang menjuntai yang cocok dengan foo*
        foo*(om[1,10]) =10 file terbaru yang cocok dengan foo*
        foo*(Lm+1) =hanya file berukuran> 1 MB
        dir/**/foo* =foo* di direktori dir dan semua subdirektorinya, secara rekursif⁴

  • Untuk penggantian nama yang bagus, zmv builtin bisa berguna. Misalnya, untuk menyalin setiap file ke file.bak :zmv -C '(*)(#q.)' '$1.bak'

  • Baik bash dan zsh memiliki sistem penyelesaian yang layak yang perlu diaktifkan secara eksplisit (. /etc/bash_completion atau autoload -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.

Terkait:Apa yang dimaksud dengan '>/dev/null 2>&1' dalam artikel dasar-dasar crontab ini??

²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.


Linux
  1. Perintah apa yang hilang dari file bashrc Anda?

  2. Konversi Semua Teks Dari Huruf Besar Ke Huruf Kecil Dan Sebaliknya?

  3. Ekspor variabel dari bash dan gunakan dengan Python

  1. Perbedaan Antara ' Dan ” Di Command Line (bash)??

  2. Apa itu Pemisah Kata Readline?

  3. Ekstrak jalur yang hilang dari bash array jalur

  1. Apa Perbedaan Mendasar Antara Kerang *nix Mainstream??

  2. Apa Arti -s Dan [[]] Dalam Kondisi If Di Bash?

  3. Manfaat Apa yang Akan Saya Lihat Memutakhirkan Dari 14,04 Menjadi 15,04 Dan Apa Beberapa Peringatannya??