Bodzio | 2020-04-14 21:47:33 UTC | #1
Hej, chciałbym wam przedstawić narzędzie Tmux czyli alternatywę dla aplikacji Screen.
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.
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
.
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)
Wychodzenie z sesji oraz przerwanie jej działania (nie będzie działać w tle)
---
**c) Powrót do wcześniej utworzonej sesji**
Najpierw wpisujemy
tmux ls
Wyświetli nam się lista naszych sesji przykład:

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.
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