Skip to main content
Background Image
  1. Teches/

Tmux: Terminal Multiplexer

·1165 words·6 mins· ·
Wildan
Author
Wildan
An Ordinary Human Being
Table of Contents

About tmux
#

tmux adalah akronim dari Terminal Multiplexer, yang sebetulnya sudah sangat self-explanatory. tmux juga merupakan program berbasis CLI (command line interface) yang gratis, open source yang memungkinkan penggunanya untuk membuat, mengatur, dan menjaga sesi terminal dari satu layar terminal saja.1

Cara kerja tmux adalah dengan membuat arsitektur server-client. Artinya, ketika kita menjalankan tmux, tmux akan membuat background process sendiri sebagai server sehingga terminal kita akan terhubung ke tmux sebagai client. Karena server-nya berjalan secara independen, session tmux akan bertahan (akan tetap ada) meskipun kita menutup terminal kita (seperti kitty, alacritty, ghostty, dll) atau kehilangan koneksi SSH. Untuk terhubung kembali ke tmux, kita hanya perlu reconnect dan reattach.

Selain itu, di dalam tmux, ada 3 level hirarki: Session > Window > Pane. Sebuah sesi mengelompokkan satu atau lebih window, dan setiap window menempati seluruh layar terminal dan dapat di-split ke banyak pane. Setiap pane akan menjalankan proses shell-nya masing-masing.

Perhatikan ilustrasi berikut agar lebih mudah memahami ketiga level hirarti tmux tersebut:

ss1
tmux 3 level hierarchy. Created with: excalidraw.com

Dalam kenyataannya, nanti bentuk tmux adalah seperti ini [click image to enlage]:

ss13
Session, Window, and Pane on tmux. Created with: excalidraw.com

Website dokumentasi resmi tmux: https://tmux.app/

Repository Github resmi tmux:

Installation
#

Berikut adalah cara meng-install tmux di beberapa sistem operasi UNIX/Linux:

DistroCommand
Debian/Ubuntusudo apt install -y tmux
Arch Linuxsudo pacman -Sy tmux
Fedorasudo dnf install tmux
Opensusesudo zypper install tmux
FreeBSBsudo pkg install tmux

NixOS:
Masukkan baris berikut di file konfigurasi (/etc/nixos/configuration.nix):

  environment.systemPackages = [
    pkgs.tmux
  ];

Atau jika menggunakan nix-shell:

nix-shell -p tmux   

Usage
#

Berikut adalah cara menggunakan tmux.

INFO: Ctrl+b adalah tombol pemicu utama (prefix) di tmux.

Quickstart
#

Starting tmux
#

Untuk menjalankan tmux, kita hanya perlu mengetikkan perintah:

tmux

Maka, tmux akan membuat sesi baru dengan default nama sesuai urutan angka. Jika kita pertama kali membuka tmux, maka tmux akan membuat sesi pertama dengan nama 0.

Kita dapat melihat sesi tmux yang aktif (berikut dengan jumlah window-nya) dengan perintah:

tmux ls

ss2
tmux new session

Atau jika kita ingin membuka tmux dengan nama sesi yang kita tentukan sendiri:

tmux new -s nama-sesi

ss3
tmux new session with custom session name

Atau misalnya kita ingin membuat sesi baru tmux, tanpa langsung memasukinya:

tmux new -d # untuk membuat sesi baru dengan nama default (menggunakan angka)
tmux new -s nama-sesi -d # untuk membuat sesi baru dengan nama custom

ss9
tmux new detached session

Splitting Window
#

2 cara men-split window atau membuat panes di tmux: vertikal dan horizontal.

1. Split vertically

Berikut adalah keybinding untuk men-split window tmux secara vertikal.

Ctrl+b %

ss4
splitting vertically

2. Split horizontally

Berikut adalah keybinding untuk men-split window tmux secara horizontal.

Ctrl+b "

ss5
splitting horizontally

Panes Navigation
#

Cara berpindah antar panes:

Ctrl+b → # ke pane yang ada di kanan
Ctrl+b ← # ke pane yang ada di kiri
Ctrl+b ↑  # ke pane yang ada di atas
Ctrl+b ↓ # ke pane yang ada di bawah

Detaching Session
#

Ketika detach (keluar dari tmux), sesi tmux yang kita tinggalkan akan tetap ada.

Ctrl+b d

ss6
detaching

Listing Sessions
#

Kita juga bisa melihat daftar tmux session yang aktif dengan perintah berikut:

tmux ls

ss7
listing tmux active sessions

Attaching Session
#

Ketika sudah detach, dan kita ingin masuk lagi ke sesi tmux tertentu, gunakan perintah:

tmux attach -t nama-sesi

ss8
attach

Renaming Session
#

Kita juga bisa mengganti nama sesi tmux yang sudah kita buat sebelumnya:

tmux rename session -t nama-lama nama-baru

ss10
renaming session

Deleting Session
#

Untuk menghapus sesi tertentu:

tmux kill-session -t nama-sesi

ss11
deleting session

Kill All
#

Untuk menghapus semua sesi tmux:

tmux kill-server

ss12
kill tmux server / kill all tmux session

Extra
#

Berikut adalah penggunaan tmux yang lebih lanjut (advanced).

Creating Window
#

Di dalam tmux, kita dapat membuat window baru:

Ctrl+b c

Renaming Window
#

Kita juga bisa mengganti nama window di tmux:

Ctrl+b ,

Window Chooser
#

Jika kita punya banyak window dan ingin berpindah-pindah window, kita bisa memilihnya dengan perintah:

Ctrl+b w

ss14
window chooser

Atau langsung dengan nomor identifikasi masing-masing window-nya:

Ctrl+b 0-9

Panes Numbering
#

Jika kita punya banyak panes, kita bisa melihat atau mengidentifikasi setiap pane dengan nomornya:

Ctrl+b q

ss15
show pane number

Panes Resizing
#

Kita juga bisa mengatur ukuran setiap pane secara manual:

Ctrl+b → # `Ctrl+b` sambil ditahan, untuk memperbesar pane ke kanan
Ctrl+b ← # `Ctrl+b` sambil ditahan, untuk memperbesar pane ke kiri
Ctrl+b ↑ # `Ctrl+b` sambil ditahan, untuk memperbesar pane ke atas
Ctrl+b ↓ # `Ctrl+b` sambil ditahan, untuk memperbesar pane ke bawah

Pane Zooming
#

Terkadang, jika jumlah pane terlalu banyak, maka ukurannya akan semakin kecil. Kita dapat memperbesar (membuatnya jadi sebesar layar terminal) dengan perintah berikut:

Ctrl+b z

Untuk mengembalikannya ke ukuran semula, kita dapat menggunakan perintah yang sama.

Panes Layouting
#

Kita juga bisa mengganti-ganti layout pane:

Ctrl+b [Space]

Copy Mode
#

Kita bisa memasuki copy mode di tmux, dan ini adalah mode yang sangat bermanfaat bagi pengguna tmux, karena kita dapat melakukan banyak hal di mode ini, seperti scrolling, copy selection, paste, search, dan lain-lain.

Mengapa hal-hal tersebut (yang terdengar biasa aja) jadi spesial? Karena di tmux, pada dasarnya, kita tidak bisa melakukan semua itu kecuali jika kita masuk ke copy mode.

Untuk masuk ke copy mode:

Ctrl+b [

Sekarang, kita dapat melakukan banyak hal berikut:

1. Navigasi / Scrolling

Kita bisa menggerakkan kursos di mode ini melalui tombol-tombol berikut di keyboard:

h # ke kiri
l # ke kanan
j # ke bawah
k # ke atas

Atau bisa juga dengan tombol arrow di keyboard.

Jika kita ingin scrolling yang lebih cepat:

PgUp # scroll ke atas
PgDown # scroll ke bawah

2. Selecting

Untuk mulai menyeleksi teks:

v

3. Copying

Untuk meng-copy teks yang sudah terseleksi:

[Enter]

4. Pasting

Untuk mem-paste teks yang sudah tercopy:

Ctrl+b ]

5. Searching

Kita juga bisa mencari keyword tertentu yang ada di dalam pane pada mode ini:

/ # search forward
? # search backward
Untuk keluar dari copy mode, tekan tombol q di keyboard.

Pop-up Window
#

Kita juga bisa menampilkan pop-up window di tengah-tengah workflow tmux kita.2
Caranya, kita masuk ke mode perintah terlebih dahulu:

Ctrl+b :

Kemudian masukkan baris berikut:

display-popup

ss16
tmux popup window

Config File
#

File konfigurasi tmux biasanya ada di home folder (~/.tmux.conf).
Kita bisa isi dengan berbagai konfigurasi yang kita inginkan. Misalnya, berikut ini adalah isi file konfigurasi tmux saya:

# Mengubah warna latar belakang dan teks status bar
set -g status-bg green    # Warna latar belakang status bar (gunakan kode warna atau nama warna)
set -g status-fg black    # Warna teks di status bar

set -g status-style "bold"

#set -g status-right "%H:%M"  # Hanya menampilkan waktu
set -g status-right "#(whoami)@#H | #(pwd) " 

set-option -g pane-active-border-style "fg=blue" # Warna garis pembatas aktif

bind-key T display-popup -E

Notes: Semua catatan tentang tmux dapat kalian explorasi lebih lanjut di:

https://tmux.app/doc/

Terima kasih sudah mampir.
Ada kritik dan saran untuk artikel ini atau web ini secara keseluruhan? Tinggalkan komentar di bawah ya!

Related

Rclone: A Command-line program to Manage Files on Cloud Storage
··2822 words·14 mins
Do you have a lot of cloud storages that you want to manage it directly through terminal? With rclone, managing many cloud storages has never been easier than this before..
A Comparison of 5 Terminal File Managers
A glimpse of terminal-based file managers and their uniquenesses.
Starship: The Elegant yet Easy Way to Beautify Your Terminal Shell Prompt
Do you get bored of your default shell prompt? Lets make it up with Starship!