Szaleństwem jest robić wciąż to samo i oczekiwać różnych rezultatów.

Albert Einstein

Autor narzędzia opisuje je jako mnożnik terminali. Prostymi słowami w jednym fizycznym oknie możemy mieć otwartych wiele okien terminali i dzielić obszar fizycznego okna pomiędzy terminale według naszych preferencji. To główna z funkcjonalności. Dodatkowo otrzymujemy zarządzanie utworzonymi sesjami i jest to równie istotne jak możliwość obsługi wielu terminali.

Wszystkie utworzone w tmux terminale przypisywane są do tworzonej przez tmux sesji. Odłączenie się od sesji, czy też zerwanie połączenia internetowego nie ma wpływu na wykonywane w terminalach zadania. Innymi słowy sesję możesz opuścić w dowolnej chwili bez zamykania aktywnych w niej procesów. Wygodne? Pewnie, że wygodne i do tego przydatne! Ta funkcjonalność oszczędziła mi wiele czasu i nerwów. Jeśli masz doświadczenia związane z pracą po SSH z pewnością wiesz o czym mówię i dostrzegasz potencjał związany z omawianym narzędziem. Przykładowe korzyści: utrata połączenia przestaje być problemem, a na wlekące się wieczność procesy możesz utworzyć osobny terminal, rozłączyć się i wrócić po później. Zyskujesz elastyczność i czas.

Jeśli jeszcze nie jesteś przekonany czy używać tmux

to pozwól, że wymienię moim zdaniem najważniejsze zalety: - wspomniana obsługa sesji: odpinanie i dopinanie się do sesji znacznie usprawni pracę ze zdalnymi hostami i pomoże Ci utrzymać higienę w terminalach - niezależność od platformy: chyba każda dystrybucja linuxa go posiada, a także wiele projektów open source wspiera to narzędzie - możliwość konfiguracji i dostosowania narzędzia do własnych potrzeb

Zacznijmy

Wszystkie instrukcje jakie zobaczysz w dalszej części artykułu działają w Debian 10 "Buster". To system którego głównie używam i na nim przeprowadzałem testy. Jak w każdym nowym narzędziu Twym najlepszym przyjacielem będzie wbudowana pomoc. Listę wszystkich możliwości narzędzia uruchomisz kombinacją Ctrl-b ? wewnątrz nowej sesji o czym za chwilę.

Instalacja

Instalacja jest typowa dla wspomnianego systemu operacyjnego. W otwartym oknie terminala wydajemy polecenie apt install tmux. I już!

Uruchomienie

Do uruchomienia pierwszej sesji napisz po prostu w terminalu tmux. Utworzysz nową sesja z jednym nowym oknem wypełnionym terminalem. Spód ekranu zdobi istotny element multipleksera: śliczny pasek ze statusem. Pasek ten możesz dopasować do swoich preferencji, a jego domyślna wersja zawiera nazwę sesji w nawiasach klamrowych, ponumerowaną listę terminali zawartych w sesji, oraz po prawej nazwę hosta, godzinę i datę.

Sesje

Sesje potrafią być bardzo pomocne w organizowaniu pracy. Możesz swoje zadania podzielić na przykład według kontekstu. Odkrycie najlepszej drogi pozostawiam Tobie. Domyślnie tmux samodzielnie nadaje nazwy sesjom. Nazwy domyślne niewiele mówią i warto wykonać wysiłek i nazywać sesje samodzielnie. Program może być uruchomiony na przykład komendą tmux new -s NAZWA_SESJI by tworzona sesja miała zadaną nazwę.

Listę wszystkich sesji tmux możemy podejrzeć na ekranie za pomocą komendy tmux ls.

Od istniejącej sesji możesz się odłączyć wpisując w terminalu sesji tmux detach. Alternatywnie użyj kombinacji klawiszy Ctrl+b d by osiągnąć ten sam efekt. W przypadku incepcji tmux uruchomiony wewnątrz innej sesji tmux kombinacja klawiszy musi tę incepcję naśladować. Opisany przypadek wymaga wykonania Ctrl+b Ctrl+b d.

Podłączenie do istniejącej sesji to wydanie polecenia tmux attach-session -t NAZWA_SESJI.

Wiesz już wiele o sesjach. Ostatnie co może Ci się przydać na tym etapie to umiejętność zmiany nazwy sesji. Do tego służy tmux rename-session -t STARA_NAZWA NOWA_NAZWA.

Używanie sesji to jedna z najważniejszych funkcji całego narzędzia. Potrenuj je, opanuj je i ciesz się z możliwości jakimi Cię obdarują. Możesz za ich pomocą wykonać o wiele więcej niż napisałem w tym krótkim poradniku, lecz to co przeczytałeś jest w zupełności wystarczające by zacząć z nich efektywnie korzystać.

Praca z oknami

Okna są niczym innym jak wirtualnymi terminalami. To podstawa codziennej i wygodnej pracy. Kilka praktycznych skrótów klawiszowych:

  • Ctrl+b c stworzenie nowego wirtualnego okna
  • Ctrl+b w wybranie okna które będzie wyświetlone - Ctrl+b n następne okno
  • Ctrl+b p poprzednie okno - Ctrl+b l ostatnie okno

Dzielenie szyby (ang. panes)

Nadszedł czas byśmy poczuli czym jest "pane". Po uruchomieniu tmux's program uruchomi się z jednym oknem i jedną szybą (ang. pane) w środku. Możemy ową "szybę" dzielić według naszych preferencji, by w jednym oknie zmieścić wiele wirtualnych terminali. Przydatne skróty klawiaturowe:

  • Ctrl+b " dzielenie poziome aktywnej szyby
  • Ctrl+b % dzielenie pionowe aktywnej szyby
  • Ctrl+b x usuń szybę
  • Ctrl+b <strzałka> przenieś kursor do sąsiedniej szyby. Kierunek określa &ltstrzałka&gt

Zmiana rozmiaru szyb (*ang. panes*)

Możliwość dzielenia szyb to błogosławieństwo, jednak ten zawsze dzieje się na pół. W pewnych okolicznościach może to być mocno irytujące. Szczęśliwie dla użytkowników to właśnie oni sprawują kontrolę nad rozmiarem. Wprawdzie domyślnie nie istnieje żaden wygodny skrót klawiaturowy, jednak zastanówmy się jak często edytujemy rozmiar? Ja robię to bardzo rzadko. Raz ustawione okno często pozostaje niezmienne przez długi okres czasu.

By zmienić rozmiar szyb wykonujemy szereg instrukcji. Przede wszystkim używamy kombinacji Ctrl+b : by wejść do linii poleceń tmux. Zauważysz zmianę na dole ekranu. Teraz musimy skorzystać z komendy resize-pane -[D, U, L, R] [KROK]. Przykład pełnej komendy to resize-pane -D 10. W jej wyniku aktywna szyba zostanie powiększona w dół o 10 linii. Domyślasz się zapewne do czego służą pozostałe litery D/U/L/R.

Artykuł dodano 2020-03-12