50+ Perintah Tmux yang Sering Digunakan, Lengkap
TL;DR
Postingan ini sebagai catatan bagi saya yang terkadang lupa perintah tmux yang sering digunakan. Bookmark halaman ini untuk mengaksesnya kembali. Perintah tersebut adalah:
| Fungsi | Perintah / Shortcut | Lingkungan |
| Create session | tmux | Terminal |
| Create session (nama) | tmux new -s nama_sessionnya | Terminal |
| Detach session | Ctrl+b lalu d | Dalam tmux |
| Attach session | tmux attach -t nama_sessionnya | Terminal |
| List session | tmux ls | Terminal |
| Close session | tmux kill-session -t nama_sessionnya | Terminal |
| Scroll | Ctrl+b lalu [ (gunakan arah untuk pindah) | Dalam tmux |
| Pindah ke sesi lain | Ctrl+b lalu ( atau ) | Dalam tmux |
Masalah Terminal SSH
Di awal-awal saya menggunakan terminal SSH untuk konfigurasi server, deployment, atau kebutuhan lain, saya langsung saja menggunakannya. Tidak ada yang salah dengan cara tersebut. Namun akan menjadi ribet kalau terjadi hal yang tidak diinginkan, seperti:
- Terminal SSH tidak sengaja tertutup
- Koneksi internet tidak stabil
- Jaringan WiFi mati
- Laptop yang lupa di-charge lalu mati
- Dan masalah lainnya
Akibatnya, terminal SSH tertutup dan proses yang sedang berjalan bisa ikut terhenti, sehingga semuanya harus dimulai lagi dari awal.
Cara Resume Proses di Terminal SSH yang Tertutup
Lalu saya cari bagaimana cara untuk mengatasi masalah tersebut. Dari situ, saya menemukan tmux (Terminal Multiplexer). Dengan menggunakan tools ini, kita bisa mengatur agar setiap proses memiliki sesinya sendiri dan tidak menempel langsung kepada terminal SSH.
Jadi kalau misal terminal SSH tidak sengaja tertutup, kita tetap bisa membuka kembali sesi tersebut dan melanjutkan kembali proses yang sebelumnya berjalan.
tmux (Terminal Multiplexer)
tmux sebenarnya tidak hanya digunakan ketika menggunakan terminal SSH. Terminal lokal pun bisa menggunakannya. Tapi, tmux sangat berguna sekali ketika bekerja di server melalui SSH.
Beberapa fungsi utama tmux meliputi:
- Multiplexing: Membuat banyak jendela dari satu terminal fisik.
- Persistent Session: Menjalankan proses di background server (via SSH) tanpa khawatir sesi berakhir jika koneksi terputus.
- Manajemen Window dan Panel: Bisa split layar secara horizontal atau vertikal, sehingga bisa melihat beberapa proses sekaligus.
- Detachable dan Reattachable: Bisa detach (seperti minimize) sesi dan menyambungkannya kembali (reattach). Bahkan bisa menyambungkannya kembali dari perangkat yang berbeda.
Install tmux
| Distro / Sistem Operasi | Package Manager | Perintah Instalasi |
| Ubuntu / Debian / Mint / Kali | apt | sudo apt update && sudo apt install tmux |
| CentOS / RHEL / Fedora | dnf / yum | sudo dnf install tmux |
| Arch Linux / Manjaro | pacman | sudo pacman -S tmux |
| openSUSE | zypper | sudo zypper install tmux |
| Alpine Linux | apk | sudo apk add tmux |
| macOS | brew (Homebrew) | brew install tmux |
Validasi, pastikan tampil versi tmux yang digunakan:
tmux -V
Informasi lanjut tentang instalasi tmux: Install Tmux
Perintah tmux yang Sering Digunakan
| Fungsi | Perintah / Shortcut | Lingkungan |
| Sesi (Session) | ||
| Membuat sesi baru | tmux | Terminal |
| Membuat sesi dengan nama tertentu | tmux new -s [nama] | Terminal |
| Melihat daftar sesi | tmux ls | Terminal |
| Masuk kembali (Attach) ke sesi terakhir | tmux attach | Terminal |
| Masuk kembali ke sesi tertentu | tmux attach -t [nama] | Terminal |
| Menghapus sesi tertentu | tmux kill-session -t [nama] | Terminal |
| Menghentikan seluruh server tmux | tmux kill-server | Terminal |
| Keluar sesi tanpa menutup (Detach) | Ctrl+b lalu d | Dalam tmux |
| Jendela (Window) | ||
| Membuat jendela baru | Ctrl+b lalu c | Dalam tmux |
| Mengubah nama jendela | Ctrl+b lalu , | Dalam tmux |
| Pindah ke jendela berikutnya | Ctrl+b lalu n | Dalam tmux |
| Pindah ke jendela sebelumnya | Ctrl+b lalu p | Dalam tmux |
| Menampilkan daftar jendela (interaktif) | Ctrl+b lalu w | Dalam tmux |
| Panel (Pane) | ||
| Bagi layar vertikal (kiri-kanan) | Ctrl+b lalu % | Dalam tmux |
| Bagi layar horizontal (atas-bawah) | Ctrl+b lalu “ | Dalam tmux |
| Pindah ke panel berikutnya | Ctrl+b lalu o | Dalam tmux |
| Menutup panel aktif | Ctrl+b lalu x | Dalam tmux |
| Perbesar/Perkecil panel (Zoom) | Ctrl+b lalu z | Dalam tmux |
| Lain-lain | ||
| Masuk mode salin (Copy Mode) | Ctrl+b lalu [ | Dalam tmux |
| Tempel (Paste) hasil salinan | Ctrl+b lalu ] | Dalam tmux |
| Masuk ke baris perintah tmux | Ctrl+b lalu : | Dalam tmux |
Perintah Lengkap tmux
Sessions
| Fungsi | Perintah / Shortcut | Lingkungan |
| Masuk ke tmux (sesi baru default) | tmux | Terminal |
| Membuat sesi baru | tmux new | Terminal |
| Membuat sesi baru (perintah lengkap) | tmux new-session | Terminal |
| Membuat sesi baru bernama mysession | tmux new -s mysession | Terminal |
| Membuat atau masuk (attach) ke mysession jika sudah ada | tmux new-session -A -s mysession | Terminal |
| Menampilkan semua sesi yang berjalan | tmux ls atau tmux list-sessions | Terminal |
| Masuk kembali (attach) ke sesi terakhir | tmux a / at / attach | Terminal |
| Masuk kembali ke sesi bernama mysession | tmux a -t mysession | Terminal |
| Keluar dari sesi tanpa menutup (Detach) | Ctrl+b lalu d | Dalam tmux |
| Masuk dan paksa putus (detach) client lain | tmux attach -d | Terminal |
| Mengubah nama sesi | Ctrl+b lalu $ | Dalam tmux |
| Menghapus sesi aktif | tmux kill-session | Terminal |
| Menghapus sesi bernama mysession | tmux kill-session -t mysession | Terminal |
| Menghapus semua sesi kecuali yang aktif | tmux kill-session -a | Terminal |
| Menghapus semua sesi kecuali mysession | tmux kill-session -a -t mysession | Terminal |
| Preview sesi & jendela (daftar interaktif) | Ctrl+b lalu w | Dalam tmux |
| Pindah ke sesi sebelumnya | Ctrl+b lalu ( | Dalam tmux |
| Pindah ke sesi berikutnya | Ctrl+b lalu ) | Dalam tmux |
Windows
| Fungsi | Perintah / Shortcut | Lingkungan |
| Membuat sesi mysession dengan window mywindow | tmux new -s mysession -n mywindow | Terminal |
| Membuat window baru | Ctrl+b lalu c | Dalam tmux |
| Mengubah nama (Rename) window aktif | Ctrl+b lalu , | Dalam tmux |
| Menutup window aktif (dengan konfirmasi) | Ctrl+b lalu & | Dalam tmux |
| Menampilkan daftar window (interaktif) | Ctrl+b lalu w | Dalam tmux |
| Pindah ke window sebelumnya | Ctrl+b lalu p | Dalam tmux |
| Pindah ke window berikutnya | Ctrl+b lalu n | Dalam tmux |
| Pindah ke window berdasarkan nomor (0-9) | Ctrl+b lalu [0-9] | Dalam tmux |
| Kembali ke window yang diakses sebelumnya | Ctrl+b lalu l | Dalam tmux |
| Tukar window index 2 (src) dengan index 1 (dst) | tmux swap-window -s 2 -t 1 | Terminal/Command |
| Geser window aktif ke kiri 1 posisi | tmux swap-window -t -1 | Terminal/Command |
| Pindah window antar sesi (Contoh: foo:0 ke bar:9) | tmux movew -s foo:0 -t bar:9 | Terminal/Command |
| Pindah window antar index (Contoh: 0:0 ke 1:9) | tmux movew -s 0:0 -t 1:9 | Terminal/Command |
| Reposisi window dalam sesi yang sama | tmux move-window -s [src_win] -t [dst_win] | Terminal/Command |
| Merapikan nomor window (menghilangkan celah/gap) | tmux move-window -r atau tmux movew -r | Terminal/Command |
Panes
| Fungsi | Perintah / Shortcut | Lingkungan |
| Navigasi & Layout | ||
| Pindah ke panel yang terakhir aktif | Ctrl+b lalu ; | Dalam tmux |
| Pindah ke panel sesuai arah panah | Ctrl+b lalu ↑ ↓ ← → | Dalam tmux |
| Pindah ke panel berikutnya (berurutan) | Ctrl+b lalu o | Dalam tmux |
| Menampilkan nomor panel | Ctrl+b lalu q | Dalam tmux |
| Pindah ke panel berdasarkan nomor | Ctrl+b lalu q kemudian [nomor] | Dalam tmux |
| Ganti layout panel (berputar/cycle) | Ctrl+b lalu Space | Dalam tmux |
| Manipulasi Panel | ||
| Bagi layar vertikal (kiri-kanan) | Ctrl+b lalu % atau tmux split-window -h | Dalam/Terminal |
| Bagi layar horizontal (atas-bawah) | Ctrl+b lalu ” atau tmux split-window -v | Dalam/Terminal |
| Pindahkan posisi panel aktif ke kiri/atas | Ctrl+b lalu { | Dalam tmux |
| Pindahkan posisi panel aktif ke kanan/bawah | Ctrl+b lalu } | Dalam tmux |
| Zoom / Unzoom panel (fokus penuh) | Ctrl+b lalu z | Dalam tmux |
| Ubah panel aktif menjadi window baru | Ctrl+b lalu ! | Dalam tmux |
| Menutup panel aktif (dengan konfirmasi) | Ctrl+b lalu x | Dalam tmux |
| Manajemen Tingkat Lanjut | ||
| Gabungkan window 2 ke window 1 sebagai panel | tmux join-pane -s 2 -t 1 | Terminal/Command |
| Pindahkan pane 2.1 ke window 1 (setelah pane 0) | tmux join-pane -s 2.1 -t 1.0 | Terminal/Command |
| Sinkronisasi input ke semua panel (Toggle) | Ctrl+b lalu :setw synchronize-panes | Command Mode |
| Resize (Ubah Ukuran) | ||
| Resize tinggi (Up/Down) | Ctrl+b lalu :resize-pane -U atau -D [n] | Command Mode |
| Resize lebar (Left/Right) | Ctrl+b lalu :resize-pane -L atau -R [n] | Command Mode |
| Resize interaktif (tahan Ctrl) | Ctrl+b lalu Ctrl + ↑ ↓ ← → | Dalam tmux |
Copy Mode
| Fungsi | Perintah / Shortcut | Lingkungan |
| Navigasi Dasar | ||
| Navigasi kursor (Atas, Bawah, Kiri, Kanan) | Tombol Panah (↑ ↓ ← →) | Copy Mode |
| Navigasi kursor gaya Vim | h, j, k, l | Copy Mode |
| Scroll satu halaman ke atas | Page Up | Copy Mode |
| Scroll satu halaman ke bawah | Page Down | Copy Mode |
| Navigasi Cepat | ||
| Lompat ke baris paling atas | g | Copy Mode |
| Lompat ke baris paling bawah | G | Copy Mode |
| Pindah ke awal baris | 0 (nol) | Copy Mode |
| Pindah ke akhir baris | $ | Copy Mode |
| Pencarian | ||
| Mencari kata ke arah bawah | / [kata kunci] Enter | Copy Mode |
| Mencari kata ke arah atas | ? [kata kunci] Enter | Copy Mode |
| Pindah ke hasil pencarian berikutnya | n | Copy Mode |
| Pindah ke hasil pencarian sebelumnya | N | Copy Mode |
| Keluar | ||
| Keluar dari Copy Mode | q atau Enter (jika tidak ada seleksi) | Copy Mode |
Misc
| Fungsi | Perintah / Shortcut | Lingkungan |
| Command Mode | ||
| Masuk ke baris perintah tmux | Ctrl+b lalu : | Dalam tmux |
| Konfigurasi (Sesi) | ||
| Mengatur opsi untuk semua sesi | set -g [OPTION] [VALUE] | Command Mode |
| Contoh: Mengaktifkan mode mouse | set -g mouse on | Command Mode |
| Contoh: Mengubah Prefix ke Ctrl+a | set -g prefix C-a | Command Mode |
| Konfigurasi (Window) | ||
| Mengatur opsi untuk semua jendela | setw -g [OPTION] [VALUE] | Command Mode |
| Contoh: Mengaktifkan mode Vi | setw -g mode-keys vi | Command Mode |
| Contoh: Melarang ganti nama otomatis | setw -g allow-rename off | Command Mode |
| Informasi & Bantuan | ||
| Menampilkan daftar shortcut lengkap | Ctrl+b lalu ? | Dalam tmux |
| Menampilkan waktu/jam di panel | Ctrl+b lalu t | Dalam tmux |
| Memperbarui konfigurasi (Reload file) | tmux source-file ~/.tmux.conf | Terminal |
Help
| Fungsi | Perintah / Shortcut | Lingkungan |
| Command Mode | ||
| Masuk ke baris perintah tmux | Ctrl+b lalu : | Dalam tmux |
| Konfigurasi (Sesi) | ||
| Mengatur opsi untuk semua sesi | set -g [OPTION] [VALUE] | Command Mode |
| Contoh: Mengaktifkan mode mouse | set -g mouse on | Command Mode |
| Contoh: Mengubah Prefix ke Ctrl+a | set -g prefix C-a | Command Mode |
| Konfigurasi (Window) | ||
| Mengatur opsi untuk semua jendela | setw -g [OPTION] [VALUE] | Command Mode |
| Contoh: Mengaktifkan mode Vi | setw -g mode-keys vi | Command Mode |
| Contoh: Melarang ganti nama otomatis | setw -g allow-rename off | Command Mode |
| Informasi & Bantuan | ||
| Menampilkan daftar shortcut lengkap | Ctrl+b lalu ? | Dalam tmux |
| Menampilkan waktu/jam di panel | Ctrl+b lalu t | Dalam tmux |
| Memperbarui konfigurasi (Reload file) | tmux source-file ~/.tmux.conf | Terminal |
More information
Informasi selengkapnya tentang tmux bisa dibaca di: tmux Wiki
