Hazırlayan: [kazakherif]
Tarih: 2025-07-13
Amaç: tmux kullanarak terminalde daha verimli çalışmak ve komut satırı deneyimini ileri düzeye taşımak için en önemli komutları ve kısayolları paylaşmak.
tmux
komutu, terminalde yeni bir oturum (session) başlatır. Başlattığın oturumda birden fazla pencere (window) ve panel (pane) açabilir, bunlar arasında geçiş yapabilirsin.
tmux, özellikle SSH ile bağlandığın uzak sunucularda çalışırken bağlantın koptuğunda bile işlemlerini kaybetmemeni sağlar. Yeni bir oturum başlattığında, terminalinde tmux’un varsayılan durum çubuğu (status bar) görünür.
Yeni, isimsiz bir tmux oturumu başlatmak için:
tmux
Birden fazla oturum yönetiyorsan, oturuma isim vermek daha kolaydır:
tmux new -s benimoturumum
Örneğin uzak bir Linux sunucusuna SSH ile bağlandın. Bir script çalıştıracaksın ama bağlantı kesilirse script yarıda kalmasın istiyorsun. Şöyle yapabilirsin:
tmux new -s backup
Sonra komutunu çalıştır:
rsync -avz /data/ remotehost:/backup/
Bağlantın kopsa bile, tekrar SSH ile bağlanıp aşağıdaki komutla kaldığın yerden devam edebilirsin:
tmux attach -t backup
Bu sayede çalışan işlem kesintiye uğramaz.
tmux içindeyken oturumu arka plana atmak için (detach):
Ctrl+b d
Sonra tekrar bağlanabilirsin:
tmux attach
tmux çalışırken, bazen hangi oturumların açık olduğunu görmek istersin. tmux ls
veya tmux list-sessions
komutu, sistemdeki tüm oturumları listeler.
tmux ls
veya
tmux list-sessions
0: 1 windows (created Sun Jul 13 15:00:42 2025) [158x42]
backup: 2 windows (created Sun Jul 13 14:40:01 2025) [158x42]
Bu örnekte:
Birden fazla iş yürütüyorsan:
tmux new -s build
ve
tmux new -s deploy
Sonra kontrol edersin:
tmux ls
Var olan bir tmux oturumunu devam ettirmek için attach
komutu kullanılır. Özellikle uzak sunucuda kopan SSH bağlantıları sonrası çok işe yarar.
tmux attach -t oturumadi
Önceden açtığın bir oturuma dönmek:
tmux attach -t backup
Hiç oturum ismi yazmazsan en son detach ettiğin oturuma bağlanırsın:
tmux attach
Bağlanmak istediğin oturum adını bilmiyorsan önce listele:
tmux ls
Bir oturumda birden fazla pencere (window) açabilirsin. Her pencere tamamen bağımsız bir terminal ortamı sunar. Pencereler tıpkı sekmeler gibidir.
Ctrl+b c
Bu kısayol:
Örneğin:
Yeni pencere açmak için:
Ctrl+b c
Yeni pencereye otomatik olarak geçersin. İstersen eski pencereye geri dönebilirsin:
Ctrl+b p
Bir oturumda birden fazla pencere (window) varsa aralarında hızlıca geçiş yapmak çok kullanışlıdır. Özellikle log izlerken veya kod yazarken başka terminal komutlarına bakman gerekirse hız kazandırır.
Sonraki pencereye geç:
Ctrl+b n
Önceki pencereye geç:
Ctrl+b p
Belirli numaralı pencereye git:
Ctrl+b <pencere numarası>
Örneğin pencere 2’ye gitmek için:
Ctrl+b 2
Oturumda 3 penceren var:
Mysql penceresine geçmek:
Ctrl+b 2
Sonra tekrar editöre dönmek:
Ctrl+b 0
Pencere isimlerini değiştirmek karmaşayı azaltır. İlerleyen maddelerde pencere isim değiştirmeyi anlatacağız.
Bir oturumda birden fazla pencere varsa, isimlerini değiştirmek iş akışını çok kolaylaştırır. Örneğin bir pencereye “logs” diğerine “mysql” adını vererek karışıklığı önlersin.
Ctrl+b ,
tmux rename-window -t 1 logs
Bu komut:
Varsayalım pencere 2’de MySQL’e bağlandın. İsmini değiştirmek istersin:
Ctrl+b 2
Ctrl+b ,
mysql
Artık status bar’da pencere adı “mysql” olarak görünür.
Bir tmux penceresini yatay şekilde ikiye bölerek aynı anda iki terminali alt alta görebilirsin. Özellikle log takip ederken veya iki komutu paralel izlerken çok kullanışlıdır.
Ctrl+b "
Bu kısayol:
Örneğin:
Yatay bölme için:
Ctrl+b "
Terminali yan yana bölebilirsin. Özellikle kodlama yaparken ve komut çıktısı izlerken çok işine yarar.
Ctrl+b %
Bu kısayol:
Örneğin:
Dikey bölmek için:
Ctrl+b %
tmux’un “pane” dediği şey, bir pencere içindeki bölünmüş terminallerdir.
Yani pencere → sekme gibi, panel → bölünmüş terminal ekranı gibidir.
Ekranda birden fazla panel varsa, aralarında geçiş yapmak çok önemlidir.
Ctrl+b o
Bu kısayol:
Bir pencereyi üçe böldüğünü düşün. O an aktif olan panelde değil, başka panelde komut çalıştırmak istersin:
Ctrl+b o
Bu şekilde pencerede dolaşırsın.
Bazı konfigürasyonlarda aşağıdaki gibi kullanabilirsin:
Ctrl+b ←
Ctrl+b →
Ctrl+b ↑
Ctrl+b ↓
Bu tuşlar yönüne göre panel geçişi yapar.
Kullanmadığın paneli kapatarak ekranda yer açabilirsin. Panel kapatıldığında, varsa çalışmakta olan işlem de kapanır.
Ctrl+b x
Aktif paneli kapatmak için:
tmux kill-pane
Üç panelin var, ortadaki fazla:
Ctrl+b o
Ctrl+b x
Ardından “y” tuşuna basarsın. Panel kapanır, diğer paneller ekranı paylaşır.
Tüm pencereyi kapatmak istersen ileride anlatacağımız “kill-window” komutunu kullanabilirsin.
tmux kullanırken bazen yaptığın işi bırakıp terminale dönmek isteyebilirsin. Oturumu kapatmak yerine “detach” ederek çalışmanı arka planda tutabilirsin. Böylece SSH bağlantısı kopsa bile süreçler çalışmaya devam eder.
Ctrl+b d
Bu kısayol:
tmux detach-client
Bir script çalıştırıyorsun:
tmux new -s backup
rsync -av /data /backup
Sonra terminale dönmek için:
Ctrl+b d
Bağlantın kesse bile tekrar bağlanabilirsin:
tmux attach -t backup
Bir işin tamamen bittiğinde, tmux oturumunu sonlandırmak istersin. Oturumu “kill” etmek, ilgili tüm pencereleri ve panelleri kapatır.
tmux kill-session -t oturumadi
Örneğin:
tmux kill-session -t backup
Bu komut:
Hiç isim belirtmezsen tüm oturumu kapatmak için:
exit
komutunu tmux içinde yazabilirsin.
tmux penceresinde önceki çıktıları görmek için kaydırma (scrollback) moduna geçersin. Özellikle log takip ederken çok faydalıdır.
Ctrl+b [
q
Bir komut çok uzun çıktı üretti. Geri dönmek için:
Ctrl+b [
Yukarı kaydır, çıktıyı incele, ardından “q” ile çık.
Varsayılan olarak 2000 satırlık buffer olur. Daha fazla scroll için .tmux.conf
dosyanda artırabilirsin:
set-option -g history-limit 10000
tmux içinde iki türlü komut çalıştırabilirsin:
Komut prompt’u, tmux’a tek satırlık komut yazmanı sağlar. Çok pratik bir özelliktir.
Ctrl+b :
Bu kısayol:
:
işaretiyle prompt açar.Yeni pencere açmak:
new-window
Pencereyi yeniden adlandırmak:
rename-window logs
Pencereyi adlandırmak için:
Ctrl+b :
rename-window mysql
tmux komutlarının çoğu prompt’tan çalıştırılabilir.
Bazen aynı komutları tüm panellere aynı anda yazmak istersin. Örneğin 3 farklı sunucuya aynı anda komut göndermek gibi. “Synchronize-panes” özelliğiyle tüm panellere tek seferde yazabilirsin.
Prompt üzerinden:
:setw synchronize-panes on
Varsayılan yok. Kendi .tmux.conf
dosyanda örneğin şöyle ekleyebilirsin:
bind s setw synchronize-panes
Sonra:
Ctrl+b s
3 panelin var. Hepsine aynı anda şunu çalıştırmak istiyorsun:
uptime
Önce synchronize aç:
Ctrl+b :
:setw synchronize-panes on
Sonra uptime
yaz. Tüm panellere aynı anda gider.
:setw synchronize-panes off
Çok dikkatli kullan. Tek tuşla yanlış komutlar tüm panellere gidebilir!
tmux oturumları içinde birden fazla pencere varsa, hangisinde ne çalıştığını görmek için pencere listesini görüntüleyebilirsin. Çok oturumlu çalışmalar için müthiş kullanışlıdır.
tmux list-windows
veya kısaltma:
tmux lsw
0: bash* (1 panes) [158x42] [layout b25e,158x42,0,0,0] @0 (active)
1: logs- (1 panes) [158x42] [layout b25e,158x42,0,0,1] @1
2: mysql- (2 panes) [158x42] [layout b25e,158x42,0,0,2] @2
Örneğin:
Listelemek için:
tmux list-windows
tmux’ta iki pencerenin yerini değiştirebilirsin. Özellikle oturum düzeni oluştururken çok işe yarar.
tmux swap-window -s 1 -t 2
Bu komut:
Örneğin:
Yerlerini değiştirmek için:
tmux swap-window -s 1 -t 2
Sonra tmux list-windows
ile kontrol edebilirsin.
Bir panelde çalışan işlem kapanırsa veya hataya düşerse, paneli yeniden başlatmak için respawn-pane
kullanabilirsin. Özellikle sık çalıştırdığın scriptler için faydalıdır.
tmux respawn-pane
Bir panelde sürekli log tail ediyorsun. Script kapandı. Paneli yeniden başlatmak için:
Ctrl+b :
respawn-pane
Bu, paneli sıfırdan başlatır.
Bir komut belirterek yeniden başlatabilirsin:
tmux respawn-pane -k -c "/var/log" "tail -f syslog"
.tmux.conf
dosyasında değişiklik yaptıysan, tmux’u kapatıp açmana gerek yok. “source-file” komutuyla ayarları anında yükleyebilirsin.
tmux source-file ~/.tmux.conf
Örneğin:
.tmux.conf
dosyasına aşağıdaki satırı ekledin:set -g mouse on
Sonra çalıştır:
tmux source-file ~/.tmux.conf
Mouse desteği hemen aktif olur.
.tmux.conf
içine ekle:
bind r source-file ~/.tmux.conf \; display-message "Config Reloaded!"
Sonra:
Ctrl+b r
tmux ekranındaki tüm çıktıyı kopyalayıp dosyaya yazabilirsin. Özellikle log yakalamak veya çıktıyı belgelemek için süperdir.
Aktif panelin çıktısını dosyaya yazmak:
tmux capture-pane -S -1000 \; save-buffer ~/mylog.txt
-S -1000
→ son 1000 satırı yakalar.save-buffer
→ buffer’ı dosyaya kaydeder.Örneğin:
tmux capture-pane -S -500 \; save-buffer ~/logs.txt
Sonra dosyayı inceleyebilirsin:
cat ~/logs.txt
Buffer’ı direkt ekranda görmek istersen:
tmux show-buffer
Bir paneli yeni bir pencereye taşımak istersen “break-pane” komutu kullanılır. Özellikle kalabalık panelleri temizlemek veya ayrı bir sekmeye taşımak için çok işe yarar.
Ctrl+b !
tmux break-pane
Bir pencerenin içinde 3 panelin var. Ortadaki paneli bağımsız yapmak için:
Ctrl+b o
Ctrl+b !
Artık o panel yeni bir pencereye taşınır.
Çoklu oturumlarda pencere isimlerini dinamik şekilde değiştirmek için küçük bir bash scripti yazabilirsin. Bu, özellikle otomasyon için çok kullanışlıdır.
#!/bin/bash
SESSION=$1
WINDOW_ID=$2
NEW_NAME=$3
tmux rename-window -t ${SESSION}:${WINDOW_ID} "${NEW_NAME}"
Örneğin “backup” oturumunun 2. penceresinin adını “sync_logs” yapmak için:
./rename_tmux_window.sh backup 2 sync_logs
Bu, otomasyonda çok zaman kazandırır.
Script’e execute izni vermeyi unutma:
chmod +x rename_tmux_window.sh
tmux’ta panellerin boyutunu istediğin kadar büyütüp küçültebilirsin. Özellikle monitörün küçükse veya belirli bir paneli genişletmek istiyorsan çok işine yarar.
Ctrl+b :
resize-pane -D 10 # aşağı 10 satır büyüt
resize-pane -U 10 # yukarı 10 satır küçült
resize-pane -R 20 # sağa 20 kolon büyüt
resize-pane -L 20 # sola 20 kolon küçült
Bir paneli sağa genişletmek:
tmux resize-pane -R 15
Bir panelde logları izliyorsun ve daha geniş görmek istiyorsun:
Ctrl+b :
resize-pane -R 30
Hazırlayan: [kazakherif]
Tarih: 2025-07-13
Amaç: tmux kullanarak terminalde daha verimli çalışmak ve komut satırı deneyimini ileri düzeye taşımak için en önemli komutları ve kısayolları paylaşmak.
tmux’un yeteneklerini genişletmenin en güzel yolu eklentiler (plugin) kullanmaktır. Bunun için en yaygın araç TPM (Tmux Plugin Manager)’dır. TPM sayesinde tmux’a yeni özellikler ekleyebilir, kısa yollar tanımlayabilir ve config yönetimini kolaylaştırabilirsin.
Önce TPM’yi klonla:
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
Örneğin:
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
run '~/.tmux/plugins/tpm/tpm'
Bu satırlar:
tmux çalışırken aşağıdaki kısayola bas:
Ctrl+b I
Bu komut:
tmux-resurrect
eklentisini eklemek istersen:
set -g @plugin 'tmux-plugins/tmux-resurrect'
Sonra:
Ctrl+b I
Bu eklenti, oturumu kaydedip geri yüklemene yarar.
Ctrl+b U
TPM kullanmak tmux’u bambaşka bir seviyeye taşır!
Çok pencere, çok panel ve karmaşık oturumlar kullanıyorsan, hepsini kaydedip geri yüklemek inanılmaz zaman kazandırır. tmux-resurrect eklentisi bunu yapar. Oturumunu olduğu gibi saklar, sonra tekrar aynı hâle getirir.
Önce TPM’yi kurmalısın (bkz. Madde 24). Sonra .tmux.conf’a ekle:
set -g @plugin 'tmux-plugins/tmux-resurrect'
Sonra yükle:
Ctrl+b I
Ctrl+b Ctrl+s
Bu kısayol:
Ctrl+b Ctrl+r
Bu kısayol:
Örneğin:
Önce kaydet:
Ctrl+b Ctrl+s
Bağlantın kopsa bile tekrar SSH ile girip geri yükle:
tmux attach
Ctrl+b Ctrl+r
Tüm düzenin geri gelir.