Hvordan Bruke tmux På Linux (Og Hvorfor Det Er Bedre Enn Skjermen)
- Dave McKay
@TheGurkha
- 14 Mai 2020, 8:00am EDT
linux tmux
kommandoen er en terminal multiplekser, 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. skjerm
bådetmux
OG GNUscreen
kommandoene 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.
du kan koble 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?
kommandoenscreen
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, nevner vi hvordanscreen
håndterer samme funksjon eller funksjon.
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: Hvordan Bruke Linux ‘ s screen Command
Installere tmux
Mens screen
er vanligvis installert som standard på populære Linux-distribusjoner,tmux
er 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,tmux
er 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 entmux
sesjon, blir vinduets nummer og navnet på programmet som kjører i det, lagt til statuslinjen.
kommandoenscreen
gir deg ikke en statuslinje. Du må fly blind og stole på vettet å vite hva som skjer, som tar litt øvelse.
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 tiltmux
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 til tmux
. 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.
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
sesjonen er stengt, og du kommer tilbake til kommandolinjen som du startet tmux
. 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.
hvis du regelmessig starter fleretmux
økter, vil du raskt sette pris på funksjonaliteten ved å gi hver av dem et meningsfylt navn. Du kan også nevne økter i screen
, men de vises ikke hvor som helst i øktvinduene.
for å startetmux
med et øktnavn, bruk kommandoennew
(ny økt) og alternativet-s
(øktnavn). Vår sesjon kommer til å bli kalt «geek-1», så vi skriver inn følgende:
tmux new -s geek-1
når tmux
sesjon laster,» geek-1 » vises som den første oppføringen i statuslinjen, helt til venstre.
Legge Til Flere Vinduer
hvis du vil opprette et nytt vindu i gjeldende økt, trykker Du Ctrl + B Og Deretter C. Du får et tomt terminalvindu i den nåværende økten. Så vi har noe som kjører i dette nye vinduet, la oss starte dmesg
kommandoen med -w
(følg) alternativet:
dmesg -w
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
sesjon. I vindu null kjører top, og i vindu en,dmesg
kjører. Stjernen ( * ) etter dmesg
forteller oss hvilket vindu som er synlig.
for å hoppe mellom vinduer, Trykk Ctrl + B, og deretter en av følgende taster:
- N: Vis neste vindu.
- P: Vis det forrige vinduet.
- 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.
hvis du vil flytte den gule markeringslinjen, trykker Du På Pil Opp Eller Pil Ned, Home eller End. 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.
vi går tilbake til det opprinnelige terminalvinduet. Det er en melding fra tmux
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 selvforklarendeattach-session
kommandoen med -t
(target session) alternativet. 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 den økten starter vi dmesg
:
dmesg -w
nå har vi vår opprinnelige «geek-1» tmux
økt, og en ny kalt «geek-2.»
statuslinjen viser oss denne økten kalles «geek-2», og den har ett vindu som kjører dmesg
.
hvis Vi trykker Ctrl + B, og Deretter D, løsner vi den økten.
Tilbake I «geek-1»tmux
økt, 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 markeringslinjen 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.
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, vil alle skjermendringer vises samtidig i begge tmux
økter.
kommandoenscreen
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.
dette påvirker bare gjeldende vindu; de andre i økten vil ikke bli endret. Vi har brukt kommandoentmux 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
For å flytte Fra en rute til En annen, trykk Ctrl+B, og Deretter Enten Opp, Ned, Venstre Eller Høyre Pil.
hvis Du trykker Ctrl + B, og deretter prosenttegnet (%)
den deler gjeldende rute vertikalt.
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 På Y, fjernes ruten.
kommandoenscreen
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 kobler den økten på nytt. Dette blir gammelt veldig fort.
A Ctrl + B Cheat Sheet
Vi har tatt med en cheat sheet av de forskjellige kommandoene du kan bruke itmux
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: Gå til forrige vindu.
- 0 til 9: Flytt til angitt vindunummer.
Panelkommandoer
- %: Opprett en horisontal deling.
- «: Opprett en vertikal deling.
- H Eller Pil Venstre: Flytt til ruten til venstre.
- I Eller Høyre Pil: 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
ogtmux
begge utfører på samme måte og tilbyr de samme hovedtrekkene. Det er måten du får tilgang til de funksjonene som er markant annerledes. tmux
tilbyr slicker, mer komfortable måter å komme til de ulike funksjonene. Men det er ikke den eneste forskjellen.
muligheten til å endre navn på økter og vinduer i tmux
er ryddig, og det faktum at den beholder rutene når du reattach en økt er en game changer.
screen
, derimot, taper rutene helt når du løsner og setter på en økt igjen. 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 Brukte først datamaskiner når stansede papirbånd var på moten, og Han har programmert siden den gang. 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 »