Kuinka käyttää tmux Linuxissa (ja miksi se on parempi kuin näyttö)

  • Dave McKay

    @TheGurkha

  • May 14, 2020, 8: 00AM EDT
fatmawati achmad zaenuri/

Linux tmux – komento on pääte-multiplekseri, kuten screen. Sen puolestapuhujia on monia ja äänekkäitä, joten päätimme vertailla näitä kahta. Onko tmux oikeasti parempi, vai onko kyse vain siitä, että suositaan sitä, mitä osataan?

tmux vs. screen

sekä tmux että GNU screen – komennot ovat terminaalisia multipleksereitä. Niiden avulla voit olla useita ikkunoita yhden pääteikkunan sisällä, ja hyppiä edestakaisin niiden välillä. Ikkuna voidaan jakaa ruutuihin, joista jokainen antaa sinulle itsenäisen komentorivin.

voit myös irrottaa istunnon ja siitä tulee päättömäksi olio, joka pyörii taustalla-voit jopa sulkea sen käynnistäneen pääteikkunan. Kun olet valmis, voit avata uuden pääteikkunan ja liittää edelleen käynnissä olevan istunnon uudelleen. Voit myös tehdä tämän SSH-yhteyden kautta.

Mainos

voit irrottaa istunnon yhdellä tietokoneella, mennä kotiin ja kirjautua etätietokoneeseen. Kun yhteys on muodostettu uudelleen, voit liittää taustaistunnon uudelleen ja käyttää sitä vuorovaikutteisesti uudelleen.

mikä on ruutukomento?

screen – komento on myös terminaalikertoiminen, ja se on täynnä vaihtoehtoja. Saat lowdown kaikesta, mitä voit tehdä sen kanssa, tutustu syvälliseen artikkeliin.

tällä kertaa keskitytään tmux. Matkan varrella kerrotaan, miten screen käsittelee samaa ominaisuutta tai toimintoa.

Mainos

vain yksi asia harmitti screen. Käydään se sitten läpi ja katsotaan, josko tmux pärjäisi yhtään paremmin.

liittyvät: Kuinka käyttää Linuxin screen-komentoa

asentamalla tmux

kun taas screen on yleensä asennettu oletuksena suosittuihin Linux-jakeluihin, tmux ei ole. asentaaksesi tmux Ubuntuun, kirjoita seuraava:

sudo apt-get install tmux

Manjarossa voit käyttää pacman:

sudo pacman -Sy tmux

Fedora 31: ssä tmux on jo asennettu.

tmux-istunnon aloittaminen

aloittaa tmux, kirjoita se ja paina Enteriä:

tmux

pääteikkunassa näkyy tilarivi, kun olet tmux – istunnossa.

tilarivin oikeassa reunassa näkyy palvelimen nimi sekä aika ja päivämäärä. Vasemmalla puolella näkyy seuraavat istuntoon liittyvät tiedot:

  • : tämä on istunnon nimi. Oletusarvoisesti ne on numeroitu, alkaen nollasta. Käsittelemme, miten voit antaa mielekkäitä nimiä istuntoihin alla.
  • 0: bash*: 0 osoittaa, että tämä on tämän istunnon ensimmäinen ikkuna. Ainoa tässä istunnossa käynnissä oleva prosessi on bash. Jos suoritat ohjelman, sen nimi näkyy tässä. Tähti ( * ) tarkoittaa, että katselet tätä ikkunaa. Joka kerta kun luot uuden ikkunan tmux – istunnossa, sen ikkunanumero ja siinä käynnissä olevan ohjelman nimi lisätään tilariville.

screen komento ei anna tilariviä. Täytyy lentää sokkona ja luottaa älyynsä, että tietää mitä tapahtuu, mikä vaatii hieman harjoittelua.

Mainos

plussan puolella et menetä riviäkään pääteikkunakiinteistöjä. Tietenkin, voit yleensä laajentaa pääteikkunan tehdä käyttämällä terminaali multiplexer kannattavaa. Siinä tapauksessa, menetys yksi rivi tilarivin ei ole paljon ongelma. Olemme jättäneet pääteikkunoiden kuvat tähän oletuskokoon, jotta näet tiedot.

komennot annetaan tmux näppäinpainalluksilla, ja tässä on kaksi osaa. Paina ensin Ctrl + B saadaksesi tmuxn huomion. Tämän jälkeen voit nopeasti painaa seuraavaa näppäintä lähettääksesi komennontmux. Komentoja annetaan painamalla kirjaimia, numeroita, välimerkkejä tai nuolinäppäimiä.

se on sama screen, paitsi että painat Ctrl + A saadaksesi sen huomion.

sulje ikkuna painamalla Ctrl + B ja painamalla sitten nopeasti X: ää. Sitten sinua pyydetään vahvistamaan, että haluat tappaa ikkunan.

Mainos

paina Y sulkeaksesi ikkunan tai N, jos muutat mielesi. Sinun ei tarvitse painaa enteriä jälkeenpäin; Y tai N riittää rekisteröimään valintasi.

jos painat Y: tä, ikkuna sulkeutuu. Koska tämä on ainoa ikkuna tässä istunnossa, istunto lopetetaan.

tmux istunto on päättynyt ja olet palannut komentoriville, jolta käynnistit tmux. Näet ”” terminaalin ikkunassa.

tämä saattaa tuntua itsestäänselvyyden toteamiselta,mutta se on vahvistus siitä, että olet sulkenut istunnon etkä jättänyt sitä irralleen ja käynnissä. Keskustelemme irrottamisesta istunnoissa alla.

nimetyn tmux-Session aloittaminen

jos aloitat säännöllisesti useita tmux sessioita, huomaat nopeasti toimivuuden antaa jokaiselle niistä mielekäs nimi. Istuntoja voi nimetä myös screen, mutta ne eivät näy missään istuntoikkunoissa.

Mainos

jos haluat aloittaa tmux istunnon nimellä, käytä new (uusi istunto) – komentoa ja -s (istunnon nimi) – vaihtoehtoa. Istuntomme tulee olemaan nimeltään ”geek-1”, joten kirjoitamme seuraavat:

tmux new -s geek-1

kun tmux – istunto latautuu, ”geek-1” näkyy ensimmäisenä merkintänä tilarivillä, äärimmäisenä vasemmalla.

lisäämällä lisää ikkunoita

luodaksesi uuden ikkunan nykyiseen istuntoon painamalla Ctrl+B ja sitten C. saat tyhjän pääteikkunan nykyiseen istuntoon. Joten meillä on jotain käynnissä tässä uudessa ikkunassa, aloitetaan dmesg komento -w (follow) – valinnalla:

dmesg -w
Mainos

nyt istunnossa on kaksi ikkunaa; toinen on käynnissä top ja toinen dmesg. Voimme kuitenkin nähdä vain yhden kerrallaan (lisää siitä hetken kuluttua).

Katso tilarivin vasenta reunaa. Olemme edelleen ”geek-1” tmux sessiossa. Window Zerossa top on käynnissä ja ykkösikkunassa dmesg on käynnissä. Asteriski ( * ) dmesg jälkeen kertoo, mikä ikkuna on näkyvissä.

hypätäksesi ikkunoiden väliin, paina Ctrl+B, ja sitten yksi seuraavista näppäimistä:

  • N: Näytä seuraava ikkuna.
  • p: Näytä edellinen ikkuna.
  • 0-9: näytetään ikkuna, jonka numero on 0-9.

voit myös valita ikkunan luettelosta. Jos painat Ctrl+B ja sitten W, näkyviin tulee luettelo ikkunoista.

Mainos

voit siirtää ruskeaa korostuspalkkia painamalla ylös-tai Alasnuolia, kotiin tai päätyyn. Näytön alaosassa näkyy esikatselukuva korostetun ikkunan sisällöstä.

paina Enter siirtyäksesi korostettuun ikkunaan tai poistuaksesi Ikkunaluettelosta ilman vaihtoa.

istuntojen irrottaminen ja liittäminen

jos painat Ctrl + B ja sitten D, istunto irtoaa. Se jatkaa käynnissä taustalla, mutta et voi nähdä tai vuorovaikutuksessa sen kanssa.

olemme aloittaneet top sessiossa, joten meillä on käynnissä prosessi, jolla demonstroida. Sitten, painamme Ctrl + B, ja sitten D. istunto katoaa ja tulee Tausta istunto.

Mainos

palaamme alkuperäiseen pääteikkunaan. tmux viesti kertoo, että istunto on irrallinen. Se muistuttaa myös istunnolle antamastamme nimestä. Tämä on kätevä, koska se on mitä käytämme liittää Tausta istunto, ja sitten palauttaa sen interaktiivinen yksi.

erillisistunnon liittämiseen käytetään itsestään selvää attach-session-komentoa -t (kohdesessio) – valitsimella. Annamme myös sen istunnon nimen, jonka haluamme muistaa.

kirjoitamme seuraavat:

tmux attach-session -t geek-1

istuntomme palaa ja muuttuu jälleen näkyväksi, interaktiiviseksi istunnoksi.

kaikki pitkäkestoiset tai jatkuvat prosessit, jotka käynnistit ennen istunnon irrottamista, ovat edelleen käynnissä taustalla (elleivät ne ole päättyneet), kun liität istunnon.

screen pystyy tähän, mutta ei yhtä intuitiivisesti.

useiden istuntojen käsittely

avataan toinen pääteikkuna ja aloitetaan uusi tmux istunto nimeltä ”geek-2”:

tmux new -s geek-2

siinä istunnossa aloitamme dmesg:

dmesg -w
Mainos

now, we ’ ve got our our original ”geek-1” tmux session, and a new one called ” geek-2.”

tilariviltä näkyy, että tämä istunto on nimeltään ”geek-2”, ja siinä on yksi ikkuna, joka on käynnissä dmesg.

jos painamme Ctrl + B ja sitten D, irrotamme kyseisen istunnon.

Mainos

Takaisin ”geek-1” tmux sessiossa painamme Ctrl+B: tä ja sitten S: ää nähdäksemme listan tmux sessioista.

selvyyden vuoksi tämä on luettelo sessioista. Aiemmin näkemämme vastaava näyttö oli luettelo ikkunoista yhdessä istunnossa.

voit liikuttaa meripihkaista korostuspalkkia painamalla ylös-ja Alasnuolia, kotiin ja päähän. Alaosa näyttää esikatselun korostetun istunnon sisällöstä.

jos painat oikeaa nuolta, korostetun istunnon ikkunat näkyvät.

Mainos

paina Enter siirtyäksesi korostettuun istuntoon tai ikkunaan tai Esc poistuaksesi istuntoluettelosta muuttamatta istuntoja. Jos valitset uuden istunnon, nykyinen istuntosi irtoaa ja valitsemasi istunto liitetään.

irrotimme ”geek-2” – session ennen tätä. Voit kuitenkin tehdä tämän istunnoilla, jotka ovat edelleen kiinni alkuperäisissä pääteikkunoissaan. Kun teet niin, kaikki näytön muutokset näkyvät samanaikaisesti molemmissa tmux istunnoissa.

screen – komento voi tehdä tämänkin samankaltaisen komentojoukon kautta.

työskentely Ikkunaruuduilla

jos painat Ctrl+B ja sen jälkeen kaksinkertaiset lainausmerkit ( ”” ), ikkuna jaetaan vaakatasossa kahteen laitaan.

Mainos

tämä vaikuttaa vain nykyiseen ikkunaan; muita istunnossa olevia ei muuteta. Olemme käyttäneet komentoa tmux ls yläpaneelissa listataksemme tämän istunnon ikkunat. Niitä on kaksi, ja tilannerivi kertoo, että olemme ikkunassa yksi. Jos hyppäämme ikkunaan nolla painamalla Ctrl+B, ja sitten 0 (nolla), näemme sen olevan juuri niin kuin jätimme sen.

nämä ovat kaksi itsenäistä komentoriviä, eivät kahta näkymää yhdessä ikkunassa; ne ovat erillisiä ja erillisiä kuoria. Voimme näyttää tämän ajamalla eri komennon jokaisessa ruudussa.

kirjoitamme seuraavat:

uname -a

ls -hl

jos haluat siirtyä ruudusta toiseen, paina Ctrl + B ja sitten joko ylös -, Alas -, Vasen-tai oikea nuolinäppäintä.

jos painat Ctrl + B, ja sitten prosenttimerkki (%) se jakaa nykyisen ruudun pystysuunnassa.

Mainos

paina Ctrl+B ja sen jälkeen Q, jotta tmux väläyttää lyhyesti kunkin ruudun numeroa.

näitä numeroita käytetään kehotteissa ja viesteissä tmux. Sulje nykyinen paneeli painamalla Ctrl+B ja sitten X. Tilarivi muuttuu meripihkaan, ja sinua pyydetään vahvistamaan, että haluat sulkea kyseisen ruudun numeron. Paina Y poistaaksesi ruudun tai N jättääksesi asiat ennalleen.

jos painat Y: tä, ruutu poistetaan.

screen komennossa on myös ruutuja, mutta ne ovat taas vähemmän intuitiivisia käyttää. Asia, joka harmittaa meitä screen: ssä on se, että jos irrotat istunnon paneeleilla, ne katoavat, kun kiinnität sen uudelleen. Tämä vanhenee nopeasti.

a Ctrl + B lunttilappu

olemme sisällyttäneet lunttilapun eri komennoista, joita voit käyttää tmux alla.

Session Commands

  • s: List sessions.
  • $: nimeä nykyinen istunto uudelleen.
  • D:irrota nykyinen istunto.
  • Ctrl+B, ja sitten ?: Näytä ohjesivu tmux.

ikkunan komennot

  • C: Luo uusi ikkuna.
  • ,: Nimeä nykyinen ikkuna uudelleen.
  • W: listaa ikkunat.
  • N: siirry seuraavaan ikkunaan.
  • P: Siirry edelliseen ikkunaan.
  • 0-9: Siirry annettuun ikkunanumeroon.

Pane-komennot

  • %: luo vaakasuora jako.
  • ”: luo pystysuora jako.
  • H tai Vasen nuoli: siirry vasemmalla olevaan paneeliin.
  • I tai Oikea nuoli: Siirry oikealla olevaan paneeliin.
  • J tai Alanuoli: Siirry alla olevaan paneeliin.
  • K tai YLÄNUOLI: siirry yllä olevaan paneeliin.
  • Q: Näytä lyhyesti ruudun numerot.
  • O: liikuta lasien läpi järjestyksessä. Jokainen painallus vie seuraavaan, kunnes käyt kaikki läpi.
  • }: Vaihda nykyisen ruudun sijainti seuraavaan.
  • {: Vaihda nykyisen ruudun sijainti edelliseen.
  • X: Sulje nykyinen paneeli.

miten ne vertaavat

toiminnallisuudeltaan, screen ja tmux molemmat toimivat samalla tavalla ja tarjoavat samat pääpiirteet. Se, miten käytät näitä ominaisuuksia, on selvästi erilainen. tmux tarjoaa liukkaampia, mukavampia tapoja päästä eri toimintoihin. Se ei kuitenkaan ole ainoa ero.

Mainos

mahdollisuus nimetä istunnot ja ikkunat uudelleen tmux on siisti, ja se, että se säilyttää ruudut, kun istunnon kiinnittää uudelleen, muuttaa pelin.

screen, toisaalta, täysin menettää lasit, kun irrotat ja kiinnitä istunto uudelleen. Tämä on lähes ärsyttävää tarpeeksi, jotta voit välttää irtoaminen ensinnäkin.

tmux on niin paljon muutakin, mukaan lukien sen uskomattoman joustavat skriptauskyvyt. Olet itsellesi velkaa sen, että tarkistat sen.

Dave McKay
Dave McKay käytti ensimmäisen kerran tietokoneita, kun reikäpaperinauha oli muodissa, ja hän on ohjelmoinut siitä lähtien. Yli 30 vuotta IT-alalla työskenneltyään hän on nyt päätoiminen teknologiatoimittaja. Uransa aikana hän on työskennellyt freelance-ohjelmoijana, kansainvälisen ohjelmistokehitystiimin päällikkönä, IT-palveluiden projektipäällikkönä ja viimeksi tietosuojavastaavana. Dave on Linux-evankelista ja avoimen lähdekoodin puolestapuhuja.Lue Koko Bio ”