Jak używać tmux na Linuksie (i dlaczego jest lepszy niż Screen)
- Dave McKay
@TheGurkha
- May 14, 2020, 8:00am EDT
polecenie Linux tmux
jest multiplekserem terminala, jak screen
. Jego zwolenników jest wielu i wokalnych, więc postanowiliśmy porównać te dwa. Czytmux
jest naprawdę lepszy, czy jest 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 za polecenie screen?
poleceniescreen
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 denerwuje screen
. Zajmiemy się tym, gdy dojdziemy do tego i zobaczymy, czy tmux
będzie lepiej.
RELATED: jak używać 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
, po prostu wpisz go i naciśnij Enter:
tmux
okno terminala wyświetli pasek stanu, gdy jesteś wtmux
sesja.
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.
poleceniescreen
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 do tmux
. Polecenia są wydawane przez naciśnięcie liter, cyfr, znaków interpunkcyjnych lub klawiszy strzałek.
jest to 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.
tmux
sesja jest zamknięta, a Ty wracasz 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 uruchamiasz wiele sesjitmux
, szybko docenisz funkcjonalność nadawania każdej z nich sensownej nazwy. Sesje można nazwać w screen
, ale nie są one wyświetlane nigdzie w oknach sesji.
aby uruchomićtmux
z nazwą sesji, użyj polecenianew
(nowa sesja) i opcji-s
(nazwa sesji). Nasza sesja będzie się nazywać „geek-1”, więc wpisujemy:
tmux new -s geek-1
gdy ładuje się tmux
sesja,” 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, uruchommy polecenie dmesg
z opcją -w
(follow):
dmesg -w
teraz mamy dwa okna w sesji; jedno działa top
I inne 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ładmesg
. Gwiazdka ( * ) po dmesg
informuje, 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ół, Home lub End. 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.
uruchomiliś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ść z tmux
informująca, ż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ć oddzielną sesję, użyjemy oczywistego poleceniaattach-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 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 rozpoczniemy 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ładmesg
.
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.
przed tym zakończyliśmy sesję „geek-2”. Można to jednak zrobić w przypadku sesji, które nadal są dołączone do oryginalnych okien terminala. Gdy to zrobisz, wszelkie zmiany ekranu pojawią się jednocześnie w obu sesjach tmux
.
polecenie screen
może to również zrobić za pomocą podobnego zestawu poleceń.
praca z szybami
Po naciśnięciu Ctrl+B, a następnie podwójnego cudzysłowu („”), dzielisz okno poziomo na dwie szyby.
to wpływa tylko na bieżące okno; pozostałe w sesji nie zostaną zmienione. Użyliśmy poleceniatmux 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:
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ć numer każdego panelu.
te numery są używane w monitach i wiadomościach ztmux
. 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.
poleceniescreen
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ć wtmux
.
polecenia sesji
- s: Lista sesji.
- $: zmiana nazwy bieżącej sesji.
- D: Odłącz bieżącą sesję.
- Ctrl+B, a potem ?: Wyświetla stronę pomocy w
tmux
.
polecenia okna
- C: Utwórz nowe okno.
- ,: zmiana nazwy bieżącego okna.
- w: Lista okien.
- n: przejście do następnego okna.
- P: przejście do poprzedniego okna.
- 0 do 9: Przenieś do podanego numeru okna.
polecenia Panelu
- %: Utwórz podział poziomy.
- „: 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.
- Q: krótko pokazuje numery okien.
- O: przechodzić przez 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
Itmux
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 wygodniejsze i 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 panele po odłączeniu i ponownym podłączeniu sesji. Jest to prawie wystarczająco denerwujące, aby uniknąć odłączania w pierwszej kolejności.
tmux
to znacznie więcej, w tym niezwykle elastyczne możliwości skryptowania. 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 „