Jak korzystać z tmux w systemie Linux (i dlaczego jest lepszy niż ekran)

Opublikowany: 2022-01-29
Stylizowany terminal Linux na laptopie z sesjami powłoki w tle.
fatmawati achmad zaenuri/Shutterstock.com

Polecenie tmux w systemie Linux jest multiplekserem terminala, takim jak screen . Jego zwolennicy są liczni i głośni, więc postanowiliśmy porównać obie. Czy tmux jest naprawdę lepszy, czy jest to tylko przypadek preferowania tego, co znasz?

tmux a ekran

Zarówno polecenia tmux , jak i GNU screen są multiplekserami terminala. Pozwalają mieć wiele okien w jednym oknie terminala i przeskakiwać między nimi. Okno można podzielić na panele, z których każdy daje niezależną linię poleceń.

10 podstawowych poleceń systemu Linux dla początkujących
POWIĄZANE 10 podstawowych poleceń systemu Linux dla początkujących

Możesz także odłączyć sesję i stanie się ona bezgłową jednostką działającą w tle — możesz nawet zamknąć okno terminala, które ją uruchomiło. Kiedy będziesz gotowy, możesz otworzyć nowe okno terminala i ponownie dołączyć wciąż działającą sesję. Możesz to również zrobić przez połączenie SSH.

Możesz odłączyć sesję na jednym komputerze, wrócić do domu i zalogować się na komputerze zdalnym. Po ponownym połączeniu możesz ponownie dołączyć sesję w tle i ponownie z niej korzystać interaktywnie.

Co to jest polecenie na ekranie?

Polecenie screen jest również multiplekserem terminala i zawiera mnóstwo opcji. Aby uzyskać szczegółowe informacje na temat wszystkiego, co możesz z nim zrobić, zapoznaj się z naszym szczegółowym artykułem.

Reklama

Tym razem skupimy się na tmux . W dalszej części wspomnimy, jak screen obsługuje tę samą funkcję lub funkcję.

Tylko jedna rzecz nas denerwowała w przypadku screen . Omówimy to, kiedy do tego dojdziemy i zobaczymy, czy tmux wypada lepiej.

POWIĄZANE: Jak korzystać z polecenia ekranowego systemu Linux

Instalowanie tmux

Chociaż screen jest zazwyczaj domyślnie instalowany w popularnych dystrybucjach Linuksa, tmux nie. Aby zainstalować tmux na Ubuntu, wpisz:

 sudo apt-get zainstaluj tmux 

Na Manjaro możesz użyć pacman :

 sudo pacman -Sy tmux 

W Fedorze 31 tmux jest już zainstalowany.

Rozpoczęcie sesji tmux

Aby uruchomić tmux , po prostu wpisz go i naciśnij Enter:

 tmux 

Okno terminala pokaże pasek stanu, gdy jesteś w sesji tmux .

Po prawej stronie paska stanu wyświetlana jest nazwa hosta oraz godzina i data. Po lewej stronie wyświetlane są następujące informacje związane z sesją:

  • [0]: To jest nazwa sesji. Domyślnie są ponumerowane, zaczynając od zera. Poniżej omówimy, w jaki sposób możesz nadać znaczące nazwy sesjom.
  • 0:bash*: 0 wskazuje, że jest to pierwsze okno w tej sesji. Jedynym uruchomionym w tej sesji procesem jest bash . Jeśli uruchomisz program, jego nazwa pojawi się tutaj. Gwiazdka (*) oznacza, że ​​jest to okno, na które patrzysz. Za każdym razem, gdy tworzysz nowe okno w sesji tmux , jego numer okna i nazwa uruchomionego w nim programu są dodawane do paska stanu.

Polecenie screen domyślnie nie wyświetla paska stanu. Musisz latać na ślepo i polegać na swoim sprycie, aby wiedzieć, co się dzieje, co wymaga trochę praktyki. (O ile nie skonfigurujesz własnego paska stanu).

Plusem jest to, że nie stracisz linii terminalu nieruchomości okiennych. Oczywiście normalnie rozszerzyłbyś okno terminala, aby korzystanie z multipleksera terminala było opłacalne. W takim przypadku utrata jednej linii paska stanu nie stanowi większego problemu. Zostawiliśmy tutaj obrazy okien terminala w domyślnym rozmiarze, dzięki czemu można zobaczyć informacje.

Reklama

Polecenia są wydawane tmux za pomocą naciśnięć klawiszy i są na to dwie części. Najpierw naciśnij Ctrl+B, aby zwrócić uwagę tmux . Następnie szybko naciskasz następny klawisz, aby wysłać polecenie do tmux . Polecenia wydawane są przez naciskanie liter, cyfr, znaków interpunkcyjnych lub klawiszy strzałek.

Tak samo jest w screen , z tą różnicą, że naciskasz Ctrl+A, aby zwrócić jego uwagę.

Aby zamknąć okno, naciśnij Ctrl+B, a następnie szybko naciśnij X. Pasek stanu zmieni kolor na bursztynowy. Następnie zostaniesz poproszony o potwierdzenie, że chcesz zabić okno.

Naciśnij Y, aby zamknąć okno lub N, jeśli zmienisz zdanie. Nie musisz później naciskać Enter; Y lub N wystarczy, aby zarejestrować swój wybór.

Jeśli naciśniesz Y, okno się zamknie. Ponieważ jest to jedyne okno w tej sesji, sesja zostaje zakończona.

Sesja tmux zostaje zamknięta i wracasz do wiersza poleceń, z którego uruchomiłeś tmux . Zobaczysz „[exited]” w oknie terminala.

Reklama

Może się wydawać, że to stwierdzenie oczywiste, ale jest to potwierdzenie, że zamknąłeś sesję i nie zostawiłeś jej odłączonej i uruchomionej. Sesje odłączania omówimy poniżej.

Rozpoczynanie nazwanej sesji tmux

Jeśli regularnie uruchamiasz wiele sesji tmux , szybko docenisz funkcjonalność nadawania każdej z nich znaczącej nazwy. Sesje można również nazwać w screen , ale nie są one wyświetlane nigdzie w oknach sesji.

Aby uruchomić tmux z nazwą sesji, użyj polecenia new (nowa sesja) i opcji -s (nazwa sesji). Nasza sesja będzie nazywać się „geek-1”, więc wpisujemy:

 tmux nowy -s geek-1 

Po załadowaniu sesji tmux jako pierwszy wpis na pasku stanu po lewej stronie wyświetlany jest „geek-1”.

Sesja tmux o nazwie „geek-1” po lewej stronie paska stanu.

Dodawanie kolejnych okien

Aby utworzyć nowe okno w bieżącej sesji, naciśnij Ctrl+B, a następnie C. W bieżącej sesji pojawi się puste okno terminala. Więc będziemy mieli coś uruchomionego w tym nowym oknie, uruchommy polecenie dmesg z opcją -w (follow):

 dmesg -w 

Teraz w sesji mamy dwa okna; jeden biegnie top , a drugi dmesg . Możemy jednak zobaczyć tylko jeden na raz (więcej o tym za chwilę).

Reklama

Spójrz na lewą stronę paska stanu. Nadal jesteśmy w sesji tmux „geek-1”. W oknie zero uruchomiony jest top, aw oknie pierwszym uruchomiony jest dmesg . Gwiazdka (*) po dmesg mówi nam, które okno jest widoczne.

Aby przeskakiwać między oknami, naciśnij Ctrl+B, a następnie jeden z następujących klawiszy:

  • N : Wyświetl następne okno.
  • P: Wyświetl poprzednie okno.
  • 0 do 9: Wyświetl okno o numerze od 0 do 9.

Możesz także wybrać okno z listy. Jeśli naciśniesz Ctrl+B, a następnie W, pojawi się lista okien.

Aby przesunąć bursztynowy pasek podświetlenia, naciskaj strzałki w górę lub w dół, Home lub End. Dolna część wyświetlacza pokazuje podgląd treści w podświetlonym oknie.

Naciśnij klawisz Enter, aby przejść do podświetlonego okna, lub Esc, aby opuścić listę okien bez przełączania.

Sesje odłączania i dołączania

Jeśli naciśniesz Ctrl+B, a następnie D, odłączysz sesję. Będzie nadal działać w tle, ale nie będzie można go zobaczyć ani wchodzić z nim w interakcję.

Reklama

Zaczęliśmy na top sesji, więc mamy uruchomiony proces do zademonstrowania. Następnie wciskamy Ctrl+B, a potem D. Sesja znika i staje się sesją w tle.

Wracamy do oryginalnego okna terminala. Jest wiadomość z tmux mówiąca, że ​​sesja została odłączona. Przypomina nam również nazwę, jaką nadaliśmy sesji. Jest to przydatne, ponieważ tego używamy do dołączania do sesji w tle, a następnie przywracania jej do sesji interaktywnej.

Aby dołączyć odłączoną sesję, użyjemy oczywistego polecenia attach-session z opcją -t (sesja docelowa). Podamy również nazwę sesji, którą chcemy przypomnieć.

Wpisujemy:

 tmux attach-session -t geek-1 

Nasza sesja powraca i ponownie staje się widoczną, interaktywną sesją.

Wszelkie długotrwałe lub ciągłe procesy uruchomione przed odłączeniem sesji będą nadal działać w tle (chyba że zostały zakończone) po dołączeniu sesji.

screen może to zrobić, ale nie tak intuicyjnie.

Obsługa wielu sesji

Otwórzmy kolejne okno terminala i rozpocznijmy nową sesję tmux o nazwie „geek-2”:

 tmux nowy -s geek-2 

W tej sesji rozpoczniemy dmesg :

 dmesg -w 

Reklama

Teraz mamy naszą oryginalną sesję tmux „geek-1” i nową o nazwie „geek-2”.

Pasek stanu pokazuje nam, że ta sesja nazywa się „geek-2” i ma jedno okno, w którym działa dmesg .

Jeśli naciśniemy Ctrl+B, a następnie D, odłączymy tę sesję.

Odłączony geek-2 sesji tmux w oknie terminala.

Wracając do sesji tmux „geek-1”, wciskamy Ctrl + B, a następnie S, aby wyświetlić listę sesji tmux .

Żeby było jasne, to jest lista sesji. Podobny ekran, który widzieliśmy wcześniej, był listą okien w jednej sesji.

Możesz przesuwać bursztynowy pasek podświetlenia, naciskając strzałki w górę i w dół, Home i End. Dolna sekcja wyświetla podgląd treści w podświetlonej sesji.

Reklama

Jeśli naciśniesz strzałkę w prawo, wyświetlą się okna dla podświetlonej sesji.

Naciśnij klawisz Enter, aby przejść do podświetlonej sesji lub okna, albo klawisz Esc, aby opuścić listę sesji bez zmiany sesji. Jeśli wybierzesz nową sesję, bieżąca odłączy się, a wybrana zostanie dołączona.

Odłączyliśmy sesję „geek-2”, zanim to zrobiliśmy. Można to jednak zrobić z sesjami, które nadal są dołączone do ich oryginalnych okien terminala. Gdy to zrobisz, wszelkie zmiany na ekranie pojawią się jednocześnie w obu sesjach tmux .

Polecenie screen może to również zrobić za pomocą podobnego zestawu poleceń.

Praca z szybami okiennymi

Jeśli naciśniesz Ctrl+B, a następnie podwójny cudzysłów („”), podzielisz okno poziomo na dwa panele.

Ma to wpływ tylko na bieżące okno; pozostałe w sesji nie zostaną zmienione. tmux ls w górnym panelu, aby wyświetlić listę okien w tej sesji. Są dwa, a linia stanu mówi nam, że jesteśmy w pierwszym oknie. Jeśli przejdziemy do okna zero, naciskając Ctrl+B, a następnie 0 (zero), zobaczymy, że jest tak, jak je zostawiliśmy.

Reklama

Są to dwie niezależne linie poleceń, a nie dwa widoki w jednym oknie; są to odrębne i oddzielne muszle. Możemy to pokazać, uruchamiając inne polecenie w każdym okienku.

Wpisujemy:

uname -a

ls -hl

Aby przejść z jednego okienka do drugiego, naciśnij klawisze Ctrl+B, a następnie strzałkę w górę, w dół, w lewo lub w prawo.

Dwie różne komendy w dwóch panelach w sesji tmux w oknie terminala.

Jeśli naciśniesz Ctrl + B, a następnie znak procentu ( %) , podzieli on bieżący panel w pionie.

Naciśnij Ctrl+B, a następnie Q, aby tmux na chwilę wyświetlił numer każdego okienka.

Numery te są używane w monitach i wiadomościach z tmux . Naciśnij klawisze Ctrl+B, a następnie X, aby zamknąć bieżące okienko. Pasek stanu zmieni kolor na bursztynowy i zostanie wyświetlony monit o potwierdzenie, że chcesz zamknąć ten numer okienka. Naciśnij Y, aby usunąć okienko, lub N, aby pozostawić rzeczy bez zmian.

Jeśli naciśniesz Y, okienko zostanie usunięte.

Reklama

Polecenie screen ma również panele, ale znowu są mniej intuicyjne w użyciu. Rzeczą, która nas denerwuje w przypadku screen , jest to, że jeśli odłączysz sesję z panelami, znikną one po ponownym dołączeniu tej sesji. To bardzo szybko się starzeje.

Ściągawka Ctrl+B

Poniżej zamieściliśmy ściągawkę różnych poleceń, których możesz użyć w tmux .

Polecenia sesji

  • S: Lista sesji.
  • $: Zmień nazwę bieżącej sesji.
  • D: Odłącz bieżącą sesję.
  • Ctrl+B, a następnie ?: Wyświetl stronę pomocy w tmux .

Polecenia okna

  • C: Utwórz nowe okno.
  • ,: Zmień nazwę bieżącego okna.
  • W: Wymień okna.
  • N: Przejdź do następnego okna.
  • P: Przejdź do poprzedniego okna.
  • 0 do 9: Przejdź do okna o podanym numerze.

Polecenia dotyczące okienka

  • %: Utwórz podział poziomy.
  • „: Utwórz podział w pionie.
  • H lub Strzałka w lewo: Przejdź do okienka po lewej stronie.
  • I lub strzałka w prawo: Przejdź do okienka po prawej stronie.
  • J lub Strzałka w dół: Przejdź do okienka poniżej.
  • K lub strzałka w górę: Przejdź do okienka powyżej.
  • P : Krótko pokaż numery okienek.
  • O: Poruszaj się po szybach w kolejności. Każde naciśnięcie przenosi cię do następnego, dopóki nie przejdziesz przez nie wszystkie.
  • }: Zamień pozycję bieżącego panelu na następny.
  • {: Zamień pozycję bieżącego okienka na poprzednią.
  • X: Zamknij bieżące okienko.

Jak się porównują

Pod względem funkcjonalności screen i tmux działają podobnie i oferują te same główne funkcje. To sposób, w jaki uzyskujesz dostęp do tych funkcji, jest znacząco inny. tmux oferuje sprawniejsze, wygodniejsze sposoby dostępu do różnych funkcji. To jednak nie jedyna różnica.

Możliwość zmiany nazwy sesji i okien w tmux jest fajna, a fakt, że zachowuje ona panele po ponownym dołączeniu sesji, zmienia zasady gry.

screen , z drugiej strony, całkowicie traci okienka po odłączeniu i ponownym dołączeniu sesji. Jest to na tyle denerwujące, że przede wszystkim unikasz odłączania się.

tmux to znacznie więcej, w tym niewiarygodnie elastyczne możliwości tworzenia skryptów. Jesteś to sobie winien, żeby to sprawdzić.

POWIĄZANE: Najlepsze laptopy z systemem Linux dla programistów i entuzjastów