Shell default di Mac OS X adalah bash
, yang biasanya senang saya gunakan. Saya hanya menerima begitu saja. Akan sangat bagus jika itu secara otomatis menyelesaikan lebih banyak barang , dan saya sudah mendengar hal-hal baik tentang zsh
ini. Tapi saya tidak benar-benar memiliki kecenderungan untuk menghabiskan berjam-jam mengutak-atik pengaturan untuk meningkatkan penggunaan baris perintah saya dengan jumlah kecil, karena hidup saya di baris perintah tidak terlalu buruk.
(Seperti yang saya pahami, bash
juga dapat dikonfigurasikan untuk melengkapi otomatis dengan lebih cerdik. Ini adalah konfigurasi yang tidak saya sukai.)
Akankah beralih ke zsh
, bahkan dalam sejumlah kecil kasus, membuat hidup saya lebih mudah? Atau itu hanya kulit yang lebih baik jika Anda meluangkan waktu untuk mempelajari mengapa itu lebih baik? (Contoh juga akan bagus :)
)
@ Rodney Amato
& @ Vulcan Eager
memberikan dua alasan bagus untuk masing-masing tetap berpegang pada bash
dan beralih ke zsh
. Sepertinya saya harus menyelidiki keduanya! Baiklah:)
Adakah yang berpendapat dari kedua belah pihak?
Jawaban:
Untuk penggunaan biasa, Anda mungkin lebih baik bertahan dengan bash dan hanya menginstal penyelesaian bash.
Menginstalnya cukup mudah, ambil bash-completion-20060301.tar.gz dari http://www.caliban.org/bash/index.shtml#completion dan ekstrak dengan
lalu salin file bash_completion / bash_completion ke / etc with
yang akan meminta kata sandi Anda. Anda mungkin ingin membuat direktori /etc/bash_completion.d untuk skrip penyelesaian tambahan (misalnya saya memiliki skrip penyelesaian git di sana).
Setelah ini dilakukan, langkah terakhir adalah memastikan file .bash_profile di direktori home Anda sudah
di dalamnya untuk memuat file penyelesaian saat Anda login.
Untuk mengujinya cukup buka terminal baru, dan coba selesaikan pada cvs dan itu akan menunjukkan kepada Anda opsi cvs dalam daftar penyelesaian.
sumber
brew install bash-completion
.brew tap homebrew/versions; brew install bash-completion2
Secara pribadi, saya suka zsh.
Secara umum, Anda mungkin tidak akan melihat perbedaan antara itu dan bash, sampai Anda ingin dengan cepat melakukan hal-hal seperti globbing rekursif:
**/*.c
sebagai contoh.Atau gunakan alias sufiks untuk mengaitkan prog spesifik dengan sufiks yang berbeda, sehingga Anda dapat "mengeksekusi" mereka secara langsung. Alias di bawah ini memungkinkan Anda "menjalankan" file sumber C saat diminta dengan cukup mengetik
./my_program.c
- yang akan berfungsi persis seperti saat Anda mengetikvim ./my_program.c
. (Sortir setara dengan mengklik dua kali pada ikon file.)alias -s c=vim
Atau cetak nama file yang dimodifikasi hari ini:
print *(e:age today now:)
Anda mungkin dapat melakukan semua hal ini di bash, tetapi pengalaman saya dengan zsh adalah bahwa jika ada sesuatu yang ingin saya lakukan, saya mungkin dapat menemukannya di pecinta zsh . Saya juga menemukan buku ' From Bash to Z-Shell ' sangat berguna.
Bermain dengan pikiran banyak pilihan juga menyenangkan!
sumber
find
ataulocate
mencari secara rekursif. Tapi begitu Anda membiarkan program lain melakukan pencarian, Anda kehilangan batasan antara nama (kecuali Anda hati-hati) serta akses ke kemampuan globbing internal shell, dan pada dasarnya harus melakukan apa yang disediakan oleh program lain, atau pipa output melalui program sepertigrep
,awk
ataused
(semua cukup kompleks di kanan mereka sendiri).globstar
opsi dalam bash untuk memungkinkan pencarian berulang seperti yang disebutkan di atas. Cukup yakin bukan itu masalahnya ketika jawaban ini ditulis.glob_star_short
inzsh
, Anda sekarang dapat melakukannya**.c
, yang diartikan sebagai**/*.c
.zsh 5.3
dan bergaulcommand not found: age
denganprint *(e:age today now:)
Beralih ke zsh. Anda akan memiliki akses ke:
zmv
: Anda dapat melakukan:zmv '(*).mp3' '$1.wma'
untuk ribuan file.zcalc
: Kalkulator yang sangat nyaman, lebih baik daripadabc
.zparseopts
: Satu-liner untuk parsing opsi kompleks sewenang-wenang yang diberikan kepada skrip Anda.autopushd
: Anda selalu dapat melakukanpopd
setelahcd
mengubah kembali ke direktori sebelumnya.sumber
autoload zcalc; zcalc
(walaupun saya sendiri mengetikpython
setiap kali saya membutuhkan kalkulator).zmv
danzcalc
tidak tersedia di luar kotak. Tidak jelas ituzmv
hanya mengganti nama file; Saya pikir Anda mungkin telah mengubah formatnya. Saya tidak tahu apa artinya mendukung "hash". Posting ini sepertinya hanya "berguna" untuk orang-orang yang sudah tahu zsh.bash
4 dirilis hanya beberapa bulan sebelum jawaban ini.Jika semua yang Anda ingin gunakan untuk ZSH adalah penyelesaian yang lebih baik, konfigurasinya cukup mudah. Tempatkan ini di ~ / .zshrc Anda:
Namun, ada baiknya memeriksa semua fitur hebat lainnya dari ZSH. Contoh di atas akan memberi Anda prompt yang cukup sederhana dengan penyelesaian yang baik. Jika Anda tidak ingin mengutak-atik konfigurasi, tetapi ingin melihat apa yang ZSH dapat lakukan untuk Anda, Google untuk "zshrc" dan Anda akan mendapatkan beberapa konfigurasi siap pakai untuk memulai.
sumber
zsh memiliki konfigurasi hal konsol gui. Anda dapat mengaturnya dengan cepat dan mudah tanpa harus mengutak-atik file konfigurasi. Saya tidak berpikir Anda akan memerlukan banyak waktu untuk mengaturnya, mungkin 10 detik hanya dengan menggunakan default, jadi silakan dan coba saja.
sumber
zsh
tanpa dotfiles terkait. Untuk mendapatkannya secara manual, cobaautoload -U +X zsh-newuser-install; zsh-newuser-install -f
Staale berbicara tentang program seperti penyihir (CUI) yang autoruns saat pertama kali Anda menjalankan zsh. Jawab saja beberapa pertanyaan, lihat / ubah default dan konfigurasinya untuk Anda.
IBM developerWorks memiliki sumber daya hebat di zsh.
Saya belum menggunakan fitur yang sangat canggih dan sejauh ini saya belum menemukan perbedaan serius yang seharusnya menghambat seseorang yang datang dari bash.
Beberapa contoh:
!? pattern <Tab> akan melengkapi secara otomatis ke perintah terakhir dalam pola pencocokan riwayat. Sangat berguna.
Anda dapat mengkonfigurasi prompt pada RHS. Satu penggunaan adalah untuk menjaga prompt lebar tetap di sisi kiri sehingga semua perintah berbaris dengan baik saat menampilkan pwd (atau apa pun dengan lebar variabel) sebagai prompt sisi kanan.
Anda dapat mengarahkan input dari banyak file (belum mencoba ini): cat <file1 <file2 <file3
sumber