Articles

How to Use tmux on Linux (and Why It ’ s Better Than Screen)

  • Dave McKay

    @TheGurkha

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

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

tmux vs. screen

sekä tmux että GNU screen komennot ovat terminaalikertoimia. 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 se muuttuu päättömäksi kokonaisuudeksi, 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 näytön komento?

screen komento on myös pääte-multiplekseri, 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 läpi, kun päästään siihen, ja katsotaan, jos tmux maksaa yhtään paremmin.

liittyvät: Kuinka käyttää Linuxin näyttökomennoa

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

Manjarolla voi käyttää pacman:

sudo pacman -Sy tmux

Fedora 31: llä, tmux on jo asennettu.

Aloita tmux-istunto

aloittaaksesi tmux, kirjoita se ja paina Enter:

tmux

pääteikkuna näyttää tilarivin, kun olet tmux istunto.

tilarivin oikealla puolella näkyy palvelimen nimi sekä aika ja päivämäärä. Vasemmalla puolella näkyy seuraava istuntoon liittyvä tieto:

  • : 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ääteikkunan kiinteistö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äimillä, ja tähän on kaksi osaa. Paina ensin Ctrl + B saadaksesi tmuxn huomion. Tämän jälkeen painat nopeasti 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.

sulkeaksesi ikkunan, paina Ctrl+B ja paina sitten nopeasti X. tilarivi muuttuu kellanruskeaksi. 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 vaikuttaa siltä kuin se toteaisi itsestäänselvyyden, 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

aloittaaksesi tmux istunnon nimen kanssa, käytä new (uusi istunto) – komentoa ja -s (istunnon nimi) – vaihtoehtoa. Istuntomme tulee olemaan nimeltään ”geek-1”, joten kirjoitamme seuraavaa:

tmux new -s geek-1

kun tmux session 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 (seuraa) vaihtoehto:

dmesg -w
Mainos

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

Katso tilarivin vasenta reunaa. Ollaan vielä ”geek-1” tmux sessiossa. Ikkunassa nolla on päällä ja ikkunassa yksi, dmesg on käynnissä. dmesg perässä oleva asteriski (*) kertoo, mikä ikkuna on näkyvissä.

hypätäksesi ikkunoiden välissä, 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 listasta. Jos painat Ctrl+B ja sitten W, näkyviin tulee luettelo ikkunoista.

Mainos

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

paina Enter siirtyäksesi korostettuun ikkunaan tai Esc poistuaksesi ikkunaluettelosta vaihtamatta.

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 istunnossa, 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 kertoo, että istunto on irrotettu. 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)-vaihtoehtoa. Annamme myös sen istunnon nimen, jonka haluamme muistaa.

kirjoitamme seuraavaa:

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 voi tehdä tämän, mutta ei yhtä intuitiivisesti.

useiden istuntojen käsittely

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

tmux new -s geek-2

siinä sessiossa aloitetaan dmesg:

dmesg -w
advertisement

now, we ’ ve got 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, jota ajetaan dmesg.

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

Advertisement

Back in the ”geek-1” tmux session, painamme Ctrl+B, ja sitten S nähdäksesi listan tmux sessions.

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 kuin teimme tämän. Voit kuitenkin tehdä tämän istunnoilla, jotka ovat edelleen kiinni alkuperäisissä pääteikkunoissaan. Tällöin mahdolliset näytön muutokset näkyvät samanaikaisesti molemmissa tmux sessioissa.

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

työskentely Ikkunaruuduilla

Jos painat Ctrl+B: tä 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 tmux ls komentoa 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 seuraavaa:

uname -a

ls -hl

siirtyäksesi ruudusta toiseen paina Ctrl+B ja sen jälkeen joko ylös, alas, vasemmalle tai oikealle nuolta.

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

Mainos

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

näitä numeroita käytetään kehotteissa ja viesteissä osoitteesta 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 taas ne ovat vähemmän intuitiivisia käyttää. Asia, joka harmittaa meitä screen on, 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 paneelinumerot.
  • O: siirrä ruutujen 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

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

screen puolestaan menettää ruudut kokonaan, kun istunnon irrottaa ja kiinnittää uudelleen. Tämä on lähes ärsyttävää tarpeeksi, jotta voit välttää irtoaminen ensinnäkin.

tmux sisältää 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.Read Full Bio ”