Articles

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

hirdetés

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.

hirdetés

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

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

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

hirdetés

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

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.

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

hirdetés

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

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.

hirdetés

vissza a “geek-1”tmuxmunkamenetben, 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.

hirdetés

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.

hirdetés

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.

hirdetés

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.

Advertisement

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