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
- mi a képernyő parancs?
- telepítése tmux
- tmux munkamenet indítása
- egy elnevezett tmux munkamenet indítása
- további ablakok hozzáadása
- szekciók leválasztása és csatolása
- több munkamenet kezelése
- ablaktáblák használata
- A Ctrl+B Cheat Sheet
- munkamenet parancsok
- Ablakparancsok
- ablaktábla parancsok
- hogyan hasonlítják össze
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 tá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.
leválaszthat egy munkamenetet 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 szintén terminál multiplexer, é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 ascreen
kapcsán. Ezt majd megbeszéljük, ha odaértünk, és meglátjuk ,hogy atmux
viteldíjak jobbak-e.
kapcsolódó: hogyan kell használni a Linux képernyő parancs
telepítése tmux
míg screen
általában alapértelmezés szerint telepítve a népszerű Linux disztribúciók, tmux
nem. telepíteni tmux
Ubuntu, írja be a következő:
sudo apt-get install tmux
a Manjaro-n használhatja apacman
:
sudo pacman -Sy tmux
A Fedora 31-en,tmux
már telepítve van.
tmux munkamenet indítása
a tmux
indításához csak írja be, és nyomja meg az Enter billentyűt:
tmux
a terminál ablakában megjelenik egy állapotsor, amikor egy 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 a
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.
a parancsokat atmux
adja meg 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 a 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 lehet megadni.
Ez ugyanaz a screen
, kivéve 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 le és futtatta. Az alábbiakban tárgyaljuk a leválasztási üléseket.
egy elnevezett tmux munkamenet indítása
ha rendszeresen több tmux
munkamenetet indít, akkor gyorsan értékelni fogja a funkciót, ha mindegyiküknek értelmes nevet ad. A munkameneteket a screen
fájlban is megnevezheti, de ezek a munkamenetek ablakaiban sehol nem jelennek meg.
atmux
munkamenet nevével történő indításához használja anew
(új munkamenet) parancsot, valamint a-s
(munkamenet neve) opciót. A munkamenetünk neve “geek-1″lesz, ezért a következőket írjuk be:
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. Az aktuális munkamenetben egy üres terminál ablak jelenik meg. Tehát 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 fut top
, a másik dmesg
. 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 nulladik ablakban a top fut, az első ablakban pedig a dmesg
fut. A dmesg
utáni csillag (*) jelzi, hogy melyik ablak látható.
az ablakok 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 – tól 9-ig: 0-tól 9-ig számozott ablak megjelenítése.
a listából is kiválaszthat egy ablakot. 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 kijelölt ablakra lépéshez, vagy az Esc billentyűt az ablaklista váltás nélküli elhagyásához.
szekciók leválasztása és csatolása
ha megnyomja a Ctrl+B, majd a D billentyűkombinációt, akkor leválasztja a szekciót. Továbbra is a háttérben fog futni, de nem fogja látni vagy kölcsönhatásba lépni vele.
elindítottuk atop
a munkamenetben, így van egy futó folyamatunk, amellyel bemutathatjuk. 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, hogy a munkamenet leválasztva van. Emlékeztet bennünket 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 interaktívvá.
különálló munkamenet csatolásához a magától értetődőattach-session
parancsot használjuk a-t
(cél munkamenet) opcióval. Megadjuk a felidézni kívánt ülés nevét is.
a következőket írjuk be:
tmux attach-session -t geek-1
a munkamenetünk 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 (hacsak nem fejezték be) 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 indítsunk el egy új tmux
“geek-2″nevű munkamenetet:
tmux new -s geek-2
ebben a munkamenetben elindítjuk a dmesg
:
dmesg -w
most, megvan az eredeti “geek-1” tmux
munkamenet, és egy új, a “Geek-2.”
Az állapotsor azt mutatja, hogy ezt a munkamenetet “geek-2” – nek hívják, és egy ablaka van, amelyen a dmesg
fut.
ha megnyomjuk a Ctrl+B, majd a D billentyűkombinációt, leválasztjuk a munkamenetet.
vissza a “geek-1”tmux
munkamenetben, nyomjuk meg a Ctrl+B, majd az S gombot atmux
munkamenetek listájának megtekintéséhez.
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, hogy a kijelölt munkamenetre vagy ablakra LÉPJEN, vagy az Esc billentyűt, hogy a munkamenetek módosítása nélkül kilépjen a munkamenetek listájából. Ha új munkamenetet választunk, az aktuális munkamenet leválik, a kiválasztott pedig csatolva lesz.
ezt megelőzően leválasztottuk a “geek-2” munkamenetet. Ezt azonban olyan munkamenetekkel teheti meg, amelyek még mindig az eredeti terminálablakokhoz vannak csatolva. Ha ezt megteszi, a képernyő változá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 tmux ls
parancsot használtuk a felső ablaktáblában 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őt í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ékjel (%)
függőlegesen osztja fel az aktuális panelt.
nyomja meg a Ctrl+B billentyűkombinációt, majd a Q billentyűkombinációt, hogy atmux
röviden villogtassa az egyes ablaktáblák számát.
ezeket a számokat a tmux
utasításaiban és üzeneteiben használják. Nyomja meg a Ctrl+B billentyűkombinációt, 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 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 táblái, de ismét kevésbé intuitív a használata. A dolog, ami bosszant minket a screen
kapcsán, az az, hogy ha leválasztja a munkamenetet ablaktáblákkal, akkor azok eltűnnek, amikor újra csatlakoztatja a munkamenetet. Ez nagyon gyorsan megöregszik.
A Ctrl+B Cheat Sheet
már benne egy puskát a különböző parancsok segítségéveltmux
alatt.
munkamenet parancsok
- S: munkamenetek listája.
- $: az aktuális munkamenet átnevezése.
- D: Válassza le az aktuális munkamenetet.
- Ctrl+B, majd ?: Súgóoldal megjelenítése
tmux
.
Ablakparancsok
- C: új ablak létrehozása.
- ,: az aktuális ablak átnevezése.
- W: az ablakok felsorolása.
- N: ugrás a következő ablakra.
- P: Ugrás az előző ablakra.
- 0 – tól 9-ig: lépjen a megadott ablakszámra.
ablaktábla parancsok
- %: vízszintes felosztás létrehozása.
- “: 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: Lépjen 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.
- Q: 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
karcsúbb, kényelmesebb módszereket kínál a különféle funkciók eléréséhez. Ez azonban nem az egyetlen különbség.
a munkamenetek és ablakok átnevezésének lehetősége atmux
fájlban rendben van, és az a tény, hogy megtartja az ablaktáblákat a munkamenet újracsatolásakor, játékváltó.
screen
viszont teljesen elveszíti az ablaktáblákat, amikor leválasztja és visszahelyezi a munkamenetet. Ez szinte elég bosszantó ahhoz, hogy eleve elkerülje a leválasztást.
sokkal több van a tmux
, beleértve a hihetetlenül rugalmas szkriptelési képességeit. Tartozol magadnak annyival, hogy megnézed.
Dave McKay először használt számítógépeket, amikor a lyukasztott papírszalag divatos volt, és azóta is programoz. Az informatikai iparban töltött több mint 30 év után most teljes munkaidős technológiai újságíró. Pályafutása során szabadúszó programozóként, egy nemzetközi szoftverfejlesztő csapat vezetőjeként, informatikai szolgáltatási projektmenedzserként, legutóbb pedig Adatvédelmi tisztviselőként dolgozott. Dave Linux evangélista és nyílt forráskódú szószóló.Teljes életrajz ”