Terminal Productivity Tips
Setelah memahami dasar-dasar terminal, saatnya tingkatkan kecepatan dan efisiensi dengan shortcut dan tool produktivitas.
Shortcut Keyboard Esensial
Navigasi Kursor
| Shortcut | Fungsi |
|---|---|
Ctrl+A |
Pindah ke awal baris |
Ctrl+E |
Pindah ke akhir baris |
Ctrl+← / Alt+B |
Pindah satu kata ke kiri |
Ctrl+→ / Alt+F |
Pindah satu kata ke kanan |
Ctrl+U |
Hapus dari kursor ke awal baris |
Ctrl+K |
Hapus dari kursor ke akhir baris |
Ctrl+W |
Hapus satu kata ke kiri |
Alt+D |
Hapus satu kata ke kanan |
History & Pencarian
| Shortcut | Fungsi |
|---|---|
↑ / ↓ |
Navigasi history |
Ctrl+R |
Cari history (reverse search) — ketik lalu Enter |
Ctrl+G |
Keluar dari history search |
!! |
Ulangi perintah terakhir |
!$ |
Argumen terakhir dari perintah sebelumnya |
!^ |
Argumen pertama dari perintah sebelumnya |
!git |
Ulangi perintah terakhir yang dimulai dengan "git" |
# Contoh penggunaan history
ls /var/log/nginx
cd !$ # = cd /var/log/nginx
sudo !! # ulangi perintah sebelumnya dengan sudo
# Berguna saat lupa sudo
mkdir -p /tmp/test/subdir
cd !$ # = cd /tmp/test/subdir
Kontrol Proses
| Shortcut | Fungsi |
|---|---|
Ctrl+C |
Hentikan proses (SIGINT) |
Ctrl+Z |
Pause proses (kirim ke background) |
Ctrl+D |
EOF / keluar dari session |
Ctrl+L |
Bersihkan layar |
Ctrl+S |
Pause output (scroll lock) |
Ctrl+Q |
Lanjutkan output yang di-pause |
Perintah Efisiensi
# Jalankan perintah di background
npm start &
# fg = bawa kembali ke foreground
fg
# jobs = lihat proses background
jobs
# Ulangi perintah setiap N detik
watch -n 2 df -h
# Hitung waktu eksekusi perintah
time npm run build
# Buka editor untuk menulis perintah panjang
ctrl+x ctrl+e # buka $EDITOR untuk edit perintah
# Perintah terakhir yang berhasil (exit code 0)
echo $? # 0 = sukses, non-0 = error
tmux — Terminal Multiplexer
tmux memungkinkan multiple terminal dalam satu window:
# Install
brew install tmux
# Mulai session baru
tmux new -s mysession
# Shortcut tmux (prefix = Ctrl+B)
Ctrl+B c # buat window baru
Ctrl+B n # window berikutnya
Ctrl+B p # window sebelumnya
Ctrl+B % # split vertikal
Ctrl+B " # split horizontal
Ctrl+B d # detach (session tetap jalan)
# Attach kembali ke session
tmux attach -t mysession
tmux ls # lihat semua session
fzf — Fuzzy Finder
fzf membuat banyak hal jauh lebih cepat:
# Install
brew install fzf
# Cari file secara fuzzy
fzf
# Integrasi dengan Ctrl+R (history search fuzzy)
# Otomatis setelah: $(brew --prefix)/opt/fzf/install
# Cari dan buka file dengan vim
vim $(fzf)
# cd ke folder yang dipilih
cd $(find . -type d | fzf)
Shell Completion
Tab completion bukan hanya untuk nama file — shell modern bisa auto-complete flag, subcommand, branch git, bahkan nama container Docker.
Built-in tab completion (bawaan bash/zsh):
ls Doc<Tab> # → Documents/
git che<Tab> # → git checkout (bash-completion harus aktif)
cd ~/proj<Tab> # → ~/projects/
bash-completion package — memperluas tab completion untuk ratusan program:
# macOS
brew install bash-completion
# Ubuntu/Debian
sudo apt install bash-completion
# Aktifkan di ~/.bashrc
[[ -r "/etc/bash_completion" ]] && . "/etc/bash_completion"
Setelah aktif: git <Tab> muncul subcommand, docker run --<Tab> muncul semua flag, kubectl get p<Tab> completes pods.
Zsh dengan compinit:
Zsh punya sistem completion yang lebih powerful. Aktifkan di ~/.zshrc:
autoload -Uz compinit
compinit
# Case-insensitive completion
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}'
# Menu-style (pakai arrow keys)
zstyle ':completion:*' menu select
oh-my-zsh & plugin system:
Framework zsh paling populer — satu perintah install banyak completion + theme:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# Aktifkan plugin di ~/.zshrc
plugins=(git docker kubectl npm yarn)
Plugin menyuntikkan completion, alias, dan helper function. Contoh: plugin git auto-install shortcut seperti gst (git status), gco (git checkout).
fzf completion — fuzzy tab completion:
# Install
brew install fzf
$(brew --prefix)/opt/fzf/install
# Shortcut yang muncul setelah install:
Ctrl+T # Fuzzy-pick file dari current dir
Ctrl+R # Fuzzy-search command history
Alt+C # Fuzzy-cd ke subdirektori
# Fuzzy completion (diakhiri **)
vim **<Tab> # Pop up fuzzy picker untuk nama file
ssh **<Tab> # Fuzzy pilih dari known_hosts
Custom completion via complete:
Bisa buat completion sendiri untuk script pribadi:
# Dalam ~/.bashrc
_mydeploy_completions() {
COMPREPLY=($(compgen -W "staging production rollback" "${COMP_WORDS[1]}"))
}
complete -F _mydeploy_completions mydeploy
# Sekarang: mydeploy <Tab> → staging production rollback
Untuk program complex, biasanya author menyediakan completion file (_program di zsh, program-completion.bash di bash) yang tinggal di-source.
Tool Modern Pengganti Klasik
| Classic | Modern | Install |
|---|---|---|
ls |
eza / lsd |
brew install eza |
cat |
bat |
brew install bat |
grep |
ripgrep (rg) |
brew install ripgrep |
find |
fd |
brew install fd |
top |
htop / btop |
brew install htop |
du |
dust |
brew install dust |
# bat — cat dengan syntax highlighting
bat README.md
bat app.js --language=javascript
# eza — ls modern dengan icons
eza -la --icons
eza --tree --level=2
# ripgrep — grep super cepat
rg "TODO" --type js
rg "function" src/ -l # hanya nama file
Tips Pro
Ctrl+R+ fzf = history search terbaik!!dan!$menghemat banyak ketikan ulangtmuxwajib saat kerja di remote serveraliasuntuk workflow yang sering diulangset -o vijika nyaman dengan Vim — edit perintah dengan mode vi