tmux Kullanımı: Linux’ta Terminal Çoğullama Rehberi
Bir Linux sunucusunu verimli bir şekilde yönetmek doğru araçları gerektirir — ve tmux kadar dönüştürücü olan birkaç araç vardır. İster birden fazla işlemi yöneten bir geliştirici, ister uzak oturumları koruyan bir sistem yöneticisi, ister terminalde yaşayan bir ileri kullanıcı olun, tmux (Terminal Multiplexer) komut satırıyla nasıl etkileşim kurduğunuzu temel olarak değiştirir.
Bu kapsamlı rehber tmux hakkında bilmeniz gereken her şeyi kapsar: nedir, neden önemlidir, nasıl kurulur ve yapılandırılır ve gerçek dünya sunucu ortamlarında — VPS Hosting ve özel altyapı dahil olmak üzere — etkili bir şekilde nasıl kullanılır.
tmux Nedir?
tmux, tek bir pencere içinde birden fazla terminal oturumunu oluşturmanıza, yönetmenize ve gezinmenize olanak tanıyan açık kaynaklı bir terminal çoğullaştırıcısıdır. Düzinelerce ayrı SSH bağlantısı veya terminal sekmesi açmak yerine, tmux her şeyi tek bir kalıcı, yapılandırılmış çalışma alanında organize etmenizi sağlar.
Özünde, tmux üç hiyerarşik konsept üzerinde çalışır:
- Oturumlar — En üst düzey konteyner. Bir oturum bir veya daha fazla pencere içerir ve bağlantıyı kestiğiniz sonra bile devam eder.
- Pencereler — Tarayıcı sekmelerine benzer şekilde, her pencere tam terminal ekranını kaplar.
- Panolar — Bir pencere içindeki alt bölümler. Bir pencereyi yatay veya dikey olarak birden fazla panoya bölebilir ve bağımsız işlemleri aynı anda çalıştırabilirsiniz.
Bu mimari, tmux’u uzak sunucu ortamlarında özellikle güçlü kılar. SSH aracılığıyla bir VPS veya Dedicated Server‘a bağlı olduğunuzda, bağlantı kesilmesi artık kaybedilen işi anlamına gelmez — tmux oturumunuz arka planda çalışmaya devam eder ve yeniden bağlandığınız anda yeniden bağlanmaya hazır olur.
tmux Neden Kullanılır? Sistem Yöneticileri ve Geliştiriciler için Temel Faydalar
Komutlara geçmeden önce, tmux’un profesyonel sunucu yönetiminde neden standart bir araç haline geldiğini anlamak değerlidir:
1. Oturum Kalıcılığı
Uzun süreli işlemler — veritabanı göçleri, derleme işleri, günlük izleme — SSH bağlantınız kesilse bile kesintisiz devam eder. Bu, uzak altyapıda çalışırken kritiktir.
2. Paralel İş Akışı Yönetimi
Terminalinizi bölmelere ayırarak aynı anda bir yapılandırma dosyasını düzenleyin, bir günlüğü takip edin ve sistem kaynaklarını izleyin — pencereler arasında geçiş yapmadan.
3. İşbirlikçi Erişim
Birden fazla kullanıcı aynı tmux oturumuna aynı anda bağlanabilir, paylaşılan bir sunucuda gerçek zamanlı çift programlama veya işbirlikçi hata ayıklamayı etkinleştirir.
4. Yeniden Üretilebilir Çalışma Alanları
Karmaşık çok bölmeli, çok pencereli düzenleri kaydedin ve geri yükleyin, böylece çalışma ortamınız oturumlar arasında tutarlı olur.
5. Hafif ve Evrensel
tmux tamamen terminalde çalışır, GUI bağımlılığı yoktur, bu da onu başsız sunucular, konteynerler ve minimal Linux kurulumları için ideal kılar.
tmux Kurulumu
tmux, neredeyse her büyük Linux dağıtımının varsayılan paket depolarında mevcuttur. Sisteminiz için uygun komutu seçin:
Ubuntu / Debian
sudo apt update
sudo apt install tmuxCentOS / RHEL / Fedora
# CentOS/RHEL 7
sudo yum install tmux
# CentOS/RHEL 8+ and Fedora
sudo dnf install tmuxArch Linux
sudo pacman -S tmuxmacOS (Homebrew aracılığıyla)
brew install tmuxKurulumu Doğrulayın
tmux -VBu, tmux 3.3a gibi yüklü sürümü döndürmelidir.
tmux Ön Ek Tuşunu Anlamak
Her tmux klavye kısayolu bir ön ek tuşu ile başlar — tmux’a bir sonraki tuş vuruşunun bir komut olduğunu, normal giriş olmadığını işaret eden bir tuş kombinasyonu.
Varsayılan ön ek Ctrl + b. Bu kılavuz boyunca bunu <prefix> olarak göstereceğiz. Yani <prefix> c şu anlama gelir: Ctrl + b tuşlarına basın, her iki tuşu bırakın, ardından c tuşuna basın.
> Pro İpucu: Birçok deneyimli kullanıcı, ergonomik nedenlerle ön eki Ctrl + a olarak değiştirir (GNU Screen’e benzer). Bunu özelleştirme bölümünde ele alacağız.
Core tmux Komutları: Oturumlar
Yeni Bir Oturum Başlatma
tmux’ı varsayılan adsız oturumla başlatın:
tmuxAçıklayıcı bir adla oturum başlatın (şiddetle önerilir):
tmux new -s session_nameÖrneğin, bir web sunucusunu yönetirken:
tmux new -s webserverEtkin Oturumları Listeleme
tmux dışından, çalışan tüm oturumları listeleyin:
tmux lsÖrnek çıktı:
webserver: 3 windows (created Mon Jan 13 10:22:01 2025)
database: 1 window (created Mon Jan 13 09:15:44 2025)Bir Oturumdan Ayrılma
Geçerli oturumdan ayrılmak için (arka planda çalışır durumda bırakmak):
<prefix> dYani: Ctrl + b, ardından d.
Normal kabuğunuza döndürüleceksiniz ve tmux oturumu tüm işlemleriyle birlikte çalışmaya devam edecektir.
Bir Oturuma Yeniden Bağlanma
Belirli bir adlandırılmış oturuma yeniden bağlanın:
tmux attach-session -t session_nameVeya kısaltmayı kullanın:
tmux a -t session_nameYalnızca bir oturum varsa:
tmux attachBir Oturumu Yeniden Adlandırma
tmux içindeyken:
<prefix> $Yeni adı yazın ve Enter tuşuna basın.
Bir Oturumu Sonlandırma
Belirli bir oturumu ve tüm işlemlerini sonlandırmak için:
tmux kill-session -t session_nameTüm oturumları sonlandırmak için:
tmux kill-serverTemel tmux Komutları: Pencereler
Pencereler bir oturum içinde sekmeler gibi işlev görür. Her pencere tamamen bağımsız bir işlem çalıştırabilir.
| İşlem | Kısayol |
|---|---|
| Yeni pencere oluştur | <prefix> c |
| Sonraki pencereye geç | <prefix> n |
| Önceki pencereye geç | <prefix> p |
| Numaraya göre pencereye geç | <prefix> 0–9 |
| Geçerli pencereyi yeniden adlandır | <prefix> , |
| Tüm pencereleri listele | <prefix> w |
| Geçerli pencereyi kapat | <prefix> & |
Core tmux Commands: Panes
Panes, tek bir pencereyi birden fazla terminal alanına bölmenize izin verir — tmux’ın en güçlü özelliklerinden biridir.
| İşlem | Kısayol |
|---|---|
| Pane’i yatay olarak böl (üst/alt) | <prefix> " |
| Pane’i dikey olarak böl (sol/sağ) | <prefix> % |
| Pane’ler arasında gezin | <prefix> Arrow Keys |
| Pane’i yeniden boyutlandır (basılı tutun ve tekrarlayın) | <prefix> Ctrl + Arrow Keys |
| Pane’i tam ekrana yakınlaştır / geri yükle | <prefix> z |
| Pane’i yeni bir pencereye dönüştür | <prefix> ! |
| Geçerli pane’i kapat | <prefix> x |
| Pane numaralarını göster | <prefix> q |
Pratik Örnek: Sunucu İzleme Düzeni
Web sunucusunu izlemek için tipik bir üç pane düzeni:
# 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'Bu, tek bir terminal penceresinde gerçek zamanlı bir pano sağlar — bir üretim sunucusunu yönetirken paha biçilmezdir.
Kopyalama Modu: Kaydırma ve Metin Seçme
Varsayılan olarak, tmux’ta fare kaydırma tekerleği çalışmaz. Çıktıyı kaydırmak veya metin kopyalamak için Kopyalama Modunu kullanırsınız.
Kopyalama Moduna Girin
<prefix> [Kopyalama Modunda Gezinme
| İşlem | Tuş |
|---|---|
| Yukarı kaydır | Arrow Up veya Ctrl + u |
| Aşağı kaydır | Arrow Down veya Ctrl + d |
| İleri ara | / |
| Geri ara | ? |
| Seçimi başlat | Space |
| Seçimi kopyala | Enter |
| Kopyalama modundan çık | q |
Kopyalanan Metni Yapıştır
<prefix> ]tmux’u Özelleştirme: .tmux.conf Dosyası
tmux’un gerçek gücü, ~/.tmux.conf konumunda bulunan yapılandırma dosyası aracılığıyla iş akışınıza uyarlandığında ortaya çıkar.
Adım 1: Yapılandırma Dosyasını Açın veya Oluşturun
nano ~/.tmux.confDosya mevcut değilse, bu komut onu otomatik olarak oluşturur.
Adım 2: Özelleştirmelerinizi Uygulayın
Aşağıda, en etkili özelleştirmeleri kapsayan iyi açıklamalı, üretime hazır bir yapılandırma bulunmaktadır:
# ============================================
# ~/.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!"Adım 3: Kaydedin ve Çıkın (nano)
- Kaydet:
Ctrl + O, ardındanEnter - Çık:
Ctrl + X
Adım 4: Yapılandırmayı Yeniden Yükleyin
tmux zaten çalışıyorsa, değişiklikleri yeniden başlatmadan uygulayın:
<prefix> :Ardından şunu yazın:
source-file ~/.tmux.confEnter tuşuna basın. Veya, yukarıdaki yapılandırmadan yeniden yükleme bağlamasını eklediyseniz, basitçe şuna basın:
<prefix> rAdım 5: Özelleştirmelerinizi Doğrulayın
- Yeni önek tuşu:
Ctrl + atuşuna basın, ardından yeni bir pencere oluşturmak içinctuşuna basın. - Fare desteği: Odağı değiştirmek için farklı bölmelere tıklayın; fare tekerleği ile kaydırın.
- Durum çubuğu: Hostname, tarih ve saatin alt sağ köşede göründüğünü doğrulayın.
- Bölme bölmeleri: Dikey bölme için
<prefix> |tuşuna basın, yatay için<prefix> -tuşuna basın.
Gelişmiş tmux Teknikleri
Shell Scriptleri ile Oturum Düzenlerini Komut Dosyası Haline Getirme
Tüm çalışma alanı kurulumunuzu bir shell scripti ile otomatikleştirin:
#!/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Çalıştırılabilir hale getirin ve çalıştırın:
chmod +x start-dev.sh
./start-dev.shPane’leri Senkronize Etme
Aynı komutu tüm pane’lere aynı anda gönderin — birden fazla sunucuyu yönetmek için son derece kullanışlıdır:
<prefix> :
setw synchronize-panes onDevre dışı bırakmak için:
setw synchronize-panes offOturumları Kullanıcılar Arasında Paylaşma
İki kullanıcı gerçek zamanlı işbirliği için aynı oturuma bağlanabilir:
# User 1 creates a session
tmux new -s shared
# User 2 attaches to it
tmux attach -t sharedHer iki kullanıcı da aynı terminali gerçek zamanlı olarak görür ve kontrol eder.
tmux Hızlı Referans Cheat Sheet
Oturum Komutları
| Komut | Açıklama |
|---|---|
tmux new -s name | Adlandırılmış oturum oluştur |
tmux ls | Oturumları listele |
tmux a -t name | Oturuma bağlan |
tmux kill-session -t name | Oturumu kapat |
<prefix> d | Oturumdan ayrıl |
<prefix> $ | Oturumu yeniden adlandır |
Pencere Komutları
| Kısayol | Açıklama |
|---|---|
<prefix> c | Yeni pencere |
<prefix> n / p | Sonraki / önceki pencere |
<prefix> 0–9 | Numaraya göre pencereye geç |
<prefix> , | Pencereyi yeniden adlandır |
<prefix> & | Pencereyi kapat |
Panel Komutları
| Kısayol | Açıklama |
|---|---|
<prefix> % | Dikey olarak böl |
<prefix> " | Yatay olarak böl |
<prefix> Arrow | Panellerde gezin |
<prefix> z | Paneli yakınlaştır / uzaklaştır |
<prefix> x | Paneli kapat |
<prefix> q | Panel numaralarını göster |
tmux in Real-World Server Scenarios
Scenario 1: Running Long Deployments on a VPS
When deploying applications on a VPS with cPanel or a custom control panel, long-running deployment scripts are a common pain point. With tmux:
tmux new -s deploy
./deploy.sh
# Detach with <prefix> d — the deployment continues even if SSH dropsReattach later to check progress:
tmux a -t deployScenario 2: Multi-Server Administration
When managing multiple Dedicated Servers, open separate tmux windows for each server:
tmux new -s admin
# Window 1: Server A
ssh admin@server-a.example.com
# <prefix> c — new window
# Window 2: Server B
ssh admin@server-b.example.com
# <prefix> c — new window
# Window 3: Server C
ssh admin@server-c.example.comSwitch between servers instantly with <prefix> 1, <prefix> 2, <prefix> 3.
Scenario 3: Monitoring Web Hosting Infrastructure
For users on Shared Web Hosting who have SSH access, tmux provides a lightweight way to keep monitoring scripts running persistently without requiring a dedicated process manager.
Yaygın tmux Sorunlarını Giderme
tmux: command not found
Dağıtımınızın paket yöneticisini kullanarak tmux’ı yükleyin (yukarıdaki kurulum bölümüne bakın).
Renkler yanlış görünüyor veya bozuk
Bunu ~/.tmux.conf‘e ekleyin:
set -g default-terminal "screen-256color"Ve SSH istemciniz ile terminal emulatörünüzün 256 rengi desteklediğinden emin olun.
Fare kaydırması çalışmıyor
set -g mouse on öğesinin yapılandırmanızda olduğundan ve yapılandırmanın yeniden yüklendiğinden emin olun. Bazı terminal emülatörleri ek yapılandırma gerektirir.
Yeniden bağlandıktan sonra oturumumu bulamıyorum
Tüm etkin oturumları listelemek için tmux ls komutunu çalıştırın. Hiçbiri görünmüyorsa, sunucu yeniden başlamış olabilir. Önyüklemede tmux oturumlarını otomatik olarak başlatmak için bir işlem denetçisi veya systemd hizmeti kullanmayı düşünün.
Önek tuşu yanıt vermiyor
~/.tmux.conf söz dizimini doğrulayın. Yaygın bir hata, yeni bir önek ayarlamadan önce unbind C-b komutunu unutmaktır.
Sonuç
tmux, Linux iş akışınıza ekleyebileceğiniz en etkili araçlardan biridir. Oturum kalıcılığı, esnek pencere yönetimi, bölme bölünmesi ve derin özelleştirilebilirliğinin kombinasyonu, terminalde ciddi şekilde çalışan herkes için — geliştiriciler ve DevOps mühendislerinden üretim altyapısını yöneten sistem yöneticilerine kadar — vazgeçilmez kılmaktadır.
tmux öğrenmeye yapılan yatırım hemen sonuç verir: artık bırakılan SSH bağlantılarından kayıp iş yok, artık terminal pencerelerini karıştırmak yok ve artık bağlam değiştirme yükü yok. Yüksek performanslı bir VPS Hosting planında iş yükleri çalıştırıyor olsanız veya bare-metal Dedicated Servers yönetiyor olsanız, tmux size yapılandırılmış, dayanıklı ve verimli bir komut satırı ortamı sağlar.
Temel bilgilerle başlayın — bir oturum oluşturun, bir bölmeyi bölün, ayırın ve yeniden bağlayın — ardından ihtiyaçlarınız geliştikçe ~/.tmux.conf oluşturmaya kademeli olarak başlayın. Birkaç gün içinde, bunu olmadan nasıl yönettiğinizi merak edeceksiniz.
*tmux becerilerinizi uygulamaya koymak için güvenilir bir sunucu ortamına mı ihtiyacınız var? AlexHost’un VPS Hosting planları, Dedicated Servers ve VPS Control Panels — performans, stabilite ve tam root erişim için tasarlanmış — yelpazesini keşfedin.*
tasarruf edin