A tmux használata Linuxon (és miért jobb, mint a képernyő)
- Dave McKay
@TheGurkha
- május 14, 2020, 8:00am EDT
a Linux tmux
parancs egy terminál multiplexer, mint a screen
. Támogatói sokak és hangosak, ezért úgy döntöttünk, hogy összehasonlítjuk a kettőt. A tmux
valóban jobb, vagy csak az a helyzet, hogy inkább azt részesíti előnyben, amit tud?
tmux vs.screen
mind a tmux
, mind a GNU screen
parancsok terminál multiplexerek. Lehetővé teszik, hogy több ablak legyen egy terminálablakon belül, és oda-vissza ugorjon közöttük. Az ablak ablaktáblákra osztható, amelyek mindegyike független parancssort ad.
leválaszthat egy munkamenetet is, amely a háttérben futó fej nélküli entitássá válik—bezárhatja azt a terminálablakot is, amely elindította. Ha készen áll, megnyithat egy új terminálablakot, és újra csatolhatja a még futó munkamenetet. Ezt SSH kapcsolaton keresztül is megteheti.
egy munkamenetet leválaszthat egy számítógépen, hazamehet, és bejelentkezhet a távoli számítógépre. Amikor újra csatlakozik, újra csatolhatja a háttér munkamenetet, és újra interaktív módon használhatja.
mi a képernyő parancs?
a screen
parancs terminál multiplexer is, és tele van opciókkal. A lowdown mindent, amit tehetünk vele, Nézd meg a részletes cikket.
ezúttal a tmux
– re fogunk koncentrálni. Ahogy haladunk, megemlítjük, hogy a screen
hogyan kezeli ugyanazt a funkciót vagy funkciót.
csak egy dolog bosszantott minket screen
. Majd megbeszéljük, ha odaértünk, és meglátjuk, hogy a tmux
viteldíjak jobbak-e.
kapcsolódó: hogyan kell használni a Linux képernyő parancsát
a tmux telepítése
míg a screen
alapértelmezés szerint telepítve van a népszerű Linux disztribúciókon, az tmux
nem. a tmux
Ubuntura történő telepítéséhez írja be a következőket:
sudo apt-get install tmux
a Manjaro segítségével pacman
:
sudo pacman -Sy tmux
A Fedora 31-en a tmux
már telepítve van.
tmux munkamenet indítása
a tmux
elindításához csak írja be, és nyomja meg az Enter billentyűt:
tmux
a terminál ablakban megjelenik egy állapotsor, amikor tmux
munkamenetben van.
az állapotsor jobb oldalán látható a gépnév, az idő és a dátum. A bal oldalon a következő munkamenetekkel kapcsolatos információk láthatók:
- : ez a munkamenet neve. Alapértelmezés szerint számozva vannak, nullával kezdve. Az alábbiakban bemutatjuk, hogyan adhat értelmes neveket az üléseknek.
- 0:bash*: a 0 azt jelzi, hogy ez az első ablak ebben a munkamenetben. Az ebben a munkamenetben futó egyetlen folyamat
bash
. Ha futtat egy programot, akkor a neve Itt jelenik meg. A csillag (*) azt jelenti, hogy ezt az ablakot nézi. Minden alkalommal, amikor új ablakot hoz létre egytmux
munkamenetben, az ablak száma és a benne futó program neve hozzáadódik az állapotsorhoz.
a screen
parancs nem ad állapotsort. Vakon kell repülnie, és az eszére kell támaszkodnia, hogy tudja, mi folyik itt, ami egy kis gyakorlást igényel.
a pozitív oldalon, akkor nem veszít egy sor terminál ablak ingatlan. Természetesen általában kibővítené a terminálablakot, hogy érdemes legyen a terminál multiplexer használata. Ebben az esetben az állapotsor egyik sorának elvesztése nem jelent nagy problémát. A terminálablakok képeit itt hagytuk az alapértelmezett méretben, így láthatja az információkat.
parancsok tmux
billentyűleütésekkel, és ennek két része van. Először nyomja meg a Ctrl + B billentyűkombinációt, hogy megkapja tmux
figyelmét. Ezután gyorsan nyomja meg a következő gombot, hogy parancsot küldjön atmux
címre. A parancsokat betűk, számok, írásjelek vagy nyílbillentyűk megnyomásával adhatja meg.
ugyanaz a screen
– ban, kivéve, ha megnyomja a Ctrl+A billentyűkombinációt, hogy felhívja a figyelmét.
az ablak bezárásához nyomja meg a Ctrl+B billentyűkombinációt, majd gyorsan nyomja meg az X billentyűt. Ezután a rendszer kéri, hogy erősítse meg, hogy meg akarja ölni az ablakot.
nyomja meg az Y gombot az ablak bezárásához vagy az N gombot, ha meggondolja magát. Utána nem kell megnyomnia az Enter billentyűt; Y vagy N elegendő a választás regisztrálásához.
ha megnyomja az Y gombot, az ablak bezáródik. Mivel ez az egyetlen ablak ebben a munkamenetben, a munkamenet befejeződik.
a tmux
munkamenet lezárult, és visszatér a parancssorba, ahonnan elindította a tmux
parancsot. A terminál ablakban a “” felirat jelenik meg.
ez úgy tűnhet, mintha a nyilvánvalót állítaná, de ez egy megerősítés, hogy lezárta a munkamenetet, és nem hagyta leválasztva és futva. Az alábbiakban tárgyaljuk a leválasztási üléseket.
elnevezett tmux munkamenet indítása
ha rendszeresen több tmux
munkamenetet indít, akkor gyorsan értékelni fogja azt a funkciót, hogy mindegyiknek értelmes nevet ad. A munkameneteket a screen
– ban is megnevezheti, de a munkamenetablakokban sehol nem jelennek meg.
a tmux
munkamenet nevével történő indításához használja a new
(új munkamenet) parancsot és a -s
(munkamenet neve) opciót. A munkamenet lesz az úgynevezett “geek-1,” így írja be a következő:
tmux new -s geek-1
amikor a tmux
munkamenet betöltődik, a “geek-1” jelenik meg első bejegyzésként az állapotsorban, a bal szélen.
további ablakok hozzáadása
új ablak létrehozásához az aktuális munkamenetben nyomja meg a Ctrl+B, majd a C billentyűkombinációt. Tehát lesz valami fut ebben az új ablakban, indítsuk el a dmesg
parancsot a -w
(follow) opcióval:
dmesg -w
most két ablakunk van a munkamenetben; az egyik top
, a másik dmesg
fut. Egyszerre csak egyet láthatunk(erről bővebben egy pillanat alatt).
vessen egy pillantást az állapotsor bal oldalára. Még mindig a” geek-1 ” tmux
munkamenetben vagyunk. A window zero-ban a top fut, az egyes ablakban pedig a dmesg
. A dmesg
utáni csillag (*) jelzi, hogy melyik ablak látható.
a windows közötti ugráshoz nyomja meg a Ctrl+B billentyűkombinációt, majd az alábbi billentyűk egyikét:
- N: A következő ablak megjelenítése.
- P: az előző ablak megjelenítése.
- 0-9: 0-tól 9-ig számozott ablak megjelenítése.
ablakot is kiválaszthat a listából. Ha megnyomja a Ctrl+B, majd a W billentyűkombinációt, megjelenik a windows listája.
a sárga kiemelő sáv mozgatásához nyomja meg a Fel vagy le nyilakat, a Home vagy a End gombot. A kijelző alsó részén a kiemelt ablak tartalmának előnézete látható.
nyomja meg az Enter billentyűt a kiemelt ablakra lépéshez, vagy az Esc billentyűt az ablaklista váltás nélküli elhagyásához.
munkamenetek leválasztása és csatolása
ha megnyomja a Ctrl+B, majd a D billentyűkombinációt, akkor leválasztja a munkamenetet. Továbbra is a háttérben fog futni, de nem fogja látni vagy kölcsönhatásba lépni vele.
elkezdtük top
a munkamenet, így van egy futó folyamat bizonyítani. Ezután nyomjuk meg a Ctrl+B billentyűkombinációt,majd a D billentyűkombinációt.
visszatérünk az eredeti terminál ablakhoz. Van egy üzenet a tmux
– től, amely azt mondja nekünk, hogy a munkamenet megszakadt. Emlékeztet minket arra a névre is, amelyet az ülésnek adtunk. Ez azért hasznos, mert ezt használjuk a háttér munkamenethez való csatoláshoz, majd visszaállítjuk egy interaktívra.
leválasztott munkamenet csatolásához a magától értetődő attach-session
parancsot használjuk a -t
(cél munkamenet) opcióval. Megadjuk a visszahívni kívánt ülés nevét is.
a következőket írjuk be:
tmux attach-session -t geek-1
a munkamenet visszatér, és ismét látható, interaktív munkamenetgé válik.
a munkamenet leválasztása előtt elindított hosszú vagy folyamatos folyamatok továbbra is a háttérben futnak (kivéve, ha befejeződtek) a munkamenet csatolásakor.
screen
képes erre, de nem olyan intuitív módon.
több munkamenet kezelése
nyissunk meg egy másik terminálablakot, és kezdjünk egy új tmux
munkamenetet “geek” néven-2″:
tmux new -s geek-2
ebben az ülésen kezdjük dmesg
:
dmesg -w
most, megvan az eredeti ” geek-1 “tmux
ülés, és egy új úgynevezett ” geek-2.”
az állapotsor azt mutatja, hogy ezt a munkamenetet “geek-2” – nek hívják, és egy ablaka van, amely dmesg
– et futtat.
ha megnyomjuk a Ctrl+B, majd a D billentyűkombinációt, leválasztjuk a munkamenetet.
a “geek-1” tmux
munkamenetben a Ctrl+B, majd az S billentyűkombinációval megtekinthetjük a tmux
munkamenetek listáját.
hogy világos legyen, ez a munkamenetek listája. A hasonló kijelző, amelyet korábban láttunk, az ablakok listája volt egyetlen munkamenetben.
a sárga kiemelő sávot a fel és le nyilak, a kezdőlap és a vége megnyomásával mozgathatja. Az alsó rész a kiemelt munkamenet tartalmának előnézetét jeleníti meg.
ha megnyomja a jobbra mutató nyilat, a kijelölt munkamenet ablakai jelennek meg.
nyomja meg az Enter billentyűt a kijelölt munkamenetre vagy ablakra lépéshez, vagy az Esc billentyűt a munkamenetek listájának a munkamenetek módosítása nélküli elhagyásához. Ha új munkamenetet választunk, az aktuális munkamenet leválik, a kiválasztott pedig csatolva lesz.
leválasztottuk a “geek-2” munkamenetet, mielőtt ezt megtettük. Ezt azonban olyan munkamenetekkel teheti meg, amelyek még mindig az eredeti terminálablakokhoz vannak csatolva. Ha ezt megteszi, a képernyő módosításai egyszerre jelennek meg mindkét tmux
munkamenetben.
a screen
parancs ezt is megteheti hasonló parancskészlettel.
ablaktáblák használata
ha megnyomja a Ctrl+B billentyűkombinációt, majd dupla idézőjelet (“”), az ablakot vízszintesen két ablaktáblára osztja.
ez csak az aktuális ablakot érinti; a munkamenet többi része nem változik. A felső ablaktábla tmux ls
parancsát használtuk a munkamenet ablakainak felsorolásához. Kettő van, és az állapotsor azt jelzi, hogy az egyes ablakban vagyunk. Ha a Ctrl+B, majd a 0 (nulla) megnyomásával átugrunk a nulla ablakra, akkor azt látjuk, hogy éppen úgy van, ahogy hagytuk.
ez két független parancssor, nem két nézet egy ablakban; ezek különálló és különálló héjak. Ezt megmutathatjuk úgy, hogy minden ablaktáblán más parancsot futtatunk.
a következőket írjuk be:
uname -a
ls -hl
az egyik ablaktábláról a másikra való áttéréshez nyomja meg a Ctrl+B billentyűkombinációt, majd a Fel, le, balra vagy jobbra mutató nyilat.
ha megnyomja a Ctrl+B billentyűkombinációt, majd a százalékjelet (%)
függőlegesen osztja fel az aktuális ablaktáblát.
nyomja meg a Ctrl+B, majd a Q billentyűkombinációt, hogy tmux
röviden villogjon az egyes ablaktáblák száma.
ezeket a számokat a tmux
üzeneteiben használják. Nyomja meg a Ctrl+B, majd az X billentyűkombinációt az aktuális ablaktábla bezárásához. Az állapotsor borostyánszínűre változik, és a rendszer kéri, hogy erősítse meg az ablaktábla számának bezárását. Nyomja meg az Y gombot az ablaktábla eltávolításához, vagy az N gombot, ha a dolgokat úgy hagyja, ahogy vannak.
ha megnyomja az Y gombot, az ablaktábla eltávolításra kerül.
a screen
parancsnak is vannak ablaktáblái, de ismét kevésbé intuitív a használata. A dolog, ami bosszant minket a screen
– ról, az az, hogy ha leválasztja a munkamenetet ablaktáblákkal, akkor azok eltűnnek, amikor újra csatlakoztatja az ülést. Ez nagyon gyorsan megöregszik.
a Ctrl+B Cheat Sheet
már benne egy puskát a különböző parancsokat használhatja tmux
alább.
munkamenet parancsok
- S: munkamenetek listája.
- $: az aktuális munkamenet átnevezése.
- D: az aktuális munkamenet leválasztása.
- Ctrl+B, majd ?: Súgóoldal megjelenítése
tmux
– ben.
Ablakparancsok
- C: új ablak létrehozása.
- ,: Nevezze át az aktuális ablakot.
- W: az ablakok felsorolása.
- N: ugrás a következő ablakra.
- P: Ugrás az előző ablakra.
- 0-9: ugrás a megadott ablakszámra.
ablaktábla parancsok
- %: hozzon létre egy vízszintes felosztást.
- “: függőleges felosztás létrehozása.
- H vagy balra nyíl: ugrás a bal oldali ablaktáblára.
- I vagy jobbra nyíl: ugrás a jobb oldali ablaktáblára.
- J vagy lefelé mutató nyíl: ugrás az alábbi ablaktáblára.
- K vagy felfelé mutató nyíl: ugrás a fenti ablaktáblára.
- k: az ablaktábla számainak rövid megjelenítése.
- O: az ablaktáblák sorrendbe állítása. Minden sajtó úgy, hogy a következő, amíg a hurok az összes őket.
- }: az aktuális ablaktábla pozíciójának cseréje a következővel.
- {: cserélje ki az aktuális ablaktábla helyzetét az előzővel.
- X: az aktuális ablaktábla bezárása.
hogyan hasonlítják össze a
funkcionalitás szempontjából a screen
és a tmux
mindkettő hasonlóan teljesít, és ugyanazokat a főbb jellemzőket kínálja. A funkciók elérésének módja jelentősen eltér. tmux
kínál slicker, kényelmesebb módon, hogy a különböző funkciókat. Ez azonban nem az egyetlen különbség.
a munkamenetek és a windows átnevezésének képessége tmux
alatt rendben van, és az a tény, hogy megtartja az ablaktáblákat, amikor egy munkamenetet visszahelyez, játékváltó.
screen
, másrészt, teljesen elveszíti ablaktáblák, amikor leválik, majd vissza a munkamenet. Ez szinte elég bosszantó ahhoz, hogy eleve elkerülje a leválasztást.
sokkal több van a tmux
– nél, beleértve a hihetetlenül rugalmas szkriptelési képességeit. Tartozol magadnak annyival, hogy megnézed.
Dave McKay akkor használt először számítógépeket, amikor a lyukasztott papírszalag divatba jött, és azóta is programoz. Az informatikai iparban eltöltött több mint 30 év után ma teljes munkaidős technológiai újságíró. Pályafutása során dolgozott szabadúszó programozóként, egy nemzetközi szoftverfejlesztő csapat vezetőjeként, IT szolgáltatási projektmenedzserként, és legutóbb Adatvédelmi tisztviselőként. Dave Linux evangélista és nyílt forráskódú szószóló.Olvassa El A Teljes Életrajzot “