GNU/Linux >> Belajar Linux >  >> Linux

5 tips untuk meningkatkan produktivitas dengan zsh

Shell Z yang dikenal sebagai zsh adalah shell untuk sistem operasi mirip Linux/Unix. Ini memiliki kesamaan dengan shell lain di sh (Bourne shell), seperti bash dan ksh , tetapi menyediakan banyak fitur lanjutan dan opsi pengeditan baris perintah yang canggih, seperti penyelesaian Tab yang disempurnakan.

Tidak mungkin untuk mencakup semua opsi zsh di sini; ada ratusan halaman yang mendokumentasikan banyak fiturnya. Dalam artikel ini, saya akan menyajikan lima tips untuk membuat Anda lebih produktif menggunakan baris perintah dengan zsh.

1. Tema dan plugin

Selama bertahun-tahun, komunitas open source telah mengembangkan banyak tema dan plugin untuk zsh. Tema adalah konfigurasi prompt yang telah ditentukan sebelumnya, sedangkan plugin adalah sekumpulan alias dan fungsi yang berguna yang memudahkan penggunaan perintah atau bahasa pemrograman tertentu.

Cara tercepat untuk mulai menggunakan tema dan plugin adalah dengan menggunakan kerangka konfigurasi zsh. Ada banyak tersedia, tetapi yang paling populer adalah Oh My Zsh. Secara default, ini mengaktifkan beberapa opsi konfigurasi zsh yang masuk akal dan dilengkapi dengan ratusan tema dan plugin.

Sebuah tema membuat Anda lebih produktif karena menambahkan informasi yang berguna ke prompt Anda, seperti status repositori Git Anda atau virtualenv Python yang digunakan. Memiliki informasi ini sekilas menyelamatkan Anda dari mengetik perintah yang setara untuk mendapatkannya, dan itu tampilan yang keren. Berikut adalah contoh Powerlevel9k, tema pilihan saya:

Selain tema, Oh My Zsh menggabungkan banyak plugin yang berguna untuk zsh. Misalnya, mengaktifkan plugin Git memberi Anda akses ke sejumlah alias yang berguna, seperti:

$ alias | grep -i git | urutkan -R | head -10
g=git
ga='git add'
gapa='git add --patch'
gap='git apply'
gdt=' git diff-tree --no-commit-id --name-only -r'
gau='git add --update'
gstp='git stash pop'
gbda=' git branch --no-color --merged | perintah grep -vE "^(\*|\s*(master|develop|dev)\s*$)" | perintah xargs -n 1 git branch -d'
gcs='git commit -S'
glg='git log --stat'

Ada plugin yang tersedia untuk banyak bahasa pemrograman, sistem pengemasan, dan alat lain yang biasa Anda gunakan di baris perintah. Berikut daftar plugin yang saya gunakan di workstation Fedora saya:

git golang fedora docker oc sudo vi-mode virtualenvwrapper 

2. Alias ​​pintar

Alias ​​​​sangat berguna di zsh. Mendefinisikan alias untuk perintah yang paling sering digunakan akan menghemat banyak pengetikan. Oh My Zsh mengonfigurasi beberapa alias yang berguna secara default, termasuk alias untuk menavigasi direktori dan penggantian perintah umum dengan opsi tambahan seperti:

ls='ls --color=tty'
grep='grep  --color=auto --exclude-dir={.bzr,CVS,.git,.hg,.svn}'

Selain alias perintah, zsh mengaktifkan dua jenis alias tambahan yang berguna:alias akhiran dan alias global .

Alias ​​sufiks memungkinkan Anda untuk membuka file yang Anda ketik di baris perintah menggunakan program yang ditentukan berdasarkan ekstensi file. Misalnya, untuk membuka file YAML menggunakan vim, tentukan alias berikut:

alias -s {yml,yaml}=vim 

Sekarang jika Anda mengetikkan nama file yang diakhiri dengan yml atau yaml di baris perintah, zsh membuka file itu menggunakan vim:

$ playbook.yml
# Membuka file playbook.yml menggunakan vim

Alias ​​global memungkinkan Anda membuat alias yang diperluas di mana saja di baris perintah, bukan hanya di awal. Ini sangat berguna untuk mengganti nama file umum atau perintah yang disalurkan. Misalnya:

alias -g G='| grep -i' 

Untuk menggunakan alias ini, ketik G di mana pun Anda mengetikkan perintah pipa:

$ ls -l G lakukan
drwxr-xr-x. 5 rgerardi rgerardi 4096 Agustus  7 14:08 Dokumen
drwxr-xr-x. 6 rgerardi rgerardi 4096 24 Agustus 14:51 Unduhan

Selanjutnya, mari kita lihat bagaimana zsh membantu menavigasi sistem file.

3. Navigasi direktori yang mudah

Saat Anda menggunakan baris perintah, menavigasi melintasi direktori yang berbeda adalah salah satu tugas yang paling umum. Zsh membuat ini lebih mudah dengan menyediakan beberapa fitur navigasi direktori yang berguna. Fitur-fitur ini diaktifkan dengan Oh My Zsh, tetapi Anda dapat mengaktifkannya dengan menggunakan perintah ini:

setopt  autocd autopushd \ pushdignoredups 

Dengan menyetel opsi ini, Anda tidak perlu mengetik cd untuk mengubah direktori. Cukup ketik nama direktori, dan zsh beralih ke sana:

$ pwd
/home/rgerardi
$ /tmp
$ pwd
/tmp

Untuk mundur, ketik - :

Zsh menyimpan riwayat direktori yang Anda kunjungi sehingga Anda dapat dengan cepat beralih ke direktori mana pun. Untuk melihat daftar, ketik dirs -v :

$ dirs -v
0       ~
1       /var/log
2       /var/opt
3       /usr/bin
4       /usr/local
5       /usr/lib
6       /tmp
7       ~/Projects/Opensource.com/zsh-5tips
8       ~/Projects
9       ~/Projects/ansible
10      ~/Documents

Beralih ke direktori mana pun dalam daftar ini dengan mengetikkan ~# di mana # adalah nomor direktori dalam daftar. Misalnya:

$ pwd
/home/rgerardi
$ ~4
$ pwd
/usr/local

Gabungkan ini dengan alias agar lebih mudah dinavigasi:

d='dirs -v | head -10'
1='cd -'
2='cd -2'
3='cd -3'
4='cd -4'
5='cd -5'
6='cd -6'
7='cd -7'
8='cd -8'
9='cd - 9'

Sekarang Anda dapat mengetik d untuk melihat sepuluh item pertama dalam daftar dan nomor untuk beralih ke sana:

$ d
0       /usr/local
1       ~
2       /var/log
3       /var/opt
4       /usr/bin
5       /usr/lib
6       /tmp
7       ~/Projects/Opensource.com/zsh-5tips
8       ~/Projects
9       ~/Projects/ansible
$ pwd
/usr/local
$ 6
/tmp
$ pwd
/tmp

Terakhir, zsh secara otomatis memperluas nama direktori dengan penyelesaian Tab. Ketik huruf pertama dari nama direktori dan TAB untuk menggunakannya:

$ pwd
/home/rgerardi
$ p/o/z (TAB)
$ Projects/Opensource.com/zsh-5tips/

Ini hanyalah salah satu fitur yang diaktifkan oleh sistem penyelesaian Tab yang kuat dari zsh. Mari kita lihat lagi.

4. Penyelesaian Tab lanjutan

Sistem penyelesaian Zsh yang kuat adalah salah satu keunggulannya. Untuk penyederhanaan, saya menyebutnya penyelesaian Tab, tetapi di bawah tenda, lebih dari satu hal yang terjadi. Biasanya ada ekspansi dan penyelesaian perintah. Saya akan membahasnya bersama di sini. Untuk detailnya, lihat Panduan Pengguna ini.

Penyelesaian perintah diaktifkan secara default dengan Oh My Zsh. Untuk mengaktifkannya, tambahkan baris berikut ke .zshrc . Anda berkas:

autoload -U compinit
compinit

Sistem penyelesaian Zsh cerdas. Ini mencoba menyarankan hanya item yang dapat digunakan dalam konteks tertentu—misalnya, jika Anda mengetik cd dan TAB , zsh hanya menyarankan nama direktori yang diketahui cd tidak bekerja dengan apa pun.

Sebaliknya, ini menyarankan nama pengguna saat menjalankan perintah terkait pengguna atau nama host saat menggunakan ssh atau ping , misalnya.

Ini memiliki perpustakaan penyelesaian yang luas dan memahami banyak perintah yang berbeda. Misalnya, jika Anda menggunakan tar perintah, Anda dapat menekan Tab untuk melihat daftar file yang tersedia dalam paket sebagai kandidat untuk ekstraksi:

$ tar -xzvf test1.tar.gz test1/file1 (TAB)
file1 file2

Berikut adalah contoh yang lebih canggih, menggunakan git . Dalam contoh ini, saat mengetik TAB , zsh secara otomatis melengkapi nama satu-satunya file di repositori yang dapat dipentaskan:

$ ls
asli  plan.txt  zsh-5tips.md  zsh_theme_small.png
$ git status
Pada master cabang
Cabang Anda diperbarui dengan 'origin/master '.

Perubahan tidak dipentaskan untuk komit:
  (gunakan "git add ..." untuk memperbarui apa yang akan dikomit)
  (gunakan "git checkout -- ..." untuk membuang perubahan di direktori kerja)

        dimodifikasi:  zsh-5tips.md

tidak ada perubahan yang ditambahkan ke komit (gunakan "git add" dan/ atau "git commit -a")
$ git add (TAB)
$ git add zsh-5tips.md

Itu juga memahami opsi baris perintah dan hanya menyarankan yang relevan dengan subperintah yang dipilih:

$ git commit - (TAB)
--all                  -a       -- tahap semua jalur yang diubah dan dihapus
--allow-empty                   -- izinkan merekam commit kosong
--allow -empty-message           -- izinkan merekam komit dengan pesan kosong
--amend                         -- ubah ujung cabang saat ini
--author                 < - digunakan di atas komit>--branch                        -- show branch information
--cleanup                       -- tentukan bagaimana pesan commit harus dibersihkan
--date                     digunakan penulis dry-run                       -- hanya menampilkan daftar jalur yang harus dilakukan atau tidak, dan semua yang tidak terlacak
--edit                 -e       -- edit pesan komit sebelum melakukan
--file      baca pesan komit dari file yang diberikan
--gpg-sign             -S       -- GPG-tandatangani komit--include              -i       -- perbarui file yang diberikan dan komit seluruh indeks
--interactive                   -- secara interaktif memperbarui jalur dalam file indeks
--message           sebagai pesan komit
... TERPUTUS ...

Setelah mengetik TAB , Anda dapat menggunakan tombol panah untuk menavigasi daftar opsi dan memilih yang Anda butuhkan. Sekarang Anda tidak perlu mengingat semua opsi Git tersebut.

Ada banyak pilihan yang tersedia. Cara terbaik untuk menemukan apa yang paling membantu Anda adalah dengan menggunakannya.

5. Pengeditan dan riwayat baris perintah

Kemampuan pengeditan baris perintah Zsh juga berguna. Secara default, ini mengemulasi emacs. Jika, seperti saya, Anda lebih suka vi/vim, aktifkan vi binding dengan perintah berikut:

$ bindkey -v 

Jika Anda menggunakan Oh My Zsh, vi-mode plugin mengaktifkan binding tambahan dan indikator mode pada prompt Anda—sangat berguna.

Setelah mengaktifkan vi binding, Anda dapat mengedit baris perintah menggunakan perintah vi. Misalnya, tekan ESC+/ untuk mencari riwayat baris perintah. Saat mencari, menekan n membawa baris yang cocok berikutnya, dan N yang sebelumnya. Perintah vi yang paling umum berfungsi setelah menekan ESC seperti 0 untuk melompat ke awal baris, $ untuk melompat ke akhir, i untuk menyisipkan, a untuk menambahkan, dll. Bahkan perintah yang diikuti oleh gerakan bekerja, seperti cw untuk mengubah sebuah kata.

Selain pengeditan baris perintah, zsh menyediakan beberapa fitur riwayat baris perintah yang berguna jika Anda ingin memperbaiki atau menjalankan kembali perintah yang digunakan sebelumnya. Misalnya, jika Anda melakukan kesalahan, ketikkan fc membawa perintah terakhir di editor favorit Anda untuk memperbaikinya. Ini menghormati $EDITOR variabel dan secara default menggunakan vi.

Perintah lain yang berguna adalah r , yang menjalankan kembali perintah terakhir; dan r <WORD> , yang mengeksekusi perintah terakhir yang berisi string WORD .

Terakhir, ketik poni ganda (!! ) mengembalikan perintah terakhir di mana saja di baris. Ini berguna, misalnya, jika Anda lupa mengetikkan sudo untuk menjalankan perintah yang memerlukan hak istimewa yang lebih tinggi:

$ less /var/log/dnf.log
/var/log/dnf.log:Izin ditolak
$ sudo !!
$ sudo less /var/log/dnf.log

Fitur-fitur ini memudahkan untuk menemukan dan menggunakan kembali perintah yang diketik sebelumnya.

Ke mana harus pergi dari sini?

Ini hanyalah beberapa fitur zsh yang dapat membuat Anda lebih produktif; ada banyak lagi. Untuk informasi tambahan, lihat sumber daya berikut:

Pengantar Shell Z

Panduan Pengguna untuk ZSH

Wiki Archlinux

zsh-pecinta

Apakah Anda memiliki kiat produktivitas zsh untuk dibagikan? Saya akan senang mendengarnya di komentar di bawah.


Linux
  1. Tingkatkan produktivitas Anda dengan desktop Linux yang ringan ini

  2. Memulai dengan Zsh

  3. Perintah JQ di Linux dengan Contoh

  1. Perintah Tee Linux dengan Contoh

  2. 10 Tip &Trik Menakjubkan untuk Bekerja dengan Linux

  3. Kiat Baris Perintah Linux untuk Meningkatkan Produktivitas

  1. Tingkatkan produktivitas Anda dengan alat keyboard Linux ini

  2. Kiat untuk membuat daftar file dengan ls di baris perintah Linux

  3. Perintah Nohup dengan Contoh