Tmux - zabawa z oknami i sesjami
Z artykułu Tmux - zabawa z dzieleniem terminala wiemy już jak możemy podzielić terminal na kilka pseudoterminali i uruchamiać w nich procesy czy jednocześnie wyświetlać informacje. Tym razem zajmijmi się oknam i podstawowymi funkcjami sesji w Tmux. De facto jak dzieliliśmy terminal w poprzednim artykule to wszystkie te podziały były wykonywane w ramach jednego okna o numerze 0 i jednej sesji o nazwie 0. Jestem ciekawy czy zauważyliście to w lewym dolnym rogu terminala jak nie to zaraz Wam to pokażę.
Odpalmy tmux i zobaczmy czy tak jest.
tmux
Jest tak jak powiedziałem. Brawo ja :)
Spróbujmy utworzyć kolejne okno, a przy tej okazji nauczymy się jak to zrobić. Jak pamiętamy najważniejszym skrótem w tmux jest control + b który będzie do tego niezbędny. Zatem utworzymy nowe okno za pomocą następującej kombinacji klawiszy:
control + b oraz c
I jak wygląda teraz nasz tmux?
Jak widzimy mamy teraz 2 okna o numerach 0 i 1. Okno aktywne zaznaczone jest gwiazdką. Nauczymy się jak przełączać się pomiędzy oknami. Aby przejść do następnego okna wystarczy użyć skrótu:
control + b oraz n
Z kolei powrót do poprzedniego to:
control + b oraz p
Gdybyśmy mieli otwartych bardzo wiele okien najłatwiej skoczyć do konkretnego numeru:
control + b oraz numer
Nic trudnego czyż nie? Zauważyliście, że okna 0 i 1 nazywają się bash? To dlatego, że domyślnie przyjmują nazwy uruchomionego programu. Gdy odpalimy na jednym z okien top, a na drugim vim to zmienią sie nazwy.
Jeżeli chcemy konkretne okno przezwać wystarczy na aktywnym wykonać kombinacje klawiszy:
control + b oraz ,
a następnie podać naszą nazwę dla przykładu zmienimy vim na editor i efekt będzie wyglądał tak:
No może na zakończenie tematu okien jeszcze jedna rzecz: jak wyświetlić listę wszystkich okien? Bardzo prosto.
control + b oraz :list-windows
Przejdźmy teraz do sesji. Możemy rozpocząć wiele sesji. Uruchomienie tmux bez argumentów uruchamia domyślną o nazwie 0. Jeśli chcesz, aby sesja miała określoną nazwę, użyj polecenia:
tmux new -s session
session to nasza nazwa sesji.
Czego efektem będzie:
Teraz 2 najważniejsze funkcje sesji czyli możliwość odłączenia się od niej i ponownego przyłączenia. Uruchomiliśmy tmux, wystartowaliśmy jakiś proces na oknie i chcemy aby działał w tle, a my odłączamy się od sesji, pozostawiając procesy dalej będą uruchomione. Aby tak się stało wystarczy użyć:
control + b oraz d
Ekran terminala po starcie naszej sesji o nazwie session i odłączeniu się od niej będzie wyglądał mniej więcej tak:
aciek@nielot:~$ tmux new -s session
[detached (from session session)]
Aby połączyć się ponownie z ostatnią sesją wytarczy wykonać polecenie
tmux a
lub jeżeli chcemy połączyć się z konkretną sesją np. naszą sesją o nazwie session wykonujemy polecenie:
tmux a -t session
czego efektem będzie połączenie z sesją session.
A teraz chciałbym pokazać ostatnią rzecz na dzisiaj czyli jak zobaczyć uruchomione sesje w oknie terminala. Jest to bardzo łatwe do wykonania. Wystarczy będąc połączonym w jednej z uruchomionych sesji wykonać sekwencję:
control + b oraz s
Jeżeli będzie więcej niż jedna sesja terminal będzie wyglądał na podobieństwo tego poniżej i będzie można poruszać się kursorem, a na dole będą pokazane miniatury okien w danej sesji, a po akceptacji połączymy się z nią.
No to mamy już wiedzę na temat sesji, okien jak i paneli w Tmux i umiemy się po nich poruszać. Umiemy uruchomić procesy, odłączyć się od sesji, a następnie ponownie do nich połączyć. To świetne narzędzie i ręczę słowem, że ma jeszcze wiele do odkrycia, a to co wiemy to zaledwie podstawy a już te dają nam już sporo możliwości. Bawcie się dobrze przy odkrywaniu kolejnych.
Ave :)