Terminal Productivity Tips — Terminal

Terminal Productivity Tips Setelah memahami dasar-dasar terminal, saatnya tingkatkan kecepatan dan efisiensi dengan shortcut dan tool produktivitas. Shortcut Ke

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

  1. Ctrl+R + fzf = history search terbaik
  2. !! dan !$ menghemat banyak ketikan ulang
  3. tmux wajib saat kerja di remote server
  4. alias untuk workflow yang sering diulang
  5. set -o vi jika nyaman dengan Vim — edit perintah dengan mode vi