Terminal Productivity Tips — Terminal

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

Shell (bash atau zsh) diam-diam menyimpan semua perintah yang pernah kamu ketik, dan punya tombol pintas untuk mengedit baris, mencari perintah lama, dan mengendalikan program yang sedang jalan. Mirip remote TV: buat pindah ke channel 37 kamu cukup tekan 3 dan 7, gak perlu menekan "channel naik" 36 kali. Di terminal, buat pindah ke awal baris kamu cukup tekan Ctrl+A, gak perlu menahan panah kiri.

🧪 Tebakan cepat: kursor ada di akhir git commit -m "fix typo", lalu kamu tekan Ctrl+W. Apa yang tersisa? Tebak dulu, jawabannya ada di bagian "Mengedit baris tanpa backspace".

Mengedit baris tanpa backspace

Tombol Fungsinya
Ctrl+A pindah ke awal baris
Ctrl+E pindah ke akhir baris
Ctrl+W hapus satu kata di kiri kursor, sampai spasi sebelumnya
Ctrl+U hapus dari kursor sampai awal baris
Ctrl+K hapus dari kursor sampai akhir baris
Ctrl+Y tempel lagi teks yang terakhir dihapus
Tab lengkapi nama file atau perintah

Teks yang dihapus dengan Ctrl+W, Ctrl+U, atau Ctrl+K gak hilang: shell menyimpannya, dan Ctrl+Y menempelkannya lagi. Ini yang terjadi di Lab, dengan █ sebagai kursor:

Tombol Baris sesudahnya
(awal) git commit -m "fix typo"█
Ctrl+W git commit -m "fix █
Ctrl+Y git commit -m "fix typo"█
Ctrl+A █git commit -m "fix typo"
Ctrl+K █ (kosong, semuanya tersimpan)
Ctrl+Y git commit -m "fix typo"█

Ctrl+W berhenti di spasi, bukan di tanda kutip, jadi yang terhapus cuma typo". Itu jawaban tebakannya. Trik Ctrl+U lalu Ctrl+Y berguna saat kamu sudah mengetik perintah panjang lalu ingat harus menjalankan hal lain dulu: kosongkan baris, jalankan yang lain, lalu tempel lagi.

History: perintah lama gak perlu diketik ulang

budi@laptop:~/toko-online$ mkdir /opt/app
mkdir: cannot create directory ‘/opt/app’: Permission denied
budi@laptop:~/toko-online$ sudo !!
sudo mkdir /opt/app
[sudo] password for budi:
budi@laptop:~/toko-online$ cd !$
cd /opt/app
budi@laptop:/opt/app$

Mengendalikan program yang sedang jalan

Tombol Fungsinya
Ctrl+C hentikan program yang sedang jalan (sinyal SIGINT)
Ctrl+Z hentikan sementara (suspend) dan kembali ke prompt; lanjutkan dengan fg
Ctrl+L bersihkan layar terminal, baris yang sedang diketik tetap ada
Ctrl+D di baris kosong: keluar dari shell
budi@laptop:~$ ping belajarweb.dev
PING belajarweb.dev (203.0.113.10) 56(84) bytes of data.
64 bytes from 203.0.113.10: icmp_seq=1 ttl=54 time=12.4 ms
^Z
[1]+  Stopped                 ping belajarweb.dev
budi@laptop:~$ fg
ping belajarweb.dev
64 bytes from 203.0.113.10: icmp_seq=2 ttl=54 time=11.9 ms

Program yang di-Ctrl+Z belum mati: dia diam di belakang sebagai job nomor 1, sampai kamu fg (lanjut di depan) atau bg (lanjut di background), seperti di pelajaran Process Management.

tmux sekilas: sesi yang punya nama

tmux menjalankan terminal di dalam sesi yang tetap hidup di server walaupun koneksi SSH-mu putus. Empat perintah sesi yang paling dasar:

tmux new-session -s main      # bikin sesi bernama main (singkatnya: tmux new -s main)
tmux list-sessions            # daftar sesi yang ada (singkatnya: tmux ls)
tmux attach-session -t main   # masuk lagi ke sesi main (singkatnya: tmux attach -t main)
tmux kill-session -t main     # tutup sesi main

Di latihan: kamus shortcut dan parser perintah tmux

Latihannya ditulis dalam JavaScript. describeShortcut adalah kamus: object yang memetakan tombol ke deskripsinya, dengan cadangan Shortcut tidak dikenal:

Tombol Deskripsi di latihan
Ctrl+R Reverse search history
Ctrl+C Batalkan proses yang sedang berjalan
Ctrl+Z Suspend proses ke background
Ctrl+L Bersihkan layar terminal
Ctrl+A Pindah ke awal baris
Ctrl+E Pindah ke akhir baris
!! Ulangi perintah terakhir
const tokens = "tmux attach-session -t main".split(" ");
console.log(tokens);           // [ 'tmux', 'attach-session', '-t', 'main' ]
console.log(tokens[1]);        // attach-session
console.log(tokens.indexOf("-t")); // 2, jadi namanya ada di tokens[3]

⚠️ Jebakan yang sering ketemu

TL;DR: Ctrl+A dan Ctrl+E loncat ke awal dan akhir baris. Ctrl+W, Ctrl+U, Ctrl+K menghapus kata, ke awal, dan ke akhir baris, dan Ctrl+Y menempelkan yang terakhir dihapus. Ctrl+R mencari mundur di history, !! mengulang perintah terakhir (sudo !! untuk mengulang dengan sudo), dan !$ adalah kata terakhir perintah sebelumnya. Ctrl+C menghentikan program, Ctrl+Z menghentikan sementara (lanjutkan dengan fg), Ctrl+L membersihkan layar. tmux: new-session -s nama, list-sessions, attach-session -t nama, kill-session -t nama, dan sesinya tetap hidup walau SSH putus.

Yang akan kamu pelajari