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

  • Dave McKay

    @TheGurkha

  • május 14, 2020, 8:00am EDT
fatmawati achmad zaenuri/

a Linux tmuxparancs 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.

hirdetés

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.

hirdetés

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 egy tmux 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.

hirdetés

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 tmuxfigyelmét. Ezután gyorsan nyomja meg a következő gombot, hogy parancsot küldjön atmuxcí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.

hirdetés

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 tmuxmunkamenet 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.

hirdetés

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
hirdetés

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.

hirdetés

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 topa 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.

hirdetés

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
hirdetés

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.

hirdetés

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.

hirdetés

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.

hirdetés

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.

hirdetés

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.

hirdetés

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
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 “