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?
Tartalomjegyzék
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:
[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:
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:
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.
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.