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
atauyaml
di baris perintah, zsh membuka file itu menggunakan vim:$ playbook.yml
# Membuka file playbook.yml menggunakan vimAlias 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 UnduhanSelanjutnya, 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
/tmpUntuk 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 ~/DocumentsBeralih ke direktori mana pun dalam daftar ini dengan mengetikkan
~#
di mana # adalah nomor direktori dalam daftar. Misalnya:$ pwd
/home/rgerardi
$ ~4
$ pwd
/usr/localGabungkan 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
/tmpTerakhir, 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
compinitSistem penyelesaian Zsh cerdas. Ini mencoba menyarankan hanya item yang dapat digunakan dalam konteks tertentu—misalnya, jika Anda mengetik
cd
danTAB
, zsh hanya menyarankan nama direktori yang diketahuicd
tidak bekerja dengan apa pun.Sebaliknya, ini menyarankan nama pengguna saat menjalankan perintah terkait pengguna atau nama host saat menggunakan
ssh
atauping
, 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 file2Berikut adalah contoh yang lebih canggih, menggunakan
git
. Dalam contoh ini, saat mengetikTAB
, 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.mdItu 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, menekann
membawa baris yang cocok berikutnya, danN
yang sebelumnya. Perintah vi yang paling umum berfungsi setelah menekanESC
seperti0
untuk melompat ke awal baris,$
untuk melompat ke akhir,i
untuk menyisipkan,a
untuk menambahkan, dll. Bahkan perintah yang diikuti oleh gerakan bekerja, seperticw
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; danr <WORD>
, yang mengeksekusi perintah terakhir yang berisi stringWORD
.Terakhir, ketik poni ganda (
!!
) mengembalikan perintah terakhir di mana saja di baris. Ini berguna, misalnya, jika Anda lupa mengetikkansudo
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.logFitur-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.
Apa yang dapat dilakukan shell dotfile untuk Anda 8 perintah Linux untuk manajemen proses yang efektifLinux