15%

Hemat 15% di Semua Layanan Hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode:

Skills
Memulai
04.11.2024

Menggunakan tmux: Panduan Lengkap Terminal Multiplexing di Linux

Mengelola server Linux secara efisien memerlukan alat yang tepat — dan beberapa alat seefektif tmux. Baik Anda seorang developer yang menangani banyak proses, administrator sistem yang memelihara sesi jarak jauh, atau power user yang hidup di terminal, tmux (Terminal Multiplexer) secara fundamental mengubah cara Anda berinteraksi dengan command line.

Panduan komprehensif ini mencakup semua yang perlu Anda ketahui tentang tmux: apa itu, mengapa penting, cara menginstal dan mengonfigurasinya, dan cara menggunakannya secara efektif di lingkungan server dunia nyata — termasuk di VPS Hosting dan infrastruktur dedicated.

Apa Itu tmux?

tmux adalah terminal multiplexer open-source yang memungkinkan Anda membuat, mengelola, dan menavigasi beberapa sesi terminal dari dalam satu jendela. Daripada membuka puluhan koneksi SSH terpisah atau tab terminal, tmux memungkinkan Anda mengorganisir semuanya di dalam satu workspace yang persisten dan terstruktur.

Pada intinya, tmux beroperasi pada tiga konsep hierarki:

  • Sessions — Kontainer tingkat atas. Sesi menampung satu atau lebih window dan persisten bahkan setelah Anda memutuskan sambungan.
  • Windows — Mirip dengan tab browser, setiap window menempati layar terminal penuh.
  • Panes — Subdivisi dalam window. Anda dapat membagi window secara horizontal atau vertikal menjadi beberapa pane yang menjalankan proses independen secara bersamaan.

Arsitektur ini membuat tmux sangat powerful di lingkungan server jarak jauh. Ketika Anda terhubung melalui SSH ke VPS atau Dedicated Server, koneksi yang terputus tidak lagi berarti pekerjaan hilang — sesi tmux Anda terus berjalan di latar belakang, siap untuk dilampirkan kembali saat Anda terhubung kembali.

Mengapa Menggunakan tmux? Manfaat Utama untuk Sysadmin dan Developer

Sebelum mendalami perintah, ada baiknya memahami mengapa tmux telah menjadi alat standar dalam manajemen server profesional:

1. Persistensi Sesi

Proses jangka panjang — migrasi database, pekerjaan kompilasi, pemantauan log — terus berjalan tanpa gangguan bahkan jika koneksi SSH Anda terputus. Ini sangat penting saat bekerja di infrastruktur jarak jauh.

2. Manajemen Alur Kerja Paralel

Bagi terminal Anda menjadi pane untuk secara bersamaan mengedit file konfigurasi, tail log, dan memantau sumber daya sistem — semuanya tanpa beralih window.

3. Akses Kolaboratif

Beberapa pengguna dapat melampirkan ke sesi tmux yang sama secara bersamaan, memungkinkan pair programming real-time atau debugging kolaboratif di server bersama.

4. Workspace yang Dapat Direproduksi

Simpan dan pulihkan layout multi-pane dan multi-window yang kompleks sehingga lingkungan kerja Anda konsisten di seluruh sesi.

5. Ringan dan Universal

tmux berjalan sepenuhnya di terminal tanpa ketergantungan GUI, menjadikannya ideal untuk server headless, container, dan instalasi Linux minimal.

Menginstal tmux

tmux tersedia di repositori paket default dari hampir setiap distribusi Linux utama. Pilih perintah yang sesuai untuk sistem Anda:

Ubuntu / Debian

sudo apt update
sudo apt install tmux

CentOS / RHEL / Fedora

# CentOS/RHEL 7
sudo yum install tmux

# CentOS/RHEL 8+ and Fedora
sudo dnf install tmux

Arch Linux

sudo pacman -S tmux

macOS (via Homebrew)

brew install tmux

Verifikasi Instalasi

tmux -V

Ini harus mengembalikan versi yang diinstal, seperti tmux 3.3a.

Memahami Tombol Prefix tmux

Setiap shortcut keyboard tmux dimulai dengan prefix key — kombinasi tombol yang menandakan kepada tmux bahwa keystroke berikutnya adalah perintah, bukan input biasa.

Prefix default adalah Ctrl + b. Sepanjang panduan ini, kami akan menyatakannya sebagai <prefix>. Jadi <prefix> c berarti: tekan Ctrl + b, lepaskan kedua tombol, lalu tekan c.

> Pro Tip: Banyak pengguna berpengalaman memetakan ulang prefix ke Ctrl + a (mirip dengan GNU Screen) untuk alasan ergonomis. Kami akan membahas ini di bagian kustomisasi.

Perintah tmux Inti: Sesi

Memulai Sesi Baru

Luncurkan tmux dengan sesi default tanpa nama:

tmux

Mulai sesi dengan nama deskriptif (sangat disarankan):

tmux new -s session_name

Misalnya, saat mengelola server web:

tmux new -s webserver

Daftar Sesi Aktif

Dari luar tmux, daftar semua sesi yang berjalan:

tmux ls

Contoh output:

webserver: 3 windows (created Mon Jan 13 10:22:01 2025)
database: 1 window (created Mon Jan 13 09:15:44 2025)

Melepaskan dari Sesi

Untuk melepaskan dari sesi saat ini (membiarkannya berjalan di latar belakang):

<prefix> d

Yaitu: Ctrl + b, lalu d.

Anda akan dikembalikan ke shell biasa Anda, dan sesi tmux terus berjalan dengan semua prosesnya tetap utuh.

Melampirkan Kembali ke Sesi

Lampirkan kembali ke sesi bernama tertentu:

tmux attach-session -t session_name

Atau gunakan singkatan:

tmux a -t session_name

Jika hanya satu sesi yang ada:

tmux attach

Mengganti Nama Sesi

Saat berada di dalam tmux:

<prefix> $

Ketik nama baru dan tekan Enter.

Membunuh Sesi

Untuk menghentikan sesi tertentu dan semua prosesnya:

tmux kill-session -t session_name

Untuk membunuh semua sesi:

tmux kill-server

Perintah tmux Inti: Window

Window berfungsi seperti tab dalam sesi. Setiap window dapat menjalankan proses yang sepenuhnya independen.

TindakanShortcut
Buat window baru<prefix> c
Beralih ke window berikutnya<prefix> n
Beralih ke window sebelumnya<prefix> p
Beralih ke window berdasarkan nomor<prefix> 0–9
Ganti nama window saat ini<prefix> ,
Daftar semua window<prefix> w
Tutup window saat ini<prefix> &

Perintah tmux Inti: Pane

Pane memungkinkan Anda membagi satu window menjadi beberapa area terminal — salah satu fitur paling powerful tmux.

TindakanShortcut
Bagi pane secara horizontal (atas/bawah)<prefix> "
Bagi pane secara vertikal (kiri/kanan)<prefix> %
Navigasi antar pane<prefix> Arrow Keys
Ubah ukuran pane (tahan dan ulangi)<prefix> Ctrl + Arrow Keys
Perbesar pane ke layar penuh / pulihkan<prefix> z
Konversi pane menjadi window baru<prefix> !
Tutup pane saat ini<prefix> x
Tampilkan nomor pane<prefix> q

Contoh Praktis: Layout Pemantauan Server

Berikut adalah layout tiga pane tipikal untuk memantau server web:

# Start a new session
tmux new -s monitor

# Split horizontally to create a bottom pane
# Press: <prefix> "

# In the top pane: run htop
htop

# Switch to bottom pane: <prefix> Arrow Down
# Split bottom pane vertically: <prefix> %

# Bottom-left: tail the web server error log
tail -f /var/log/nginx/error.log

# Bottom-right: watch active connections
watch -n 2 'ss -tuln'

Ini memberi Anda dashboard real-time dalam satu jendela terminal — sangat berharga saat mengelola server produksi.

Copy Mode: Menggulir dan Memilih Teks

Secara default, roda scroll mouse Anda tidak akan berfungsi di tmux. Untuk menggulir melalui output atau menyalin teks, Anda menggunakan Copy Mode.

Masuk Copy Mode

<prefix> [
TindakanTombol
Gulir ke atasArrow Up atau Ctrl + u
Gulir ke bawahArrow Down atau Ctrl + d
Cari maju/
Cari mundur?
Mulai seleksiSpace
Salin seleksiEnter
Keluar copy modeq

Tempel Teks yang Disalin

<prefix> ]

Menyesuaikan tmux: File .tmux.conf

Kekuatan sebenarnya dari tmux muncul ketika Anda menyesuaikannya dengan alur kerja Anda melalui file konfigurasi yang terletak di ~/.tmux.conf.

Langkah 1: Buka atau Buat File Konfigurasi

nano ~/.tmux.conf

Jika file tidak ada, perintah ini akan membuatnya secara otomatis.

Langkah 2: Terapkan Kustomisasi Anda

Di bawah ini adalah konfigurasi yang siap produksi dan berkomentar baik yang mencakup kustomisasi paling berdampak:

# ============================================
# ~/.tmux.conf — tmux Configuration
# ============================================

# --- Prefix Key ---
# Change prefix from Ctrl+b to Ctrl+a (more ergonomic)
unbind C-b
set -g prefix C-a
bind C-a send-prefix

# --- Mouse Support ---
# Enable mouse for pane selection, resizing, and scrolling
set -g mouse on

# --- Indexing ---
# Start window and pane numbering at 1 (easier keyboard navigation)
set -g base-index 1
setw -g pane-base-index 1

# --- Pane Splitting ---
# Intuitive split shortcuts (| for vertical, - for horizontal)
bind | split-window -h
bind - split-window -v
unbind '"'
unbind %

# --- Pane Navigation (Vim-style) ---
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R

# --- Pane Resizing ---
bind -r H resize-pane -L 5
bind -r J resize-pane -D 5
bind -r K resize-pane -U 5
bind -r L resize-pane -R 5

# --- Visual Appearance ---
# Enable 256-color support
set -g default-terminal "screen-256color"

# Status bar styling
set -g status-bg colour235
set -g status-fg colour136

# Left status: session name
set -g status-left "#[fg=colour166,bold] [#S] "
set -g status-left-length 20

# Right status: hostname, date, and time
set -g status-right "#[fg=colour166]#H #[fg=colour136]| %Y-%m-%d #[fg=colour71]%H:%M "
set -g status-right-length 60

# Highlight active window in status bar
setw -g window-status-current-style fg=colour166,bold

# --- History ---
# Increase scrollback buffer size
set -g history-limit 10000

# --- Reload Config ---
# Reload tmux config with <prefix> r
bind r source-file ~/.tmux.conf ; display-message "Config reloaded!"

Langkah 3: Simpan dan Keluar (nano)

  • Simpan: Ctrl + O, lalu Enter
  • Keluar: Ctrl + X

Langkah 4: Muat Ulang Konfigurasi

Jika tmux sudah berjalan, terapkan perubahan tanpa memulai ulang:

<prefix> :

Kemudian ketik:

source-file ~/.tmux.conf

Tekan Enter. Atau, jika Anda menambahkan binding reload dari config di atas, cukup tekan:

<prefix> r

Langkah 5: Verifikasi Kustomisasi Anda

  • Tombol prefix baru: Tekan Ctrl + a, lalu c untuk membuat window baru.
  • Dukungan mouse: Klik pada pane berbeda untuk beralih fokus; gulir dengan roda mouse.
  • Status bar: Konfirmasi hostname, tanggal, dan waktu muncul di sudut kanan bawah.
  • Pembagian pane: Tekan <prefix> | untuk pembagian vertikal, <prefix> - untuk horizontal.

Teknik tmux Lanjutan

Scripting Layout Sesi dengan Shell Script

Otomatisasi seluruh setup workspace Anda dengan shell script:

#!/bin/bash
# start-dev.sh — Launch a preconfigured development environment

SESSION="dev"

tmux new-session -d -s $SESSION -n "editor"

# Window 1: Code editor
tmux send-keys -t $SESSION:1 "vim ." Enter

# Window 2: Server logs
tmux new-window -t $SESSION -n "logs"
tmux send-keys -t $SESSION:2 "tail -f /var/log/nginx/access.log" Enter

# Window 3: Shell (split into two panes)
tmux new-window -t $SESSION -n "shell"
tmux split-window -h -t $SESSION:3
tmux send-keys -t $SESSION:3.1 "htop" Enter

# Attach to the session
tmux attach-session -t $SESSION

Buat dapat dieksekusi dan jalankan:

chmod +x start-dev.sh
./start-dev.sh

Sinkronisasi Pane

Kirim perintah yang sama ke semua pane secara bersamaan — sangat berguna untuk mengelola beberapa server sekaligus:

<prefix> :
setw synchronize-panes on

Nonaktifkan dengan:

setw synchronize-panes off

Berbagi Sesi Antar Pengguna

Dua pengguna dapat melampirkan ke sesi yang sama untuk kolaborasi real-time:

# User 1 creates a session
tmux new -s shared

# User 2 attaches to it
tmux attach -t shared

Kedua pengguna melihat dan mengontrol terminal yang sama secara real-time.

Lembar Referensi Cepat tmux

Perintah Sesi

PerintahDeskripsi
tmux new -s nameBuat sesi bernama
tmux lsDaftar sesi
tmux a -t nameLampirkan ke sesi
tmux kill-session -t nameBunuh sesi
<prefix> dLepaskan dari sesi
<prefix> $Ganti nama sesi

Perintah Window

ShortcutDeskripsi
<prefix> cWindow baru
<prefix> n / pWindow berikutnya / sebelumnya
<prefix> 0–9Beralih ke window berdasarkan nomor
<prefix> ,Ganti nama window
<prefix> &Bunuh window

Perintah Pane

ShortcutDeskripsi
<prefix> %Bagi secara vertikal
<prefix> "Bagi secara horizontal
<prefix> ArrowNavigasi pane
<prefix> zPerbesar / pulihkan pane
15%

Hemat 15% di Semua Layanan Hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode:

Skills
Memulai