# önder online
Teknoloji ve siber güvenlik dünyasına hoş geldiniz Güncel siber tehditler ve korunma yöntemleri Yapay zekâ ve otomasyonun güvenliğe etkileri Microsoft 365 ve Active Directory güvenlik rehberleri Yazılım geliştirmede güvenlik odaklı yaklaşımlar Teknoloji ve siber güvenlik dünyasına hoş geldiniz Güncel siber tehditler ve korunma yöntemleri

Menu

tmux (Terminal Multiplexer) kullanımı

tmux (Terminal Multiplexer) kullanımı

tmux (Terminal Multiplexer) kullanmanın en güçlü ve tam olarak neden var olduğunu gösteren harika bir örnektir.

tmux (Terminal Multiplexer) kullanmanın en güçlü ve tam olarak neden var olduğunu gösteren harika bir örnektir.

uygulamada  iki temel güç yatıyor: Terminal Bölümleme (Panes) ve Oturumun Arka Planda Yaşamaya Devam Etmesi (Session Persistence).

Sürecin nasıl çalıştığını ve bunu kendi bilgisayarında nasıl kuracağını adım adım inceleyelim.

1. Bilgisayarı Kapatınca Her Şey Nasıl Kaybolmuyor? Normalde terminalde bir işlem çalıştırıp terminali kapattığında, o işlemle birlikte her şey sonlanır. Ancak tmux bir istemci-sunucu (client-server) mimarisiyle çalışır.

Siz terminali açıp tmux başlattığınızda arka planda gizli bir tmux sunucusu başlar.

Terminal penceresini kapatsanız, SSH bağlantınız kopsa, hatta (eğer uzak bir sunucuda çalışıyorsanız) internetiniz gitse bile arka plandaki o sunucu ve onun içinde çalışan Grok, testler veya loglar çalışmaya devam eder.

Geri geldiğinizde tek bir komutla (tmux attach) kaldığınız yere kaldığı saniyeden bağlanırsınız.

⚠️ Önemli Not (Yerel Bilgisayar vs. Uzak Sunucu):

Eğer bu işlemleri kendi kişisel bilgisayarında (Local) yapıyorsan ve bilgisayarını tamamen kapatırsan (shut down), bilgisayarla birlikte tmux sunucusu da kapanır ve süreçler sıfırlanır. Bilgisayarı kapatıp gitme senaryosunun çalışması için iki durum gerekir:

Bu işlemlerin senin bilgisayarında değil, uzaktaki bir sunucuda (VPS/AWS vb.) çalışıyor olması (bilgisayarını kapatsan da sunucu açık kalır).

Veya kendi bilgisayarını kapatmak yerine uyku moduna (sleep/hibernate) alıyor olman. Eğer tamamen kapatmak ama yine de her şeyi kurtarmak istiyorsan, aşağıda bahsedeceğim tmux-resurrect eklentisini kullanmalısın.

2. İstediğin Düzeni Kurmak (Adım Adım) Bahsettiğin 4 bölmeli düzeni kurmak için terminalde tmux başlattıktan sonra şu adımları (ve kısayolları) izleyebilirsin:

Not: tmux komutlarında önce bir "tetikleyici" tuş kombinasyonuna basılır (Varsayılan olarak Ctrl + b), ardından yapmak istediğiniz işlemin tuşuna basılır. Aşağıda bu tetikleyiciye Prefix diyeceğiz.

Bölme Düzenini Oluşturma Terminali aç ve yeni bir oturum başlat:

Bash
tmux new -s yazilim-oturumu
Ekranı dikey olarak ikiye böl (Sol ve Sağ):

Prefix (Ctrl + b) tuşlarına bas, elini çek, ardından % tuşuna bas.

Sol bölmeyi yatay olarak ikiye böl (Üst-Sol ve Alt-Sol):

Sol bölmeye geçmek için Prefix ve Sol Ok tuşuna bas.

Ekranı yatay bölmek için Prefix yaptıktan sonra " (çift tırnak) tuşuna bas.

Sağ bölmeyi yatay olarak ikiye böl (Üst-Sağ ve Alt-Sağ):

Sağ bölmeye geçmek için Prefix ve Sağ Ok tuşuna bas.

Yatay bölmek için yine Prefix yaptıktan sonra " tuşuna bas.

Şu an tam olarak istediğin 4 bölmeli (grid) yapıya sahipsin!

3. Bölmeleri Görevlendirme Her bir bölmeye geçmek için Prefix tuşuna basıp yön oklarını kullanabilirsin. Bölmelere geçip şu komutları/araçları çalıştırabilirsin:

 Bölme (Grok - Kod Yazma): Burada favori terminal kod editörünü (örneğin nvim, vim veya nano) açıp kod yazabilirsin.

Bölme (Hata Ayıklama - Open Code): Kod analizi yapacağın, hata çıktılarını inceleyeceğin veya terminal tabanlı bir debugger çalıştıracağın alan.

Bölme (Testler): Test suite'ini otomatik çalıştıran bir script (örneğin sürekli izleme modunda çalışan npm test veya pytest -f) bırakabilirsin.

Bölme (Sunucu Günlükleri): Sunucu loglarını canlı akarken izlemek için tail -f server.log veya Docker kullanıyorsan docker logs -f app komutunu çalıştırabilirsin.

4. Ayrılma (Detach) ve Geri Dönme (Attach) Düzenini kurdun, işlerin akıyor. Şimdi bilgisayarın başından kalkacaksın:

Oturumdan Güvenle Ayrıl (Detach):

Prefix (Ctrl + b) yaptıktan sonra sadece d tuşuna bas.

Terminal ekranın normale dönecek ve [detached (from session yazilim-oturumu)] yazacak. Artık terminali kapatabilir, bilgisayarını uykuya alabilirsin.

1 Saat Sonra Geri Geldin (Attach):

Terminalini tekrar aç ve şu komutu yaz:

Bash
tmux attach -t yazilim-oturumu
BUM! 4 bölmen, çalışan logların, yarım kalan kodun tam bıraktığın saniyedeki haliyle karşında.

İpucu: tmux-resurrect ile Güvenlik Eğer kendi bilgisayarını kullanıyorsan ve gerçekten tamamen kapatman gerekiyorsa (yani işletim sistemi yeniden başlayacaksa), tmux sunucusu da kapanacağı için normal şartlarda süreçler gider.

Bunu önlemek için tmux-resurrect adlı bir eklenti (plugin) kullanılır. Bu eklenti:

Bilgisayarı kapatmadan önce Prefix + Ctrl + s ile tüm pencerelerini, bölmelerini ve hangi bölmede hangi komutun çalıştığını kaydeder.

Bilgisayarı açtıktan sonra Prefix + Ctrl + r ile her şeyi (bölme düzenlerini ve çalışan programları) tek saniyede geri yükler.

Alternatifler :

tmux bu alanın endüstri standardı ve en bilineni olsa da, yalnız değil. Özellikle son yıllarda geliştirilen, kullanımı çok daha kolay ve modern alternatifler var. İhtiyacına göre seçebileceğin en iyi alternatifleri aşağıda listeledim:

1. Zellij (En Güçlü ve Modern Alternatif) Şu an tmux'a karşı en büyük rakip Zellij'dir. Rust programlama dili ile yazılmıştır ve tmux'un o meşhur "dik öğrenme eğrisini" (ezberlenmesi gereken zor kısayolları) tamamen ortadan kaldırır.

Avantajları: Açtığın an alt kısımda hangi tuşun ne işe yaradığını gösteren harika bir arayüzle gelir. Kısayol ezberlemene gerek kalmaz.

Senin Senaryon İçin Harika Bir Özelliği: Zellij'de "Layouts" (Düzenler) adında bir sistem vardır. Bir metin dosyasına "Ekranı 4'e böl, 1. bölmede nvim aç, 2. bölmede sunucuyu başlat, 3. bölmede logları izle" şeklinde komutlar yazabilirsin. Zellij'i başlattığın an senin o 4'lü düzenini otomatik olarak kurup çalıştırır.

Oturum Yönetimi: Tıpkı tmux gibi arka planda çalışmaya devam eder (detach/attach).

2. Byobu (Kullanıcı Dostu Yaklaşım) Eğer tmux'un gücünü istiyor ama Ctrl+b gibi garip kısayollarla uğraşmak istemiyorsan, Byobu harika bir köprüdür.

Nasıl Çalışır: Byobu aslında sıfırdan yazılmış bir araç değildir; arka planda tmux (veya Screen) kullanır ama onun üzerine çok daha renkli, durum çubukları olan (saat, işlemci sıcaklığı, bellek durumu vb. gösteren) ve kullanımı kolay bir "makyaj" çeker.

Kullanımı: F2 ile yeni pencere açar, F3 ve F4 ile pencereler arası gezer, Shift+F2 ile ekranı bölersin. Normal bilgisayar kullanıcısı alışkanlıklarına çok daha yakındır.

3. GNU Screen (Eski Toprak) tmux'un atasıdır. Neredeyse 35 yıllıktır.

Neden Kullanılır: Eğer çok eski bir sunucuya bağlanıyorsan ve hiçbir şey kurma yetkin yoksa, sistemde büyük ihtimalle screen yüklü olarak gelir.

Dezavantajı: Ekranı bölme (split) özellikleri tmux veya Zellij kadar yetenekli ve esnek değildir. Günümüzde genellikle sadece uzun sürecek bir komutu arka planda bırakmak için tercih edilir.

4. Terminal Emülatörlerinin Kendi Bölme Özellikleri (WezTerm, Warp, iTerm2) Eğer bu işlemleri uzak bir sunucuda (SSH ile) yapmıyorsan, sadece kendi Mac/Linux/Windows bilgisayarında görsel bir düzen arıyorsan modern terminal uygulamalarını kullanabilirsin.

Nasıl Çalışır: Bu uygulamalar terminal pencereni kendi içlerinde sekmelere ve bölmelere ayırmana olanak tanır. Fare ile bile bölümleri boyutlandırabilirsin.

Dezavantajı: Bu uygulamaları tamamen kapattığında tüm süreçler sıfırlanır. Yani tmux ve Zellij'deki "arka planda yaşamaya devam etme" (daemon) özelliği bunlarda yoktur.

Özetle: gelişmiş 4'lü düzeni kurmak ve arka planda yaşatmak için şu an piyasadaki en modern, göze en hoş gelen ve öğrenmesi en kolay alternatif kesinlikle Zellij'dir.