Multiplekser terminala – tmux

Niedawno opisywaliśmy polecenie screen – od lat używane do zarządzania wirtualnymi konsolami. Jako uzupełnienie tego tematu warto wspomnieć również o innym programie, który zaprojektowany został w ramach projektu BSD jako unowocześniony odpowiednik screena – tmux (skrót od terminal multiplexer).

Podobnie jak jego poprzednik, tmux pozwala nam ponownie się połączyć do utraconej sesji ssh, dołączyć innego użytkownika do utworzonej okna, czy też pomóc w zarządzaniu długo trwającymi skryptami. Dodatkowo możemy skorzystać z opcji podziału okna na kilka terminali i zarządzać na ekranie jednocześnie kilkoma programami na raz. Co ciekawe w Red Hat Enterprise od wersji 8 tmux jest używany jako domyślny zamiast screena.

Instalacja

Instalacja programu nie powinna stanowić problemu, ponieważ od dłuższego czasu tmux znajduje się w repozytoriach większości dystrybucji. Dla dystrybucji Debian lub Ubuntu będzie to więc polecenie:

apt install tmux

W przypadku pozostałych dystrybucji oraz innych metod instalacji, możemy zapoznać się ze szczegółowymi informacjami, zamieszczonymi na stronie wiki projektu: https://github.com/tmux/tmux/wiki/Installing.

Kilka podstawowych komend:

Podstawowe uruchomienie programu następuje po wpisaniu komendy tmux.

$ tmux

Wylistowanie uruchomionych sesji tmux:

$ tmux ls

Połączenie z ostatnio utworzoną sesją:

$ tmux a

Wyjście z sesji i pozostawienie jej w tle:

ctrl + b oraz d

Dla ułatwienia orientacji w utworzonych sesjach możemy nadawać im nazwy, np.:

tmux new -s “aktualizacja systemu”

tmux new -s “zdalna konsola”

Sesje będą teraz łatwo rozpoznawalne przy listowaniu, a te bez nadanych nazw będą oznaczone kolejnym numerem:

$ tmux ls
2: 1 windows (created Wed Mar 17 13:15:57 2021)
aktualizacja systemu: 1 windows (created Wed Mar 17 13:12:50 2021)
zdalna konsola: 1 windows (created Wed Mar 17 13:13:06 2021)

Aby podłączyć się do sesji oznaczonej nazwą wpiszemy więc polecenie:

$ tmux a -t “aktualizacja systemu”

Analogicznie dla sesji bez nazwy użyjemy po prostu jej numeru:

$ tmux a -t 2

Bardziej zaawansowane funkcje

Podczas uruchamiania sesji możemy jednocześnie podać komendę do wykonania, na przykład jednocześnie uruchomić program top.

$ tmux new -s “top” top

Aby sesja od razu uruchomiła się w tle wystarczy dodać do polecenia opcję -d:

$ tmux new -d -s “top” top

W przypadku kiedy chcemy przewinąć listę wyników do poprzednich ekranów należy użyć skrótu Ctrl+b oraz klawisza [. Od tej pory możemy klawiszami PgUp i PgDown przewijać ekran w górę i w dół, a w prawym górnym rogu pojawi się miejsce w linijkach gdzie jesteśmy.

Ekran sesji tmux możemy bez problemu podzielić na kilka mniejszych paneli. Za pomocą kombinacji klawiszy Ctrl+b oraz % podzielimy obraz pionowo, a Ctrl+b oraz (podwójny cudzysłów) poziomo. Efekt można zobaczyć poniżej.

Aby poruszać się między panelami używamy kombinacji klawiszy Ctrl+b oraz [strzałka] w kierunku zmiany lub Ctrl+b oraz o aby przechodzić po kolei do następnych paneli. Aktywny panel podświetlony jest na zielono. Aby zmienić wielkość paneli o jeden znak używamy kombinacji Ctrl+b oraz Ctrl+[strzałka], aby zmienić wielkość o 5 znaków Ctrl+b oraz Alt+[strzałka].

Aby ubić działającą sesję bez konieczności jej otwierania i zamykania poleceniem exit (np. zdalnym poleceniem) możemy wykorzystać polecenie kill-session i podać identyfikator sesji.

$ tmux kill-session -t “aktualizacja systemu”

Otwarta sesja może również posiadać kilka otwartych okien, aby uruchomić nowe należy użyć kombinacji Ctrl+b oraz c. Poruszać się między oknami można za pomocą Ctrl+b oraz cyfr od 0 do 9 aby przejść do konkretnego okna. Przechodzić można również bezpośrednio do następnego okna kombinacją Ctrl+b oraz n lub przy pomocy Ctrl+b oraz l (małe L) do poprzedniego.

W każdym oknie możemy przejść do linii poleceń, gdzie można wydawać polecenia tmux bezpośrednio. Używamy do tego kombinacji Ctrl+b oraz : [dwukropek]. W dolnym pasku stanu pojawi się możliwość wpisania polecenia – możemy tam na przykład wpisać polecenie ls by zobaczyć listę aktywnych sesji tmux, czy też new-window ‘vi ~/.tmux.conf’ aby utworzyć nowe oknto i rozpocząć edycję pliku konfiguracyjnego tmux w edytorze vi.

Lista funkcji oraz możliwości konfiguracji tmux są naprawdę szerokie i ciężko by było je wszystkie tutaj opisać. Jednak aby rozpocząć z nim pracę i porównać do standardowego “screena” powinno wystarczyć.

Pełną listę możliwości możemy zobaczyć na stronie manuala.
Strona projektu: https://github.com/tmux/tmux/wiki

2 komentarze
Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Poprzedni post

Warzone 2100 – wersja 4.0.0-beta1 gotowa do testów

Następny post

Trzy wtyczki WordPressa, które ułatwią migrację strony na nowy hosting

Powiązane posty
suse manager

SUSE Manager dostępny w chmurach publicznych

Warszawa, 12 sierpnia 2015 r. - Narzędzie SUSE Manager do zarządzania serwerami Linux jest już dostępne w chmurach publicznych w ramach programu "bring-your-own-subscription". Program ten umożliwia klientom przeniesienie wykorzystywanych w swojej organizacji abonamentów na oprogramowanie SUSE Manager do publicznych chmur udostępnianych przez dostawców mających status SUSE Certified Cloud Service Providers, takich jak Amazon Web Services (AWS), Google Compute Engine i Microsoft Azure.

Więcej...
kde plasma mobile

Plasma Mobile – KDE dla smartfonów

Społeczność KDE ogłosiło wydanie Plasma Mobile - wolnej (jak wolność), przyjaznej dla użytkownika, dbającej o prywatność  oraz konfigurowalnej platformy dla urządzeń mobilnych. Plasma Mobile obecnie jest już rozwijane na działającym prototypie pozwalającym na korzystanie z podstawowych funkcji smartfona.

Głównym celem Plasma Mobile jest danie użytkownikowi pełnej obsługi urządzenia i zostały zaprojektowany tak aby wspierać wszystkie rodzaje aplikacji. Natywne aplikacje są tworzone przy użyciu Qt, jednakże również będą wspierane napisane w GTK, dla Androida, Ubuntu Touch oraz wiele innych - o ile pozwoli na to licencja oraz poziom techniczny aplikacji. Projekt rozwijany jest na wolnych licencjach GPL i LGPL - zgodnie z polityką KDE.

Więcej...