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
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 jest typowa dla wspomnianego systemu operacyjnego. W otwartym oknie
terminala wydajemy polecenie apt install tmux
. I już!
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 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ć.
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 oknaCtrl+b w
wybranie okna które będzie wyświetlone - Ctrl+b n
następne oknoCtrl+b p
poprzednie okno - Ctrl+b l
ostatnie oknoNadszedł 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 szybyCtrl+b %
dzielenie pionowe aktywnej szybyCtrl+b x
usuń szybęCtrl+b <strzałka>
przenieś kursor do sąsiedniej szyby. Kierunek określa <strzałka>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.