Tmux: Terminal Üzerinde Uzmanlaşmak


Özellikle *nix tabanlı işletim sistemi kullanan yazılımcılar olarak terminal ekranını kullanmayı seviyoruz. Gerek hakimiyet duygusunu arttırdığını, gerekse işleri kolaylaştırdığını soyleyebiliriz. Ancak bazı noktalarda terminal ekranlarıyla çalışmak fazla yorucu olabiliyor. Örneğin, kendi bilgisayarında bir SaaS projesini ayağa kaldırması gereken bir yazılımcı düşünelim. Minimum 3 ayrı servis çalıştırmalı. Bunlardan biri veritabanı, diğerleri ise back-end ve front-end servisleri. Ve bunları deamon modda (arka planda) çalıştıramaz, çünkü log çıktıları erişilebilir ve kolay okunabilir olmalı.


Bu gibi durumlarda en iyi çözüm terminal ekranını bölmek oluyor. Bunun için iki farklı yöntem kullanabiliyoruz aslında. Biri terminal ekranını oluşturan arayüzü bölerek iki ayrı terminali yanyana açmak, diğeri ise tek pencere içinde terminali bölümlere ayırmak. Uzun süre birinci çözüm için Deepin‘in terminal emülatörünü kullandım. Ancak daha sonra biraz değişiklik istememle beraber Tmux‘la tanıştım.


Tmux bahsettiğimiz ikinci çözümü sunuyor. Kısayollarıyla elleri klavyeden hiç kaldırmadan işlem yaptırmayı hedefliyor. Dolayısıyla alıştıktan sonra hızınızı katlayacağını söyleyebiliriz.


Ayrıca Tmux içinde oluşturduğunuz bölümlemeleri (Tmux terminolojisinde bunlara panes diyoruz) kaydediyor. Biz Tmux’u arka plana atıp (Bu işleme deatching deniyor) daha sonra aynı şekilde kendisine tekrar erişebiliyoruz.


Terminali bölmelere ayırdığı için, üzerinde çalıştığımız uzak sunucuya Tmux kurup (Çok uzakta olması gerekmiyor, aynı ağdaki Raspberry Pi için de geçerli) SSH üzerinden bağlantıktan sonra, o sistem üzerinde de birden fazla terminal oturumu ile çalışabiliriz.


Kurulum


Genelde tek komutla kurmak mümkün, kullandığınız işletim sisteminin/dağıtımın özelindeki kurulumu internetteki kısa bir aramanın ardından bulabilirsiniz.

  • Ubuntu ve türevleri için: sudo apt-get install tmux
  • Mac için: brew install tmux
  • Arch ve türevleri için: sudo pacman -S tmux


Başlayalım


Tmux’u kullanabilmemiz için onu başlatmamız gerekiyor. Bir terminal ekranı açıp tmuxkomutunu verirseniz Tmux’un açıldığını görebilirsiniz. Terminal ekranının altına yerleşen, yeşil ekranın sol tarafında o anda açık olan Tmux ekranlarını görebilirsiniz. Aynı şekilde ekranın sağ tarafında da sistem hakkındaki bazı bilgiler (tarih, saat vb.) bulunuyor.


Terminali Bölelim


Tmux’u ilk çalıştırdığınızda, bir pencere ve onun içinde tek bir terminal geliyor. Yani normal bir terminalden farkı yok, bize bir avantajı yok. İlk aksiyonumuzu alalım ve terminali yatayda ikiye bölelim. Tmux kısayollar üzerine kurulmuş bir yapıdır. Ancak kısayollar bir başka uygulamanın kısayoluyla çakışmasın diye bir ön-ek kısayolu kullanmamız gerekiyor. Tmux’da varsayılan ön-ek kısayolu C-b (C, CTRL’yi temsil ediyor). CTRL ile b tuşlarına aynı anda bastığımızda Tmux komut moduna geçiyor ve bizden kısayolu girmemizi beklemeye başlıyor.


Terminal ekranını yatayda ikiye bölmek için kullandığımız kısayol ise % (yüzde işareti). Dolayısıyla bizim ekranı yatayda ikiye bölmemiz için öncelikle C-b (CTRL+b) tuş kombinasyonuyla bir kısayol gireceğimizi belirtmemiz, daha sonrasında da yüzde işaretine basmamız gerekiyor.

Not: Bizim kullandığımız klavyelerde yüzde işareti de bir kısayola sahip. Dolayısıyla yüzde sembolünü, üst karakter tuşuna(Shift) basılı tutarak oluşturmamız lazım.



Artık ekranımızın yatayda ikiye başarıyla bölündüğünü görebilirsiniz. Aynı şekilde terminal ekranımızı dikeyde ikiye bölmek için de (tırnak işareti) kısayolunu kullanıyoruz. Tabii öncesinde ön-ek kısayolunu belirtmemiz gerekiyor. Yani tam kısayol komutumuz C-b " olacak. Şimdi sağ taraftaki bölmemizi de dikeyde ikiye bölelim.



Artık tek pencere içinde 3 terminal ekranımız var.


Bölmeler Arasında Gezinme


Oluşturduğumuz bölmeler arasında gezinmek için yön tuşlarını kullanabiliyoruz. Ama tabii öncesinde ön-ek kısayolumuzu girmemiz gerek. Bir üst bölmeye atlamak için C-b ↑ tuş kombinasyonunu kullanabilirsiniz. Aynı kombinasyon sol, sağ ve aşağı yönleri için de geçerli.


Bölmeyi Kapatmak


Herhangi bir bölme ile işimiz bittiği zaman, temel bash komutlarından olan exit komutunu vermemiz ya da yine temel kısayollardan olan Ctrl-d kısayolunu kullanmamız yeterli. Bu kısayoldan önce Tmux’un ön-ekini kullanmamıza gerek yok. Çünkü bu kısayol Tmux‘a ait değil.

Ekranlarla Çalışmak


Bir terminali nasıl bölmelere ayırabileceğimizi artık biliyoruz. Ancak bazı durumlarda yine birden fazla terminal ekranına ihtiyaç duyabiliriz. Çünkü genelde bir ekranı 4’ten fazla parçaya ayırınca bölmeler pek okunaklı olmuyor. Bu gibi durumlarda da yardımımıza Tmux ekranları yetişiyor. Daha önce screen yapısını kullandıysanız çok da yabancılık çekmeyeceksiniz.


Yeni bir ekran oluşturmak için kullandığımız kısayol *C-b c* yani yine ön-ek kısayolumuz olan CTRL-b kombinasyonunu kullanıyoruz. Daha sonrasında *c* tuşu ile *tmux* kısayolunu giriyoruz.


Yeni bir ekran oluştuğunu görebiliyoruz. Alt kısımdaki yeşil barın sol tarafında artık iki tane ekran olduğunu gösteriyor bize Tmux. İstersek bu ekranı da bölmelere ayırabiliriz.


Ekranlar arasında gezinmek, bir önceki ekrana dönmek veya bir sonrakine geçmek gibi işlemleri de kısayollarla halledebiliyoruz. Bir önceki ekrana dönmek için C-b p kısayollar bütününü kullanabiliriz. Burda p, previous’u temsil ediyor. Aynı şekilde next‘in kısaltması olan n kısayoluyla da bir sonraki ekrana gidebiliriz. C-b kısımının CTRL+b kısayolunu temsil ettiğini ve Tmux komutu vermeden önce bu kısayolu girmemiz gerektiğinden artık bahsetmeye gerek yok.


Ayrıca yeşil barın solunda, numaralarıyla beraber ekran isimleri de yazıyor. C-b <numara> şeklinde kısayolla direkt ilgili olan ekrana geçiş yapabilirsiniz.


Tmux Oturumları

Tmux’un aynı zamanda tüm konfigürasyonlarımızı kayıt edebildiğini ve arka planda çalışabildiğini söylemiştik. Bu özelliği kullanmak için detach‘ın kısaltması olarak d kısayolunu kullanabiliriz. C-b d komutunu verdiğimiz zaman normal terminalimize geri dönebiliyoruz. Arkaplana atılan tüm işlemlerin aynen devam ettiğini unutmayalım. Yani Tmux içinde çalıştırdığınız ve çalışmaya devam eden her işlem kaynak tüketmeye de devam edecektir.


Arka planda çalışan Tmux oturumlarını tmux ls komutuyla listeleyebiliyoruz.

tmux attach -t <numara> komutuyla da, ilgili oturumun numarasını vererek oturuma tekrar girebiliyoruz. Bu senaryoda bizim zaten tek bir oturumumuz olduğu için sadece tmux attach komutunu vermemiz de yeterli olacaktır.


Bitirirken

Tmux‘u sevdiyseniz ve tüm kısayollarını görebilmek istiyorsanız yine Tmux içinde *?* kısayolunu kullanabilirsiniz. C-b ? kombinasyonunu girdiğiniz zaman karşınıza Tmux’un tüm kısayollarını içeren doküman çıkacaktır.
Çok kullanılan ve sizin de işinize yarayabilecek birkaç kısayol;

  • C-b z : O anda imlecinizin olduğu terminal bölümünü tam ekran yapar. Tekrar aynı kısayolu kullanmanız durumunda eski boyutlarına geri döner.
  • C-b C-<yön tuşu> : İmlecin bulunduğu bölümün boyutunu belirttiğiniz yönde genişletir/daraltır.
  • C-b , : Çalıştığınız ekranı yeniden isimlendirmenizi sağlar.

Kaynak

Leave a comment