Jak używać tmux na Linuksie (i dlaczego jest lepszy niż Screen)
- Dave McKay
@ TheGurkha
- 14 maja 2020, 08:00
polecenie Linux tmux
jest multiplekserem terminala, jak screen
. Jego zwolenników jest wielu i wokalnych, więc postanowiliśmy porównać te dwa. tmux
naprawdę lepiej, czy to tylko przypadek preferowania tego, co wiesz?
tmux vs.screen
zarówno polecenia tmux
, jak i GNU screen
są multiplekserami terminali. Pozwalają one na posiadanie wielu okien w jednym oknie terminala i skakanie między nimi. Okno można podzielić na panele, z których każde daje niezależny wiersz poleceń.
możesz również odłączyć sesję i stanie się ona bezgłowym podmiotem działającym w tle—możesz nawet zamknąć okno terminala, które ją uruchomiło. Gdy będziesz gotowy, możesz otworzyć nowe okno terminala i ponownie podłączyć wciąż działającą sesję. Można to również zrobić przez połączenie SSH.
możesz odłączyć sesję na jednym komputerze, wrócić do domu i zalogować się do komputera zdalnego. Po ponownym połączeniu możesz ponownie podłączyć sesję w tle i ponownie użyć jej interaktywnie.
Co To jest polecenie screen?
polecenie screen
jest również multiplekserem terminala i jest pełne opcji. Aby dowiedzieć się wszystkiego, co możesz z nim zrobić, zapoznaj się z naszym szczegółowym artykułem.
tym razem skupimy się na tmux
. Idąc dalej, wspomnimy, jak screen
obsługuje tę samą funkcję lub funkcję.
tylko jedno nas denerwowało screen
. Zajmiemy się tym, gdy dojdziemy do tego i zobaczymy, czy tmux
będzie lepiej.
RELATED: Jak korzystać z polecenia ekranowego Linuksa
instalowanie tmux
podczas gdy screen
jest zazwyczaj instalowane domyślnie na popularnych dystrybucjach Linuksa, tmux
nie jest. aby zainstalować tmux
na Ubuntu, wpisz następujący:
sudo apt-get install tmux
na Manjaro możesz użyć pacman
:
sudo pacman -Sy tmux
na Fedorze 31 tmux
jest już zainstalowany.
Rozpoczynanie sesji tmux
aby rozpocząć tmux
, wpisz ją i naciśnij Enter:
tmux
okno terminala wyświetli pasek stanu podczas sesji tmux
.
po prawej stronie paska stanu znajduje się nazwa hosta oraz godzina i data. Po lewej stronie znajdują się następujące informacje związane z sesją:
- : to jest nazwa sesji. Domyślnie są ponumerowane, zaczynając od zera. Poniżej omówimy, w jaki sposób można nadać sensowne nazwy sesjom.
- 0: bash*: 0 oznacza, że jest to pierwsze okno w tej sesji. Jedynym procesem uruchomionym w tej sesji 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 sesjitmux
, jego numer okna i nazwa uruchomionego w nim programu są dodawane do paska stanu.
polecenie screen
nie daje paska stanu. Musisz latać na ślepo i polegać na swoim sprycie, aby wiedzieć, co jest grane, co wymaga trochę praktyki.
na plus nie stracisz linii okien terminalowych nieruchomości. Oczywiście normalnie rozszerzyłbyś okno terminala, aby korzystanie z multipleksera terminala było opłacalne. W takim przypadku utrata jednej linii dla paska stanu nie stanowi większego problemu. Zostawiliśmy obrazy okien terminala w domyślnym rozmiarze, abyś mógł zobaczyć informacje.
polecenia są podane do tmux
za pomocą naciśnięć klawiszy, i są dwie części do tego. Najpierw naciśnij Ctrl + B, aby uzyskać uwagę tmux
. Następnie szybko naciśnij następny klawisz, aby wysłać polecenie dotmux
. Polecenia są wydawane przez naciśnięcie liter, cyfr, znaków interpunkcyjnych lub klawiszy strzałek.
jest tak samo w screen
, z tym, że naciskasz Ctrl+A, aby przyciągnąć jego uwagę.
aby zamknąć okno, naciśnij Ctrl + B, a następnie szybko naciśnij X. pasek stanu zmienia 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 naciskać Enter później; y lub N wystarczy, aby zarejestrować swój wybór.
po naciśnięciu Y okno się zamyka. Ponieważ jest to jedyne okno w tej sesji, sesja zostaje zakończona.
sesja tmux
zostaje zamknięta, a Ty powracasz do wiersza poleceń, z którego uruchomiłeś tmux
. Zobaczysz „” w oknie terminala.
to może wydawać się oczywiste, ale jest to potwierdzenie, że zamknąłeś sesję i nie zostawiłeś jej odłączonej i uruchomionej. Poniżej omówimy sesje odłączania.
Rozpoczynanie nazwanej sesji tmux
jeśli regularnie rozpoczynasz wiele sesji tmux
, szybko docenisz funkcjonalność nadawania każdej z nich znaczącej nazwy. Sesje można również nazywać 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 się nazywać „geek-1”, więc wpisujemy następujące:
tmux new -s geek-1
po załadowaniu sesji tmux
, „geek-1” jest wyświetlany jako pierwszy wpis na pasku stanu, po lewej stronie.
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, zacznijmy polecenie dmesg
z opcją -w
(follow) :
dmesg -w
teraz mamy dwa okna w sesji; jeden działa top
, a drugi dmesg
. Widzimy jednak tylko jeden na raz (więcej o tym za chwilę).
spójrz na lewą stronę paska stanu. Nadal jesteśmy w sesji” geek-1 ” tmux
. W oknie zero działa top, a w oknie pierwszym działa 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świetla następne okno.
- P: wyświetla poprzednie okno.
- 0 do 9: wyświetla okno o numerach od 0 do 9.
Możesz również wybrać okno z listy. Jeśli naciśniesz Ctrl + B, a następnie W, pojawi się lista okien.
aby przesunąć bursztynowy Pasek podświetlenia, naciśnij strzałki w górę lub w dół, Strona główna lub koniec. Dolna część ekranu pokazuje podgląd zawartości podświetlonego okna.
naciśnij klawisz Enter, aby przejść do podświetlonego okna, lub Esc, aby opuścić listę okien bez przełączania.
odłączanie i dołączanie sesji
jeśli naciśniesz Ctrl + B, a następnie D, odłączysz sesję. Będzie on nadal działał w tle, ale nie będzie można go zobaczyć ani z nim wchodzić w interakcje.
rozpoczęliśmy top
w sesji, więc mamy uruchomiony proces do zademonstrowania. Następnie naciskamy Ctrl + B, a następnie D. sesja znika i staje się sesją w tle.
wracamy do oryginalnego okna terminala. Jest wiadomość od tmux
, że sesja jest odłączona. Przypomina nam również nazwę, którą nadaliśmy sesji. Jest to przydatne, ponieważ tego używamy, aby dołączyć do sesji w tle, a następnie przywrócić ją do 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 następujące:
tmux attach-session -t geek-1
nasza sesja powraca i staje się ponownie 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) podczas dołączania sesji.
screen
może to zrobić, ale nie tak intuicyjnie.
Obsługa wielu sesji
otwórzmy kolejne okno terminala i rozpocznijmy nową tmux
sesję o nazwie „geek-2”:
tmux new -s geek-2
w tej sesji zaczniemy dmesg
:
dmesg -w
teraz mamy naszą oryginalną sesję „geek-1” tmux
i Nową o nazwie „geek-2.”
pasek stanu pokazuje nam, że ta sesja nazywa się „geek-2” i ma jedno okno, które działa dmesg
.
jeśli naciśniemy Ctrl + B, a następnie D, odłączamy tę sesję.
powrót w „geek-1” tmux
sesji, naciskamy Ctrl+B, a następnie S, aby zobaczyć listę tmux
sesji.
aby było jasne, to jest lista sesji. Podobny wyświetlacz, który widzieliśmy wcześniej, to lista okien w jednej sesji.
możesz przesunąć bursztynowy Pasek podświetlenia, naciskając strzałki w górę iw dół, Strona główna i koniec. Dolna sekcja wyświetla podgląd zawartości podświetlonej sesji.
po naciśnięciu strzałki w prawo zostaną wyświetlone okna podświetlonej sesji.
naciśnij klawisz Enter, aby przejść do podświetlonej sesji lub okna lub Esc, aby opuścić listę sesji bez zmiany sesji. Jeśli wybierzesz nową sesję, bieżąca zostanie odłączona, a wybrana zostanie dołączona.
odłączyliśmy sesję „geek-2” zanim to zrobiliśmy. Można to jednak zrobić w przypadku sesji, które nadal są dołączone do oryginalnych okien terminala. Gdy to zrobisz, wszelkie zmiany na ekranie pojawią się jednocześnie w obu sesjach tmux
.
polecenie screen
również może to zrobić za pomocą podobnego zestawu poleceń.
praca z szybami
jeśli naciśniesz Ctrl + B, a następnie podwójne cudzysłowy ( „” ), podzielisz okno poziomo na dwie szyby.
to wpływa tylko na bieżące okno; pozostałe w sesji nie zostaną zmienione. Użyliśmy polecenia tmux ls
w górnym panelu, aby wyświetlić listę okien w tej sesji. Są dwa, a linia statusu mówi nam, że jesteśmy w oknie pierwszym. Jeśli przeskoczymy do okna zero naciskając Ctrl + B, a następnie 0 (zero), widzimy, że jest tak, jak go zostawiliśmy.
są to dwie niezależne linie poleceń, a nie dwa widoki w jednym oknie; są to odrębne i oddzielne powłoki. Możemy to pokazać, uruchamiając inne polecenie w każdym okienku.
wpisujemy następujące:
uname -a
ls -hl
aby przejść z jednego okienka do drugiego, naciśnij Ctrl+B, a następnie strzałkę w górę, w dół, w lewo lub w prawo.
jeśli naciśniesz Ctrl + B, a następnie znak procentowy (%)
dzieli bieżący panel pionowo.
naciśnij Ctrl+B, a następnie Q, aby tmux
krótko migać liczbę każdego panelu.
te numery są używane w monitach i wiadomościach z tmux
. Naciśnij Ctrl + B, a następnie X, aby zamknąć bieżący panel. Pasek stanu zmieni się na pomarańczowy i zostaniesz poproszony o potwierdzenie, że chcesz zamknąć ten numer panelu. Naciśnij Y, aby usunąć okienko, lub N, aby pozostawić rzeczy takimi, jakie są.
jeśli naciśniesz Y, okienko zostanie usunięte.
polecenie screen
ma również panele, ale ponownie są mniej intuicyjne w użyciu. Rzeczą, która denerwuje nas w screen
jest to, że jeśli odłączysz sesję za pomocą paneli, znikną one po ponownym podłączeniu tej sesji. To bardzo szybko się starzeje.
a Ś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 potem ?: Wyświetl stronę pomocy w
tmux
.
polecenia okna
- C: Utwórz nowe okno.
- ,: Zmień nazwę bieżącego okna.
- w: Lista okien.
- N: przejście do następnego okna.
- P: Przenieś do poprzedniego okna.
- 0 do 9: Przenieś do podanego numeru okna.
polecenia Panelu
- %: Utwórz poziomy podział.
- „: Utwórz podział pionowy.
- 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 panelu poniżej.
- K lub Strzałka w górę: przejdź do panelu powyżej.
- P: krótko Pokaż numery okien.
- O:przesuwaj szyby w kolejności. Każde naciśnięcie przenosi cię do następnego, aż przejdziesz przez wszystkie z nich.
- }: Zamień pozycję bieżącego panelu na następny.
- {: Zamień pozycję bieżącego panelu na poprzednią.
- X: Zamknij bieżący panel.
jak porównują
pod względem funkcjonalności, screen
i tmux
oba działają podobnie i oferują te same główne funkcje. To sposób, w jaki uzyskujesz dostęp do tych funkcji, jest znacznie inny. tmux
oferuje gładsze, wygodniejsze sposoby dotarcia do różnych funkcji. Jednak to nie jedyna różnica.
możliwość zmiany nazw sesji i okien w tmux
jest schludna, a fakt, że zachowuje panele po ponownym podłączeniu sesji, zmienia grę.
screen
, z drugiej strony, całkowicie traci szyby po odłączeniu i ponownym podłączeniu sesji. Jest to prawie wystarczająco denerwujące, aby uniknąć odłączania w pierwszej kolejności.
w tmux
jest o wiele więcej, w tym niesamowicie elastyczne możliwości skryptów. Jesteś sobie winien, żeby to sprawdzić.
Dave McKay po raz pierwszy użył komputerów, gdy taśma perforowana była w modzie i od tego czasu programuje. Po ponad 30 latach pracy w branży IT, obecnie jest dziennikarzem technologicznym na pełny etat. W trakcie swojej kariery pracował jako niezależny Programista, Kierownik międzynarodowego zespołu programistycznego, kierownik projektów usług IT, a ostatnio jako Inspektor Ochrony Danych. Dave jest ewangelistą Linuksa i zwolennikiem open source.Przeczytaj Cały Biogram „