How to Use tmux on Linux (and Why It ’ s Better Than Screen)
- Dave McKay
@TheGurkha
- May 14, 2020, 8:00am EDT
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
- mikä on näytön komento?
- asentamalla tmux
- Aloita tmux-istunto
- nimetyn tmux-Session aloittaminen
- lisäämällä lisää ikkunoita
- istuntojen irrottaminen ja liittäminen
- useiden istuntojen käsittely
- työskentely Ikkunaruuduilla
- a Ctrl+B lunttilappu
- Session Commands
- ikkunan komennot
- Pane-komennot
- miten ne vertaavat
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.
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.
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 ikkunantmux
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.
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 tmux
n 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.
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.
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
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.
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.
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
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.
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.
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.
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.
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.
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 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 ”