A tmux használata Linuxon (és miért jobb, mint a képernyő)

A Linux tmux parancsa egy terminál multiplexer, mint a képernyő. Szószólói sokak és hangosak, ezért úgy döntöttünk, hogy összehasonlítjuk a kettőt. Valóban jobb a tmux, vagy csak azt kell előnyben részesíteni, amit tudsz?

tmux vs. képernyő

A tmux és a GNU képernyőparancsok is terminál multiplexerek. Lehetővé teszik, hogy egyetlen terminálablakon belül több ablak legyen, és oda-vissza ugorjon közöttük. Egy ablak panelekre osztható, amelyek mindegyike önálló parancssort ad.

Leválaszthat egy munkamenetet is, és a háttérben futó fej nélküli entitás lesz – akár be is zárhatja az azt elindító terminálablakot. Ha készen áll, megnyithat egy új terminálablakot, és újra csatolhatja a még futó munkamenetet. Ezt SSH-kapcsolaton keresztül is megteheti.

Leválaszthat egy munkamenetet egy számítógépen, hazamehet, és bejelentkezhet a távoli számítógépre. Amikor újracsatlakozik, újra csatlakoztathatja a háttérben futó munkamenetet, és újra interaktívan használhatja.

Mi a képernyőparancs?

A képernyőparancs egyben terminál multiplexer is, és tele van opciókkal. Ha többet szeretne tudni arról, hogy mit tehet vele, tekintse meg részletes cikkünket.

Ezúttal mi fogunk koncentrálj a tmux-ra. Ahogy haladunk, megemlítjük, hogy a képernyő hogyan kezeli ugyanazt a funkciót vagy funkciót.

Csak egy dolog bosszantott minket a képernyővel kapcsolatban. Majd kitérünk rá, amikor ráérünk, és meglátjuk, hogy a tmux jobban megy-e.

tmux telepítése

Míg a képernyő általában alapértelmezés szerint telepítve van a népszerű Linux disztribúciókon, a tmux nem. A tmux Ubuntu telepítéséhez írja be a következőt:

sudo apt-get install tmux

A Manjaro-n használhatja a pacman-t:

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 írja be, és nyomja meg az Enter billentyűt:

tmux

A terminálablak egy állapotsort jelenít meg, amikor tmux munkamenetben van.

Az állapotsor jobb oldalán látható a gazdagépnév, valamint az idő és a dátum. A bal oldalon a következő munkamenettel kapcsolatos információk láthatók:

  2020 legjobb torrent webhelyei; Melyek a legjobb torrentezési lehetőségeid

[0]: Ez a munkamenet neve. Alapértelmezés szerint számozottak, nullával kezdődően. Az alábbiakban bemutatjuk, hogyan adhat értelmes elnevezéseket a foglalkozásoknak.
0:bash*: A 0 azt jelzi, hogy ez az első ablak ebben a munkamenetben. Ebben a munkamenetben az egyetlen folyamat a bash. Ha futtat egy programot, itt megjelenik a neve. A csillag

azt jelenti, hogy ezt az ablakot nézi. Minden alkalommal, amikor egy tmux munkamenetben új ablakot hoz létre, az ablak száma és a benne futó program neve megjelenik az állapotsoron.

A képernyőparancs nem ad állapotsort. Vakon kell repülnie, és az eszére kell hagyatkoznia, hogy tudja, mi történik, ami egy kis gyakorlást igényel.

A pozitív oldal, hogy nem veszít el egy sor terminál ablakot. Természetesen általában ki kell bővítenie a terminálablakot, hogy érdemes legyen terminálmultiplexert használni. Ebben az esetben az állapotsor egy 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.

A parancsokat a tmux billentyűleütésekkel kapja meg, és ennek két része van. Először nyomja meg a Ctrl+B billentyűkombinációt, hogy felhívja a tmux figyelmét. Ezután gyorsan megnyomja a következő gombot a totmux parancs elküldéséhez. A parancsokat betűk, számok, írásjelek vagy nyílbillentyűk lenyomásával adhatjuk ki.

Ez ugyanaz a képernyőn, kivéve, hogy megnyomja a Ctrl+A billentyűket, hogy felhívja a figyelmet.

Az ablak bezárásához nyomja le a Ctrl+B billentyűkombinációt, majd gyorsan nyomja meg az X gombot. Az állapotsor borostyánsárgára vált. Ezután meg kell erősítenie, 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. Ezután nem kell Entert nyomnia; I vagy N elég a választás regisztrálásához.

Ha megnyomja az Y gombot, az ablak bezárul. Mivel ez az egyetlen ablak ebben a munkamenetben, a munkamenet megszakad.[exited]A tmux munkamenet bezárul, és visszatér a parancssorba, ahonnan elindította a tmux-ot. Látni fogod „

” a terminál ablakában.

Ez úgy tűnhet, mintha a nyilvánvalót mondja, de ez egy megerősítés, hogy lezárta a munkamenetet, és nem hagyta leválasztva és futni. Az alábbiakban a leválási munkameneteket tárgyaljuk.

Elnevezett tmux munkamenet indítása

Ha rendszeresen indít több tmux-munkamenetet, akkor gyorsan értékelni fogja, hogy mindegyiknek értelmes nevet ad. A munkameneteket a képernyőn is elnevezheti, de azok nem jelennek meg sehol a munkamenet ablakokban.

tmux new -s geek-1

A tmux munkamenetnévvel való indításához használja az új (új munkamenet) parancsot és a -s (munkamenet neve) kapcsolót. A munkamenetünk neve „geek-1”, ezért a következőket írjuk be:

Amikor a tmux munkamenet betöltődik, a „geek-1” jelenik meg első bejegyzésként az állapotsorban, a bal szélen.

Egy tmux munkamenet a névvel

További Windowsok hozzáadása Ha új ablakot szeretne létrehozni az aktuális munkamenetben, nyomja le a Ctrl+B, majd a C billentyűkombinációt. Az aktuális munkamenetben egy üres terminálablak jelenik meg. Tehát ebben az új ablakban futni fog valami, kezdjük el a dmesg parancsot

dmesg -w

a -w (follow) opcióval:

  Az integrált grafika hamarosan jobb lesz

Most két ablakunk van a munkamenetben; az egyik a tetején fut, a másik a dmesg. Egyszerre azonban csak egyet láthatunk (erről egy pillanat alatt bővebben).

Vessen egy pillantást az állapotsor bal oldalára. Még mindig a „geek-1” tmux munkamenetben vagyunk. A nulladik ablakban a top fut, az első ablakban pedig a dmesg. A csillag

miután a dmesg megmondja, melyik ablak látható.
Az ablakok közötti ugráshoz nyomja meg a Ctrl+B billentyűkombinációt, majd a következő billentyűk egyikét:
N: A következő ablak megjelenítése.

P: Az előző ablak megjelenítése.

0-tól 9-ig: 0-tól 9-ig számozott ablak megjelenítése.

A listából is választhat ablakot. Ha megnyomja a Ctrl+B, majd a W billentyűket, megjelenik az ablakok listája.

A borostyánsárga kiemelősáv mozgatásához nyomja meg a fel vagy le nyilat, a Kezdőlap vagy a Vége gombot. A kijelző alsó része a tartalom előnézetét mutatja a kiemelt ablakban.

Nyomja meg az Enter billentyűt a kiemelt ablakra lépéshez, vagy az Esc billentyűt, ha váltás nélkül szeretne kilépni az ablaklistából.

Munkamenetek leválasztása és rögzítése

Ha megnyomja a Ctrl+B, majd a D billentyűket, leválasztja a munkamenetet. Továbbra is futni fog a háttérben, de nem láthatja, és nem fogja tudni használni.

A munkamenet csúcsán kezdtük, így van egy futó folyamat, amellyel demonstrálhatunk. Ezután nyomjuk meg a Ctrl+B, majd a D billentyűkombinációt. A munkamenet eltűnik, és háttérmunkamenetté válik.

Visszatérünk az eredeti terminálablakhoz. Üzenet érkezik a tmux-tól, hogy a munkamenet levált. Arra a névre is emlékeztet, amelyet a foglalkozásnak adtunk. Ez azért hasznos, mert ezt használjuk a háttérmunkamenethez csatolásra, majd visszaállításra interaktívra.

tmux attach-session -t geek-1

Leválasztott munkamenet csatolásához a magától értetődő attach-session parancsot használjuk a -t (target session) kapcsolóval. Megadjuk a visszahívni kívánt munkamenet nevét is.

A következőket írjuk be:

A foglalkozásunk visszatér, és ismét látható, interaktív munkamenetté válik.

A munkamenet leválasztása előtt elindított hosszan tartó vagy folyamatos folyamatok továbbra is a háttérben futnak (hacsak nem fejezték be), amikor csatolja a munkamenetet.

a képernyő képes erre, de nem olyan intuitív módon.

tmux new -s geek-2

Több munkamenet kezelése

dmesg -w

Nyissunk meg egy másik terminálablakot, és indítsunk el egy új tmux munkamenetet „geek-2” néven:

Ebben a munkamenetben elindítjuk a dmesg-t:

Most megvan az eredeti „geek-1” tmux munkamenetünk, és egy új, „geek-2” néven.

Az állapotsor azt mutatja, hogy ezt a munkamenetet „geek-2”-nek hívják, és van egy ablaka, amelyen a dmesg fut.

Ha lenyomjuk a Ctrl+B, majd a D billentyűket, leválasztjuk a munkamenetet.

Visszatérve a „geek-1” tmux munkamenetbe, megnyomjuk a Ctrl+B, majd az S billentyűket a tmux munkamenetek listájának megtekintéséhez.

Az egyértelműség kedvéért ez a munkamenetek listája. A korábban látott hasonló megjelenítés egyetlen munkamenet ablakainak listája volt.

A borostyánsá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 nyilat, megjelennek a kiemelt munkamenet ablakai.

Nyomja meg az Enter billentyűt, hogy a kiemelt munkamenetre vagy ablakra lépjen, vagy az Esc billentyűt, hogy a munkamenetek módosítása nélkül lépjen ki a munkamenetlistából. Ha új munkamenetet választ, a jelenlegi leválik, és a kiválasztott csatlakozik.

  Mi a teendő, ha vizet vagy kávét öntött laptopjára

Mielőtt ezt megtettük volna, leválasztottuk a „geek-2” munkamenetet. Ezt azonban megteheti olyan munkamenetekkel, amelyek még mindig az eredeti terminálablakokhoz vannak csatolva. Ha ezt megteszi, a képernyő bármely változása egyszerre jelenik meg mindkét tmux munkamenetben.

A képernyőparancs is megteheti ezt egy hasonló parancskészleten keresztül.

Munka ablaktáblákkal

Ha megnyomja a Ctrl+B billentyűkombinációt, majd dupla idézőjeleket („”), az ablakot vízszintesen két panelre osztja.

Ez csak az aktuális ablakot érinti; a többi a munkamenetben nem módosul. A felső ablaktáblában a tmux ls parancsot használtuk a munkamenet ablakainak listázásához. Kettő van, és az állapotsor azt jelzi, hogy az első ablakban vagyunk. Ha átugrunk a nulla ablakra a Ctrl+B, majd a 0 (nulla) megnyomásával, akkor azt látjuk, hogy ú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 úgy tudjuk megmutatni, hogy minden ablaktáblában különböző parancsokat futtatunk.

A következőket írjuk be:

uname -a

ls -hl

Ha egyik ablaktábláról a másikra szeretne lépni, nyomja meg a Ctrl+B, majd a fel, le, balra vagy jobbra nyilat.

Ha megnyomja a Ctrl+B billentyűkombinációt, majd a százalékjelet (%), az aktuális ablaktábla függőlegesen felosztódik.

Nyomja le a Ctrl+B, majd a Q billentyűkombinációt, hogy a tmux rövid időre felvillanjon az egyes panelek száma.

Ezeket a számokat a tmux promptokban és üzenetekben 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ánsárgára változik, és a rendszer kéri, hogy erősítse meg, hogy be szeretné zárni az adott panelszámot. Nyomja meg az Y gombot az ablaktábla eltávolításához, vagy nyomja meg az N gombot, ha a dolgokat úgy hagyja, ahogy vannak.

Ha megnyomja az Y gombot, az ablaktábla törlődik.

A képernyőparancsnak is vannak ablaktáblái, de ezek használata kevésbé intuitív. A képernyővel kapcsolatban az bosszant bennünket, hogy ha leválaszt egy munkamenetet az ablaktáblákkal, akkor azok eltűnnek, amikor újra csatlakoztatja azt. Ez nagyon hamar elöregszik.

A Ctrl+B csalólap

Az alábbiakban mellékeltünk egy csalólapot a tmux-ban használható különféle parancsokról.
Munkamenet parancsok
S: Sorolja fel a munkameneteket.
$: Az aktuális munkamenet átnevezése.

D: Az aktuális munkamenet leválasztása.

Ctrl+B, majd ?: Súgó oldal megjelenítése a tmux-ban.
Ablakparancsok
C: Hozzon létre egy új ablakot.
,: Az aktuális ablak átnevezése.
W: Sorolja fel az ablakokat.
N: Ugrás a következő ablakra.

P: Ugrás az előző ablakra.

0-tól 9-ig: Ugrás a megadott ablakszámra.
A panel parancsai
%: Vízszintes felosztás létrehozása.
“: Függőleges felosztás létrehozása.
H vagy balra nyíl: Lépjen a bal oldali panelre.
I vagy jobbra nyíl: Lépjen a jobb oldali panelre.
J vagy lefelé mutató nyíl: Lépjen az alábbi panelre.
K vagy felfelé mutató nyíl: Lépjen a fenti panelre.
K: Röviden mutassa meg a panelszámokat.
O: Sorrendben mozoghat a paneleken. Minden egyes megnyomással a következőre léphet, amíg végig nem lépi az összeset.
}: Cserélje fel az aktuális ablaktáblát a következővel.

{: Cserélje fel az aktuális panel pozícióját az előzővel.

X: Az aktuális ablaktábla bezárása.

Hogyan hasonlítanak össze

Ami a funkcionalitást illeti, a képernyő és a tmux egyaránt hasonlóan teljesít, és ugyanazokat a fő funkciókat kínálja. A funkciók elérésének módja jelentősen eltér egymástól. A tmux finomabb, kényelmesebb módokat kínál a különféle funkciók eléréséhez. Azonban nem ez az egyetlen különbség.

A munkamenetek és ablakok átnevezése a tmux-ban remek, és az a tény, hogy a munkamenet újracsatlakoztatása során megtartja az ablaktáblákat, egy játékmódot jelent.

A képernyő viszont teljesen elveszíti az ablaktáblákat, amikor leválaszt és újra csatlakoztat egy munkamenetet. Ez szinte elég bosszantó ahhoz, hogy elkerülje a leválást.

A tmux sokkal többet tartalmaz, beleértve a hihetetlenül rugalmas szkriptelési képességeket. Tartozol magadnak, hogy megnézd.