Saya sedang mempertimbangkan pindah dari bash ke zsh karena saya sering menemukan posting memuji zsh. Saya pengguna baris perintah yang berpengalaman dan saya mengasumsikan dasar-dasarnya hampir sama, jadi saya mencari saran untuk mendapatkan manfaat bergerak, dan setiap gotcha harus diperhatikan.
Tolong, berikan sedikit saran per jawaban. Saya mencari potongan ukuran gigitan di mana saya bisa kembali dan mengintegrasikan bit info tambahan ke dalam penggunaan shell saya dengan kecepatan yang stabil daripada mencoba untuk mempelajarinya semuanya dalam sekali jalan.
bash
command-line
zsh
Hamish Downer
sumber
sumber
source /etc/zsh_command_not_found
ke.zshrc
.Jawaban:
Seperti yang Anda katakan,
zsh
dalam banyak hal serupabash
. Ini memiliki beberapa fitur yang tidak akan Anda temukanbash
, dan dapat diperluas dengan cara yang kuat. Jangan berpikir bergerak sebagai semacam revolusi, melainkan sebagai serangkaian langkah evolusi yang membantu Anda dalam pekerjaan sehari-hari. Berikut beberapa petunjuk dari saya.zshrc
. Meskipun Anda mengatakan Anda lebih suka saran tunggal, posting ini adalah daftar agak panjang. Tetap merupakan ide bagus untuk membahas poin satu per satu. Cukup tambahkan bit yang menarik ke Anda~/.zshrc
dan muat ulangsource ~/.zshrc
. Tip akhir: belajar keystrokes darizsh
's default ( "Emacs") shortcut keyboard:^A ^E ^W Alt-F Alt-B Alt-P ^L ^R
. Anda dapat menggantiAlt
dengan dua penekanan tombol yang terpisah:Alt-P
sama denganESC
P
.Ini memberi Anda penyelesaian tab yang lebih luas.
Penyelesaian tab dari kedua ujung.
Penyelesaian tab harus peka huruf besar-kecil.
Penyelesaian yang lebih baik untuk killall.
Mengubah definisi "kata", misalnya dengan ^ W.
Warna untuk ls.
Pintasan untuk ls.
Satu riwayat untuk semua kerang yang terbuka; simpan 10.000 entri. Ini menjadikan ini menjadi bantuan memori yang berguna untuk menemukan perintah yang Anda gunakan terakhir kali untuk
./configure
dll. Gunakan Alt-P (temukan perintah yang dimulai seperti ini) dan ^ R (cari dalam sejarah) secara bebas.Mengaktifkan semua jenis globbing yang diperluas, seperti ls ** / *. Txt (temukan semua file teks),
ls -d *(D)
(tampilkan semua file termasuk yang dimulai dengan "."). Untuk mengetahui lebih lanjut, bukaman zshexpn
, bagian "GENENASI FILENAME".Ini berguna untuk mengingat perintah dalam riwayat Anda tanpa menjalankannya.
Ketik ".." bukan "cd ..", "/ usr / include" bukan "cd / usr / include".
Nice prompt.
Tampilkan statistik penggunaan CPU untuk perintah yang membutuhkan waktu lebih dari 10 detik
Beberapa perintah yang Anda gunakan secara luas di Ubuntu.
Daftar paket yang diurutkan berdasarkan ukurannya - berguna saat memutuskan paket mana yang menggunakan ruang disk Anda.
sumber
Saya akan merekomendasikan buku From bash to Z Shell . Ia memiliki semua saran yang Anda butuhkan untuk mengganti shell Anda. Ini menjelaskan perbedaan kedua shell dan membuatnya mudah untuk zsher baru.
sumber
Ini adalah .zshrc saya dan itu adalah hal yang paling penting! zsh memiliki banyak opsi yang dapat Anda gunakan, jadi lihatlah beberapa contoh di internet atau baca dokumentasi di beranda Zsh .
.Zshrc saya tidak mengandung hal-hal keren selain timestamp di sisi kanan baris perintah.
Btw, ingatlah untuk mencoba tab-compleation di mana saja beberapa contoh di sini:
akan menampilkan sesuatu seperti ini:
Dan jika Anda menggunakan ssh-key atau ssh-agent tanpa kata sandi, Anda mungkin menemukan manfaatnya untuk membuat file jarak jauh yang lengkap:
Setelah mendapatkan daftar, Anda dapat menekan tab lebih banyak untuk menelusuri berbagai kemungkinan yang berbeda.
Tetapi berhati-hatilah, cangkang ini akan membuat Anda malas dan membuat Anda merasa bahwa cangkang standar itu bodoh dan menyebalkan!
sumber
Beberapa gumpalan diperpanjang khusus yang berguna:
1-
rmdir *(/^F)
- hapus semua direktori tidak kosong di bawah direktori saat ini2-
grep traceback /srv/log/**/*(.m-2)
- cari regex ini dalam file yang dimodifikasi dalam dua hari terakhir3
chmod g+w **/*(U^I)
- membuat file yang dimiliki oleh saya dan tidak dapat ditulis kelompok menjadi ditulis kelompokYa, tentu saja Anda dapat menulis ini dengan
find
tetapi ini lebih mudah untuk lari. Itu memang memiliki dua kelemahan, agar adil, keduanya harus dilakukan dengan mereka semua diperluas ke baris perintah: jika cocok dengan ribuan file baris perintah akan menjadi terlalu lama dan ini akan gagal, dan kedua semua file ditemukan sebelum file mulai berjalan.(Anda akan perlu
setopt extendedglob
jika itu belum aktif)sumber
Saya tidak tahu banyak tentang bash, jadi saya tidak bisa mengimbangi. Beberapa cuplikan dari file konfigurasi zsh saya.
Beberapa konfigurasi
Masuk dalam prompt
Beberapa hotkey, masukkan beberapa teks di awal baris.
Fungsinya, saya simpan kemudian di ~ / .zsh / functions
Git_info_for_prompt
Beberapa opsi github
sumber
Saya di perjalanan yang sama :)
Sejauh ini saya telah menemukan bahwa masalahnya adalah memiliki file konfigurasi yang baik (.zshrc).
Ambillah yang ini sebagai contoh http://matt.blissett.me.uk/linux/zsh/zshrc , lihat komentar-komentarnya dan retas jalan Anda. Stackoverflow dan severphault dan tempat yang bagus untuk mencari juga.
Saya belum masuk ke http://dotfiles.org/.zshrc , tapi saya tidak punya banyak waktu untuk lepas :)
sumber
Pelajari tentang gumpalan globing yang diperluas dan rekursif di zsh.
Pelajari sedikit tentang zstyle dan bagaimana berbagai hal (terutama penyelesaian) memungkinkan Anda menyesuaikan konfigurasi menggunakan zstyle.
Lihatlah ke array asosiatif. Juga array standar (waspadalah terhadap perbedaan dari bash, menjadi lebih baik!)
Jika Anda menggunakan ekspresi reguler, lihat
=~
(yang dimiliki oleh bash) dan pertimbangkan:setopt rematch_pcre
Hindari menulis skrip yang bergantung pada lebih dari sedikit zsh's magic, karena walaupun sangat fantastis untuk digunakan, zsh dapat cenderung hanya menulis. Jika Anda menggunakan terlalu banyak, pikirkan kapan harus beralih ke bahasa seperti Python.
Zsh menggoda. Itu adalah sisi gelap. Selamat datang.
sumber
Manfaat besar - penyelesaian tab yang sangat baik dengan skrip penyelesaian pra-paket untuk banyak perintah. Berikut ini contoh yang menunjukkan output dari
apt-get<TAB>
:sumber
Saya sudah memberikan banyak pembicaraan dan mengubah beberapa orang menjadi zsh. Saya menyimpan repo github dari catatan saya (apa kelebihannya) bersama dengan starter dan salinan konfigurasi zsh saya sendiri di github di sini.
http://github.com/mitechie/zshrc
sumber
Sumber informasi hebat lainnya adalah halaman zsh lovers (berasal dari situs grml zsh ).
sumber