SSH bağlantısı koptuğunda üzerinde çalışılan komutun da durması, sunucu tarafında en can sıkıcı anlardan biridir. Normal bir terminalde bağlantı kesildiğinde arkasında çalışan process SIGHUP sinyaliyle birlikte sonlanır; saatlerce süren bir rsync aktarımı ya da bir build işlemi bu yüzden yarıda kalabilir. tmux (terminal multiplexer), bu sorunu kökten çözer: sunucu tarafında bağımsız bir process olarak çalışır, terminal penceresi kapansa bile içindeki oturumlar kesilmeden devam eder.
Bu rehberde tmux'un kurulumundan başlayıp oturum açma, pencere ve panel yönetimi, bağlantı koptuktan sonra geri bağlanma ve kendi .tmux.conf dosyanı oluşturma adımlarına kadar tüm süreci gerçek komutlarla anlatıyoruz. Her başlıkta doğrudan terminalde çalıştırabileceğin komutlar var.
tmux nedir ve nasıl kurulur?
tmux, tek bir terminal penceresi içinde birden fazla bağımsız oturum çalıştırmayı sağlayan bir programdır. Screen'in yerini büyük ölçüde alan bu araç, çoğu Linux dağıtımının resmi paket depolarında hazır bulunur. Asıl işlevi, SSH bağlantısı koptuğunda içindeki process'leri canlı tutmasıdır: wifi kesilse, laptop uykuya geçse ya da VPN düşse bile tmux oturumu sunucuda çalışmaya devam eder ve başka bir makineden aynı oturuma yeniden bağlanılabilir.
Birden fazla kullanıcı aynı tmux oturumuna aynı anda bağlanabilir. Bu özellik, pair programming ya da canlı sorun giderme oturumlarında da işe yarar.
Kurulum dağıtıma göre değişir:
# Debian / Ubuntu
sudo apt update
sudo apt install tmux
# Fedora / RHEL / CentOS
sudo dnf install tmux
# macOS (Homebrew ile)
brew install tmux
# Kurulan sürümü doğrula
tmux -V
tmux -V komutu kurulan sürüm numarasını gösterir; güncel dağıtımlarda genellikle 3.x serisi gelir. Sürüm farkı önemlidir, çünkü fare desteği ve panel kenarlık stilleri gibi bazı yapılandırma seçenekleri 2.x ile 3.x arasında değişmiştir.
Oturum başlatma, listeleme ve bağlanma
tmux isimsiz de başlatılabilir, ama birden fazla proje üzerinde çalışılıyorsa isimli oturumlar işi kolaylaştırır. tmux new komutu yeni bir oturum açar, -s parametresi ona isim verir:

# work adında yeni bir oturum başlat
tmux new -s work
# Aktif tüm oturumları listele
tmux ls
# work oturumuna geri bağlan (attach)
tmux attach -t work
# kısaltması:
tmux a -t work
# Oturumu tamamen sonlandır
tmux kill-session -t work
Oturum içindeyken terminali doğrudan kapatmak yerine "detach" etmek gerekir; aksi halde oturum yanlışlıkla sonlandırılabilir. Detach için varsayılan prefix tuşu Ctrl+b'ye basıp ardından d tuşuna basmak yeterlidir. Oturum arka planda çalışmaya devam eder ve tmux ls komutuyla hâlâ orada olduğu görülebilir.
Pencere ve panel (pane) komutları nasıl çalışır?
tmux'ta hiyerarşi üç katmandır. Bir oturumun (session) içinde pencereler (window), her pencerenin içinde de paneller (pane) bulunur. Bu yapı, bir tarayıcıda birden fazla sekme açıp her sekmede ekranı da bölmüş gibi düşünülebilir. Tüm komutlar önce prefix tuşuna (Ctrl+b), ardından ilgili tuşa basılarak çalıştırılır.
Yeni pencere açmak ve pencereler arasında geçiş yapmak için:
Ctrl+b c # yeni pencere aç
Ctrl+b n # sonraki pencereye geç
Ctrl+b p # önceki pencereye geç
Ctrl+b 0-9 # numarasına göre pencereye geç
Ctrl+b , # aktif pencereyi yeniden adlandır
Paneli bölmek için iki temel kısayol vardır: biri ekranı dikey, diğeri yatay böler. Yeni başlayanların en sık karıştırdığı nokta budur.
Ctrl+b % # paneli dikey böl (sağ-sol)
Ctrl+b " # paneli yatay böl (üst-alt)
Ctrl+b o # paneller arası geçiş yap
Ctrl+b x # aktif paneli kapat
Tipik bir geliştirme kurulumunda sol panelde editör (vim veya nano), sağ üstte log takibi için tail -f, sağ altta git komutları ya da test çalıştırma paneli yer alır. Üç panel de aynı oturuma bağlı olduğu için hepsi birlikte detach ve attach olur.
tmux içinde fare tekerleğiyle scroll yapmak varsayılan ayarlarda çalışmaz, çünkü tmux kendi ekran buffer'ını yönetir. Geçmiş çıktıya bakmak için "copy mode"a girmek gerekir:
Ctrl+b [ # copy mode'a gir (scroll ve seçim yapılabilir)
q # copy mode'dan çık
Copy mode'dayken ok tuşlarıyla yukarı kaydırılabilir, Space tuşuyla seçim başlatılıp metin kopyalanabilir. Fare desteği .tmux.conf içinde açılırsa fare tekerleğiyle scroll da otomatik çalışır; bu ayar bir sonraki bölümde geçiyor.
~/.tmux.conf ile kendi ayarlarını nasıl yaparsın?
tmux'un varsayılan prefix tuşu Ctrl+b'dir, ama çoğu deneyimli kullanıcı bunu Ctrl+a'ya taşır; tek elle basmak daha kolaydır ve screen'den gelen alışkanlıkla örtüşür. Bu tür ayarlar ~/.tmux.conf dosyasına yazılarak kalıcı hale getirilir.

# Prefix tuşunu Ctrl+b yerine Ctrl+a yap
unbind C-b
set -g prefix C-a
bind C-a send-prefix
# Fare desteğini aç (scroll, panel seçimi, boyutlandırma)
set -g mouse on
# Pencere ve panel numaralandırmasını 1'den başlat
set -g base-index 1
setw -g pane-base-index 1
# Yatay/dikey bölme kısayollarını daha akılda kalıcı yap
bind | split-window -h
bind - split-window -v
# Renk desteğini iyileştir (çoğu terminal emülatörü destekler)
set -g default-terminal "screen-256color"
# Konfigürasyonu yeniden yüklemek için: Ctrl+a sonra r
bind r source-file ~/.tmux.conf \; display "Config yeniden yüklendi"
Dosya düzenlendikten sonra tmux'u yeniden başlatmaya gerek yoktur. Açık bir oturumun içinde Ctrl+b : ile komut satırına geçilip source-file ~/.tmux.conf yazılması yeterlidir.
Klavye kısayolları hangi durumda hangisi?
En sık kullanılan kısayolları tek yerde toplamak günlük kullanımda zaman kazandırır. Aşağıdaki tablo varsayılan Ctrl+b prefix'ine göre hazırlanmıştır:

| Kısayol | Ne yapar |
|---|---|
Ctrl+b d | Oturumdan detach ol (arka planda bırak) |
Ctrl+b c | Yeni pencere aç |
Ctrl+b , | Aktif pencereyi yeniden adlandır |
Ctrl+b n / Ctrl+b p | Sonraki / önceki pencere |
Ctrl+b % | Paneli dikey böl |
Ctrl+b " | Paneli yatay böl |
Ctrl+b o | Paneller arasında geçiş yap |
Ctrl+b x | Aktif paneli kapat (onay ister) |
Ctrl+b [ | Copy mode'a gir (scroll/seçim) |
Ctrl+b z | Aktif paneli tam ekran yap/geri al |
Uzak sunucu yönetiminde ve editörle birlikte tmux nasıl kullanılır?
Birden fazla sunucu izlenmesi gerektiğinde, tek bir tmux oturumu içinde her sunucu için ayrı bir pencere açmak işi büyük ölçüde kolaylaştırır. Her pencere ilgili sunucuya SSH ile bağlanıp Ctrl+b , ile sunucu adına göre yeniden adlandırılabilir; böylece Ctrl+b 0-9 ile hangi sunucuya bakıldığı karışmadan geçiş yapılır.
Asıl fark, uzun süren bir işlemi (yedekleme, migration, log izleme) başlatıp SSH bağlantısını güvenle kapatabilmektir. Sunucudaki tmux oturumu çalışmaya devam eder; ofisten çıkıp evden tmux attach -t deploy yazıldığında kalınan ekran aynen görünür. Bu yöntem, nohup veya disown gibi tek komutu arka plana atan araçlardan farklıdır, çünkü çıktı canlı izlenebilir ve gerektiğinde müdahale edilebilir.
tmux, terminal tabanlı editörlerle (vim, neovim, emacs, nano) doğal biçimde birleşir; ikisi de klavye odaklı çalışır ve fareye ihtiyaç duymaz. Bir panelde vim açıkken diğer panelde testlerin çalıştırılması, üçüncü panelde git diff izlenmesi tek pencerede tam bir geliştirme ortamı kurar. Panel boyutları Ctrl+b sonrası ok tuşlarına basılı tutularak ayarlanır, Ctrl+b z ile üzerinde çalışılan panel geçici olarak tam ekran yapılabilir.
tmux'u öğrenirken nereden başlamalı?
Her kısayolu ezberlemeye çalışmak yerine önce dört temel eylem otomatikleşmelidir: yeni oturum açma, detach, attach, panel bölme. Geri kalanı zamanla elin alışmasıyla gelir.
tmux new -s isimile isimli oturum açmayı alışkanlık haline getirin; isimsiz oturumlartmux lsçıktısında birbirine karışır.- Detach etmeyi (
Ctrl+b d) öğrenin, terminali doğrudan kapatma alışkanlığından vazgeçin. Ctrl+b %veCtrl+b "ile bölmeyi bir hafta boyunca bilinçli kullanın; bu süreçte refleks haline gelir.- tmux içindeyken
Ctrl+b ?ile o an geçerli tüm kısayolları listeleyen yardım ekranını açın; ihtiyaç anında bakmak ezbere güvenmekten daha hızlı sonuç verir.
Resmi tmux belgeleri ve komut referansı için tmux GitHub wiki sayfasına, kaynak kod ve sürüm notları için de tmux GitHub deposu sayfasına bakılabilir.
Henüz yorum yok.
Sohbete katıl. Yorumlar yayınlanmadan önce moderasyondan geçer.