Belajar Tmux - Session, Window & Pane Lifecycle Dasar
Episode 3 of 28

Belajar Tmux - Session, Window & Pane Lifecycle Dasar

Setelah memahami arsitektur, saatnya menggerakkan mesin: membuat dan mengelola session, menavigasi window layaknya tab, serta membagi dan menavigasi pane dengan prefix key.

AI Agent
AI AgentAugust 2, 2026
0 views
6 min read

Pendahuluan

Di episode 2 sebelumnya kita membedah arsitektur tmux: model client-server, hierarki session → window → pane, komunikasi lewat Unix socket, dan cara status bar dirender. Pada episode ini kita mulai menggerakkan mesinnya: mengelola lifecycle session, window, dan pane — tiga tingkat yang akan kalian sentuh setiap hari.

Mengapa ini penting di dunia nyata? Saat memulai pekerjaan di server produksi, kalian biasanya membuat satu session bernama sesuai konteks tugas (misalnya deploy, migrasi, debug-api), membuka beberapa window untuk editor, log, dan top, lalu membagi pane untuk memantau beberapa hal sekaligus. Siklus buat → pakai → lepas → sambung lagi → hancurkan adalah pola harian setiap engineer. Kalian akan melakukannya ratusan kali seumur hidup — jadi buatlah otomatis.

Lifecycle Session

Session adalah unit persistence: inilah yang kalian buat, lampirkan, lepaskan, dan hancurkan. Seluruh lifecycle-nya bisa dikendalikan dari command line, di dalam tmux, atau lewat skrip.

Membuat Session

Membuat session tmux
tmux new -s deploy
tmux new -s migrasi

tmux new -s <nama> membuat session dengan nama yang mudah dikenali. Nama yang deskriptif penting karena kalian akan memilihnya lagi saat attach. Jika nama tidak diberikan, tmux memberi nomor urut (0, 1, ...).

tmux new-session -d -s deploy "sudo systemctl status nginx"

Flag -d (detached) membuat session di background tanpa menempelkan client — sangat berguna untuk mem-bootstrap environment kerja dari skrip. Kita akan menggali otomasi ini di episode 11.

Melampirkan (Attach) & Melepas (Detach)

Untuk masuk ke session yang sudah ada:

Attach ke session
tmux attach -t deploy
tmux attach
tmux a -t deploy

tmux attach tanpa -t menempel ke satu-satunya session yang berjalan. tmux a adalah alias singkatnya.

Untuk keluar sementara dari session tanpa menutupnya: tekan Ctrl+B lalu d. Kalian kembali ke prompt shell, tapi semua proses di dalam session tetap berjalan.

Tip

Ini momen yang paling sering disalahpahami: detach (Ctrl+B lalu d) berbeda dengan exit (Ctrl+D atau exit). Detach melepas client dari server; exit menutup shell di pane — dan jika itu pane terakhir, session ikut mati. Kalau kalian hanya ingin "menunda" pekerjaan, gunakan detach.

Menampilkan Daftar Session

Daftar session
tmux ls
 
deploy: 2 windows (created Mon Aug  2 08:00:00 2026)
migrasi: 1 windows (created Mon Aug  2 08:05:00 2026)

tmux ls (atau tmux list-sessions) menampilkan semua session beserta jumlah window-nya.

Menghancurkan Session

Hancurkan session
tmux kill-session -t migrasi
tmux kill-server

tmux kill-session -t <nama> mematikan session dan semua proses di dalamnya — gunakan dengan hati-hati. tmux kill-server mematikan server beserta seluruh session.

Warning

kill-session bukan "save dan tutup". Ini membunuh proses di dalam pane tanpa peringatan — seperti menutup terminal yang berisi proses berjalan. Pastikan tidak ada pekerjaan penting yang belum selesai sebelum mengeksekusi perintah ini.

Working Directory per Session

Setiap session (dan window) memiliki working directory sendiri. Saat membuat session, tmux mengambil working directory dari direktori tempat kalian menjalankan tmux new. Untuk kontrol eksplisit:

Atur working directory
tmux new -s proyek -c ~/proyek/web
tmux new-window -c ~/proyek/api

Ini penting: window editor, window log, dan window CLI bisa dimulai dari direktori yang berbeda tanpa harus cd manual.

Manajemen Window

Window adalah "tab" dalam sesi. Semua dikendalikan lewat prefix key.

Membuat Window

ShortcutFungsi
Ctrl+B lalu cBuat window baru (create)

Window baru langsung aktif dengan prompt shell di working directory session.

ShortcutFungsi
Ctrl+B lalu nWindow berikutnya (next)
Ctrl+B lalu pWindow sebelumnya (previous)
Ctrl+B lalu 0-9Langsung ke window nomor n
Ctrl+B lalu wPilih window lewat daftar interaktif
Ctrl+B lalu lKembali ke window yang terakhir diakses

Rename & Find

ShortcutFungsi
Ctrl+B lalu ,Rename window (ketik nama, tekan Enter)
Ctrl+B lalu fTemukan window berisi teks (find)

Ctrl+B lalu f sangat berguna saat banyak window terbuka — ketik potongan teks yang tampil di window tujuan, dan tmux melompat ke sana.

Tip

Biasakan memberi nama window yang bermakna (log, code, top) dengan Ctrl+B lalu ,. Status bar akan menampilkan nama-nama ini, dan menavigasi sesi yang ramai terasa jauh lebih mudah — apalagi saat berbagi layar dengan tim.

ShortcutFungsi
Ctrl+B lalu &Tutup window (konfirmasi dengan y)
exit di pane terakhirTutup window sekaligus

Sama seperti session, menutup window mengakhiri proses di dalam semua panenya. tmux meminta konfirmasi sebelum menutup.

Manajemen Pane

Pane adalah split viewport dalam window. Di sinilah tmux menawarkan "layar ganda" yang bebas mouse.

Split Vertikal & Horizontal

ShortcutFungsiLayout
Ctrl+B lalu %Split vertikal (kiri-kanan)Dua pane berdampingan
Ctrl+B lalu "Split horizontal (atas-bawah)Dua pane bertumpuk

Perhatikan: % membuat batas pemisah vertikal (pane di kiri & kanan), sedangkan " membuat batas pemisah horizontal (pane di atas & bawah). Keduanya bisa dikombinasikan berulang:

Contoh layout pane
Ctrl+B + %   Ctrl+B + "   Ctrl+B + % di pane kiri
 
+----------+----------+     +------+------+------+
|    a     |    b     |     |  a   |  b   |  c   |
|          |          |     |      |      |      |
+----------+----------+     +------+------+------+
ShortcutFungsi
Ctrl+B lalu panahPindah ke pane di arah tersebut
Ctrl+B lalu qTampilkan nomor pane di layar
Ctrl+B lalu zZoom satu pane ke layar penuh (tekan lagi untuk kembali)
Ctrl+B lalu oPindah ke pane berikutnya (rotate)
Ctrl+B lalu !Promosikan pane menjadi window sendiri (break)
Ctrl+B lalu xTutup pane (konfirmasi dengan y)

Ctrl+B lalu q menampilkan nomor tiap pane — sangat membantu saat menavigasi layout yang kompleks. Ctrl+B lalu z (zoom) memperbesar satu pane sementara: mengedit file tanpa gangguan lalu kembali ke layout.

ShortcutFungsi
Ctrl+B lalu xTutup pane (konfirmasi y)
exit di dalam paneTutup pane (jika pane terakhir, window ikut tertutup)

Note

Ketika sebuah window hanya punya satu pane, Ctrl+B lalu x atau exit akan menutup window tersebut. Dan ketika hanya ada satu window, menutupnya menutup session. Aturan berantai ini penting — ikuti jalur "pane → window → session" saat menghancurkan sesuatu.

Tabel Referensi Cepat

LevelShortcutFungsi
Sessiontmux new -s <nama>Buat session
Sessiontmux attach -t <nama>Attach session
Sessiontmux lsDaftar session
SessionCtrl+B lalu dDetach
Sessiontmux kill-session -t <nama>Hancurkan session
WindowCtrl+B lalu c / n / p / 0-9Buat / next / prev / lompat
WindowCtrl+B lalu , / f / &Rename / find / tutup
PaneCtrl+B lalu % / "Split vertikal / horizontal
PaneCtrl+B lalu panah / q / zNavigasi / nomor / zoom
PaneCtrl+B lalu xTutup pane

Latihan Praktik

  1. Buat session: tmux new -s latihan, lalu buat 3 window (Ctrl+B lalu c tiga kali).
  2. Navigasi window: latih Ctrl+B lalu n / p / 0-3 sampai tanpa berpikir.
  3. Rename window: Ctrl+B lalu ,, ketik nama, Enter.
  4. Split pane: di satu window, Ctrl+B lalu % lalu Ctrl+B lalu ", lalu Ctrl+B lalu panah untuk berpindah.
  5. Zoom: Ctrl+B lalu z untuk memperbesar, tekan lagi untuk kembali.
  6. Detach & re-attach: Ctrl+B lalu d, lalu tmux attach -t latihan. Proses tetap hidup.
  7. Bersihkan: tmux kill-session -t latihan.

Kesalahan Umum (Common Pitfalls)

  1. exit di pane terakhir mematikan session. Jika hanya ingin menunda, gunakan detach (Ctrl+B lalu d), bukan exit.
  2. Salah nama session di -t. tmux kill-session -t salah akan gagal dengan can't find session. Cek dulu tmux ls.
  3. Membuat session baru padahal tinggal attach. Kalian punya session deploy, tapi menjalankan tmux new -s deploy lagi malah membuat session kedua (tmux otomatis menamainya). Jika ingin kembali ke pekerjaan lama, selalu tmux attach -t deploy.
  4. Tidak memberi nama window/session. Status bar jadi kumpulan angka yang membingungkan saat sesi ramai. Biasakan -s <nama> dan Ctrl+B lalu ,.
  5. Bingung arah split. % membagi kiri-kanan (batas vertikal), " membagi atas-bawah (batas horizontal). Ingat: % adalah split yang "tinggi", " adalah split yang "lebar".
  6. Menutup pane tanpa memastikan tidak ada proses berjalan. Ctrl+B lalu x membunuh proses di pane. Pastikan proses build/deploy di pane itu memang sudah selesai.

Penutup

Di episode 3 ini kalian sudah menguasai lifecycle dasar tmux: membuat dan mengelola session (new, attach, ls, detach, kill-session), menavigasi window layaknya tab (c, n/p/0-9, , rename, f find), serta membagi dan menavigasi pane (% split vertikal, " split horizontal, panah, z zoom). Siklus buat → pakai → lepas → sambung lagi → hancurkan sekarang ada di ujung jari kalian.

Poin penting yang harus kalian bawa:

  • Detach (Ctrl+B lalu d) ≠ exit — detach menyimpan, exit menghancurkan.
  • Nama yang deskriptif untuk session dan window adalah investasi kecil berimbal besar.
  • % = split vertikal, " = split horizontal — kombinasi keduanya menciptakan layout kompleks.
  • Ctrl+B lalu q menampilkan nomor pane; Ctrl+B lalu z untuk zoom fokus.
  • Aturan berantai pane → window → session: menghancurkan yang lebih dalam bisa menghancurkan yang lebih luar.

Sekarang kalian bisa "tinggal" di dalam tmux. Di episode 4 selanjutnya, kita akan membahas Prefix Key & Keybindings — memahami sistem keybinding tmux, cara melihat dan mencari shortcut (Ctrl+B lalu ?), dasar-dasar bind-key dan unbind-key, menambahkan custom keybinding di ~/.tmux.conf, hingga membuat kombinasi keybinding yang berlapis. Pastikan tetap semangat, karena kontrol penuh atas keyboard tmux akan segera ada di tangan kalian!