Slik Bruker du tmux På Linux (Og Hvorfor Det Er Bedre Enn Skjermen)

  • Dave McKay

    @TheGurkha

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

Linux tmux kommandoen er en terminal multiplexer, som screen. Dens talsmenn er mange og vokal, så vi bestemte oss for å sammenligne de to. Er tmux virkelig bedre, eller er det bare et tilfelle av å foretrekke det du vet?

tmux vs. screen

både kommandoene tmux OG GNU screen er terminalmultipleksere. De lar deg ha flere vinduer i et enkelt terminalvindu, og å hoppe frem og tilbake mellom dem. Et vindu kan deles inn i ruter, som hver gir deg en uavhengig kommandolinje.

Du kan også koble fra en økt, og det blir en hodeløs enhet som kjører i bakgrunnen-du kan til og med lukke terminalvinduet som lanserte det. Når du er klar, kan du åpne et nytt terminalvindu og feste den fortsatt løpende økten på nytt. Du kan også gjøre dette over EN SSH-tilkobling.

Annonse

du kan koble fra en økt på en datamaskin, gå hjem og logge på den eksterne datamaskinen. Når du kobler til igjen, kan du feste bakgrunnsøkten på nytt og bruke den interaktivt igjen.

hva Er skjermkommandoen?

kommandoen screen er også en terminal multiplexer, og den er fullpakket med alternativer. For lowdown på alt du kan gjøre med det, sjekk ut vår grundig artikkel.

Denne gangen skal vi konsentrere oss om tmux. Når vi går sammen, nevner vi hvordan screen håndterer samme funksjon eller funksjon.

Annonse

Bare en ting irritert oss om screen. Vi vil dekke det når vi kommer til det, og se om tmux fares noe bedre.

RELATERT: Slik Bruker Du Linux ‘ s screen Command

Installerer tmux

mens screen vanligvis er installert som standard på populære Linux-distribusjoner, er tmux ikke. for å installere tmux På Ubuntu, skriv inn følgende:

sudo apt-get install tmux

På Manjaro kan du bruke pacman:

sudo pacman -Sy tmux

På Fedora 31 er tmux allerede installert.

Starte en tmux-Økt

for å starte tmux , skriv det bare inn Og trykk Enter:

tmux

terminalvinduet viser en statuslinje når du er i en tmux – økt.

høyre side av statuslinjen viser vertsnavnet og klokkeslett og dato. Venstre side viser følgende øktrelatert informasjon:

  • : dette er navnet på sesjonen. Som standard er de nummerert, og starter med null. Vi dekker hvordan du kan gi meningsfulle navn til økter nedenfor.
  • 0: bash*: 0 indikerer at dette er det første vinduet i denne økten. Den eneste prosessen som kjører i denne økten er bash. Hvis du kjører et program, vises navnet her. Stjernen ( * ) betyr at dette er vinduet du ser på. Hver gang du oppretter et nytt vindu i en tmux – økt, legges vindunummeret og navnet på programmet som kjører i det, til statuslinjen.

kommandoen screen gir deg ikke en statuslinje. Du må fly blind og stole på vettet å vite hva som skjer, som tar litt øvelse.

Annonse

på plussiden, vil du ikke miste en linje av terminal vindu eiendom. Selvfølgelig vil du normalt utvide terminalvinduet for å gjøre bruk av en terminal multiplexer verdt. I så fall er tapet av en linje for statuslinjen ikke mye av et problem. Vi har forlatt bildene av terminalvinduene her i standardstørrelsen, slik at du kan se informasjonen.

Kommandoer er gitt til tmux ved hjelp av tastetrykk, og det er to deler til dette. Først trykker Du Ctrl + B for å få tmux‘s oppmerksomhet. Deretter trykker du raskt på neste for å sende en kommando tiltmux. Kommandoer er gitt ved å trykke på bokstaver, tall, skilletegn eller piltastene.

Det er det samme i screen, bortsett fra at Du trykker Ctrl + A for å få oppmerksomheten.

for å lukke vinduet, trykk Ctrl + B, og trykk deretter Raskt X. statuslinjen blir gul. Du blir deretter bedt om å bekrefte at du vil drepe vinduet.

Annonse

Trykk Y for å lukke vinduet Eller N Hvis du ombestemmer deg. Du trenger ikke å trykke Enter etterpå; Y eller N er nok til å registrere ditt valg.

hvis Du trykker På Y, lukkes vinduet. Fordi dette er det eneste vinduet i denne økten, avsluttes økten.

tmux – økten er stengt, og du kommer tilbake til kommandolinjen som du startet tmuxfra. Du vil se «» i terminalvinduet.

Dette kan virke som om det er åpenbart, men det er en bekreftelse på at du har lukket økten og ikke forlatt den løsrevet og kjører. Vi diskuterer løsningsøkter nedenfor.

Starte en navngitt tmux-Økt

hvis du regelmessig starter flere tmux økter, vil du raskt sette pris på funksjonaliteten ved å gi hver av dem et meningsfylt navn. Du kan også navngi økter i screen, men de vises ikke hvor som helst i øktvinduene.

Annonse

hvis du vil starte tmux med et øktnavn, bruker du kommandoen new (ny økt) og alternativet -s (øktnavn). Vår sesjon kommer til å bli kalt «geek-1,» så vi skriver følgende:

tmux new -s geek-1

når økten tmux lastes, vises» geek-1 » som den første oppføringen i statuslinjen, helt til venstre.

Legge Til Flere Vinduer

for å opprette et nytt vindu i gjeldende økt, trykk Ctrl + B og Deretter C. Du får et tomt terminalvindu i gjeldende økt. Så vi har noe som kjører i dette nye vinduet, la oss starte kommandoen dmesg med -w (følg) alternativet:

dmesg -w
Annonse

nå har vi to vinduer i økten; en kjører top, og den andre dmesg. Vi kan bare se en om gangen, skjønt (mer om det i et øyeblikk).

ta en titt på venstre side av statuslinjen. Vi er fortsatt i» geek-1 » tmux økten. I window zero kjører top, og i window one kjører dmesg. Stjernen ( * ) etter dmesg forteller oss hvilket vindu som er synlig.

for å hoppe mellom vinduer, trykk Ctrl + B, og deretter en av følgende tastene:

  • N: Vis det neste vinduet.
  • P: Vis forrige vindu.
  • 0 til 9: Vis et vindu nummerert 0 til 9.

Du kan også velge et vindu fra en liste. Hvis Du trykker Ctrl + B, Og Deretter W, vises en liste over vinduer.

Annonse

trykk På Pil Opp Eller Pil Ned, Home eller End for å flytte den gule markeringslinjen. Den nederste delen av skjermen viser en forhåndsvisning av innholdet i det uthevede vinduet.

Trykk Enter for å gå til det uthevede vinduet, Eller Esc for å forlate vinduslisten uten å bytte.

Løsne Og Feste Økter

hvis Du trykker Ctrl+B og Deretter D, vil du løsne økten. Det vil fortsette å kjøre i bakgrunnen, men du vil ikke kunne se eller samhandle med den.

Vi har startet top i økten, så vi har en løpende prosess å demonstrere med. Deretter trykker Vi På Ctrl + B, og Deretter D. økten forsvinner og blir en bakgrunnsøkt.

Annonse

vi går tilbake til det opprinnelige terminalvinduet. Det er en melding fra tmux som forteller oss at økten er løsrevet. Det minner oss også om navnet vi ga til økten. Dette er praktisk fordi det er det vi bruker til å knytte til en bakgrunnsøkt, og deretter gjenopprette den til en interaktiv.

for å legge ved en frittstående økt, bruker vi den selvforklarende kommandoen attach-session med alternativet -t (måløkt). Vi vil også gi navnet på økten vi ønsker å huske.

vi skriver inn følgende:

tmux attach-session -t geek-1

vår økt returnerer og blir en synlig, interaktiv økt igjen.

eventuelle langvarige eller kontinuerlige prosesser du startet før du løsnet økten, vil fortsatt kjøre i bakgrunnen (med mindre de er ferdige) når du legger til økten.

screen kan gjøre dette, men ikke så intuitivt.

Håndtering Av Flere Økter

La oss åpne et annet terminalvindu, og starte en ny tmux økt kalt «geek-2»:

tmux new -s geek-2

i denne sesjonen begynner vi dmesg:

dmesg -w
Annonse

Nå har vi vår opprinnelige «geek-1» tmux økt, og en ny som heter » geek-2.»

statuslinjen viser oss at denne økten heter «geek-2», og den har ett vindu som kjører dmesg.

hvis vi trykker Ctrl + B, og Deretter D, løsner vi den økten.

Annonse

Tilbake i» geek-1 » tmux sesjon, trykker Vi Ctrl + B, og Deretter S for å se en liste over tmux økter.

For å være klar, er dette en liste over økter. Den lignende skjermen vi så tidligere var en liste over vinduer i en enkelt økt.

du kan flytte den gule markeringsfeltet ved å trykke På Pil Opp og Pil Ned, Home og End. Den nederste delen viser en forhåndsvisning av innholdet i den uthevede økten.

hvis du trykker På Pil Høyre, vises vinduene for den uthevede økten.

Annonse

Trykk Enter for å gå Til den markerte økten eller vinduet Eller Esc for å forlate øktlisten uten å endre økter. Hvis du velger en ny økt, løsner den gjeldende økten, og den du valgte, legges ved.

vi løsnet» geek-2 » – økten før vi gjorde dette. Du kan imidlertid gjøre dette med økter som fortsatt er knyttet til de opprinnelige terminalvinduene. Når du gjør det, vises alle skjermendringer samtidig i begge tmux – øktene.

kommandoen screen kan også gjøre dette via et lignende sett med kommandoer.

Arbeide Med Vindusruter

hvis Du trykker Ctrl+B og deretter doble anførselstegn ( «» ), deler du vinduet horisontalt i to ruter.

Annonse

dette påvirker bare det gjeldende vinduet; de andre i økten vil ikke bli endret. Vi har brukt kommandoen tmux ls i toppruten for å vise vinduene i denne økten. Det er to, og statuslinjen forteller oss at vi er i vindu ett. Hvis vi hopper over til window zero ved å trykke Ctrl + B, og deretter 0 (null), ser vi det er akkurat som vi forlot det.

dette er to uavhengige kommandolinjer, ikke to visninger i ett vindu; de er forskjellige og separate skall. Vi kan vise dette ved å kjøre en annen kommando i hver rute.

vi skriver inn følgende:

uname -a

ls -hl

hvis du vil flytte fra en rute til En annen, trykker Du Ctrl + B, Og Deretter Pil Opp, Ned, Venstre Eller Høyre.

hvis Du trykker Ctrl+B, og deretter prosenttegnet (%) det deler gjeldende rute vertikalt.

Annonse

Trykk Ctrl+B, Og Deretter Q for å gjøre tmux kort blinke antall hver rute.

disse tallene brukes i meldinger og meldinger fra tmux. Trykk Ctrl + B, Og Deretter X for å lukke gjeldende rute. Statuslinjen endres til amber, og du blir bedt om å bekrefte at du vil lukke rutenummeret. Trykk Y for å fjerne ruten, Eller N for å la ting være som de er.

hvis Du trykker Y, fjernes ruten.

kommandoen screen har også ruter, men igjen er de mindre intuitive å bruke. Det som irriterer oss om screen er hvis du løsner en økt med ruter, forsvinner de når du setter på den økten igjen. Dette blir gammelt veldig fort.

En Ctrl + B Jukselapp

Vi har tatt med en jukselapp av de forskjellige kommandoene du kan bruke i tmux nedenfor.

Øktkommandoer

  • S: Liste økter.
  • $: Gi nytt navn til gjeldende økt.
  • D: Koble fra gjeldende økt.
  • Ctrl + B, og så ?: Vis Hjelpesiden i tmux.

Vinduskommandoer

  • C: Opprett et nytt vindu.
  • ,: Gi nytt navn til gjeldende vindu.
  • W: Oppgi vinduene.
  • N: Gå til neste vindu.
  • P: Flytt til forrige vindu.
  • 0 til 9: Flytt til det angitte vindusnummeret.

Panelkommandoer

  • %: Lag en horisontal splitt.
  • «: Opprett en vertikal deling.
  • H Eller Pil Venstre: Flytt til ruten til venstre.
  • I Eller Pil Høyre: Flytt til ruten til høyre.
  • J Eller Pil Ned: Flytt til ruten nedenfor.
  • K Eller Pil Opp: Flytt til ruten ovenfor.
  • Q: Vis rutenummer Kort.
  • O: Flytt gjennom rutene i rekkefølge. Hvert trykk tar deg til neste, til du går gjennom dem alle.
  • }: Bytt posisjonen til gjeldende rute med neste.
  • {: Bytt posisjonen til gjeldende rute med forrige.
  • X: Lukk gjeldende rute.

Hvordan De Sammenligner

når det gjelder funksjonalitet, screen og tmux utfører begge på samme måte og tilbyr de samme hovedfunksjonene. Det er måten du får tilgang til de funksjonene som er markant annerledes. tmux tilbyr smidigere, mer komfortable måter å komme til de ulike funksjonene. Men det er ikke den eneste forskjellen.

Annonse

muligheten til å endre navn på økter og vinduer i tmux er ryddig, og det faktum at den beholder rutene når du feste en økt er en game changer.

screen, på den annen side, helt mister rutene når du løsne og feste en økt. Dette er nesten irriterende nok til å få deg til å unngå å løsne i utgangspunktet.

det er så mye mer til tmux, inkludert dens utrolig fleksible skriptfunksjoner. Du skylder deg selv å sjekke det ut.

Dave McKay
Dave McKay først brukt datamaskiner når stanset papir tape var på moten, og han har vært programmering siden. Etter over 30 år i IT-bransjen er han nå en heltids teknologijournalist. I løpet av sin karriere har han jobbet som frilansprogrammerer, leder av et internasjonalt programvareutviklingsteam, EN IT-tjenesteprosjektleder, og senest Som Databeskyttelsesansvarlig. Dave er En Linux evangelist og åpen kildekode talsmann.Les Hele Bio «