Tmux — alternatywa dla aplikacji Screen

Tagi: #<Tag:0x00007f2addbb0ee0> #<Tag:0x00007f2addbb0dc8>

Hej, chciałbym wam przedstawić narzędzie Tmux czyli alternatywę dla aplikacji Screen.


I. Co to jest?

Tak więc tak samo, jak Screen, Tmux to narzędzie umożliwiające tworzenie wirtualnych terminali, które po rozłączeniu z ssh może nadal działać w tle i np. utrzymywać serwer gry przez 24 godziny na dobę. Kolejną zaletą wirtualnych terminali jest łatwość przełączania się między różnymi aplikacjami w jednym terminalu.

II. Instalacja Tmuxa:

Ubuntu / Debian

sudo apt update
sudo apt install tmux

CentOS / Fedora

yum check-update
yum update
sudo yum install tmux

W przypadku konta root nie trzeba pisać sudo.

III. Przydatne komendy:

W tej sekcji znajdziesz wszystkie potrzebne ci polecenia, do pracy z wirtualnymi terminalami.

a) Tworzenie wirtualnego terminala/sesji

tmux

Tworzy nową sesję i od razu uruchamia okno wirtualnego terminala. Wówczas możemy od razu zacząć na nim pracować.

tmux new -s nazwa

Robi dokładnie to samo, ale przy okazji daje nam możliwość ustawienia własnej nazwy. Wystarczy zastąpić nazwa swoją nawą np. serwer-minecraft.

A tak wygląda przykładowy wirtualny terminal, na dole jest widoczny zielony pasek, na którym widać na przykład nazwe sesji (test).


b) Jak wyjść z wirtualnego terminala?

Wychodzenie z sesji (będzie on działać w tle)

- Należy kliknąć "Ctrl + B" następnie kliknąć "D".

Wychodzenie z sesji oraz przerwanie jej działania (nie będzie działać w tle)

- Należy kliknąć "Ctrl + B" następnie kliknąć "X" po czym potwierdzić wpisując "Y".

c) Powrót do wcześniej utworzonej sesji

Najpierw wpisujemy

tmux ls

Wyświetli nam się lista naszych sesji przykład:

image
W tym przykładzie są trzy sesje o nazwach: 0, serwer-minecraft oraz serwer-minecraft2.
Żeby powrócić do sesji np. serwer-minecraft należy wpisać:

tmux a -t serwer-minecraft

d) Zamykanie wszystkich sesji Tmuxa:

Czasem może nam się przydać komenda zamykająca wszystkie uruchomione sesji. Dlatego postanowiłem ją tutaj zamieścić.

tmux ls | grep : | cut -d. -f1 | awk '{print substr($1, 0, length($1)-1)}' | xargs kill

IV. Praca z oknami oraz ich podziałem:

W Tmuxie można zarówno stworzyć kilka okien (windows) w sesji, jak i można podzielić jedno okno na kilka (panes).

Lista dostępnych skrótów, każdy skrót poprzedzaj kliknięciem Ctrl+B, a następnie po puszczeniu klawiszy kliknij odpowiedni skrót:

  • Sesje (session)

    • :new - nowa sesja
    • s - lista sesji
    • $ - nazwa sesji (można ją tutaj wyświetlić a także zmienić)
  • Okna (windows)

    • c - tworzenie kolejnego okna
    • w - lista okien
    • n - następne okno
    • p - poprzednie okno
    • f - szukanie okna
    • , - nazwa okna (można ją tutaj wyświetlić a także zmienić)
    • & - zamknięcie okna
  • Podział okien (panes):

    • % - podział wertykalny (lewo-prawo)
    • " - podział horyzontalny (góra-dół)
    • o - przełącz się między pane
    • q - pokaż numer pane
    • x - zamknij pane
    • + - usunięcie pane do okna
    • - - przywrócenie pane z okna
    • spacja - zmiana rodzaju podziału okien (wertykalnie/horyzontalnie)
    • q - pokazuje numery pane, w momencie gdy są widoczne można kliknąć numer i się do niego przenieść.
    • { - przeniesienie z aktualnego pane do następnego po lewej/na dole
    • } - przeniesienie z aktualnego pane do następnego po prawej/na górze
    • z - przełączanie widoku pane (czy ma być widoczny)

V. Uruchamianie serwera Minecraft w Tmuxie:

Tworzymy nową sesje o nazwie np. serwer-mc:

tmux new -s serwer-mc

W sesji wchodzimy do folderu z serwerem a następnie wpisujemy polecenie którym uruchamiamy serwer:

cd serwer-minecraft
java -Xmx1024M -Xms1024M -jar minecraft_server.jar nogui

Po wszystkim wystarczy opuścić sesje:
Klikamy "CTRL + B" a potem klikamy "D".
Gotowe :smile:.


W tym przypadku przydzieliłem na serwer 1GB ramu.
A mój silnik ma nazwę minecraft_server.jar.

W przypadku innych serwerów np. TeamSpeak 3 wygląda to podobnie, po prostu jest inne polecenie startowe.

VI. Kilka słów na koniec

Jeżeli czegoś brakuje, napiszcie na pw lub pod tematem, to dodam/poprawie informacje.
Chciałem napisać jeszcze różnice między Screenem a Tmuxem, ale żadnych większych różnic nie znalazłem i stwierdziłem, że nie warto w ogóle o tym pisać, chyba że chcecie, to coś dopiszę.

Główne źródła:
https://linuxize.com/post/getting-started-with-tmux/
https://gist.github.com/MohamedAlaa/2961058

9lajków