(Og hvorfor det er bedre end skærmen)
- Dave McKay
@Thegurkha
- 14.maj 2020, 8:00am EDT
linjentmux
kommandoen er en terminal multiplekser, somscreen
. Dens fortalere er mange og vokale, så vi besluttede at sammenligne de to. Er tmux
virkelig bedre, eller er det bare et tilfælde af at foretrække det, du ved?
- vs. skærm
- Hvad er skærmkommandoen?
- installation af tuk
- start af en session
- start af en navngivet session
- tilføjelse af flere vinduer
- Afmontering og vedhæftning af sessioner
- håndtering af flere sessioner
- arbejde med vinduesruder
- A Ctrl+B Cheat Sheet
- Sessionskommandoer
- Vinduekommandoer
- Panekommandoer
- hvordan de sammenligner
vs. skærm
beggetmux
og GNUscreen
kommandoer er terminale multipleksere. De giver dig mulighed for at have flere vinduer i et enkelt terminalvindue og hoppe frem og tilbage mellem dem. Et vindue kan opdeles i ruder, som hver giver dig en uafhængig kommandolinje.
Du kan også løsne en session, og det bliver en hovedløs enhed, der kører i baggrunden—du kan endda lukke terminalvinduet, der lancerede det. Når du er klar, kan du åbne et nyt terminalvindue og sætte den stadig kørende session på igen. Du kan også gøre dette via en SSH-forbindelse.
Du kan løsne en session på en computer, gå hjem og logge ind på fjerncomputeren. Når du tilslutter igen, kan du vedhæfte baggrundssessionen igen og bruge den interaktivt igen.
Hvad er skærmkommandoen?
screen
kommandoen er også en terminal multiplekser, og den er fyldt med muligheder. For nedturen på alt hvad du kan gøre med det, tjek vores dybdegående artikel.
denne gang vil vi koncentrere os om tmux
. Når vi går sammen, nævner vi, hvordan screen
håndterer den samme funktion eller funktion.
kun en ting irriterede os omscreen
. Vi dækker det, når vi kommer til det, og se om tmux
fares bedre.
RELATERET: Sådan bruges Linuks skærmkommando
installation af tuk
mens screen
er generelt installeret som standard på populære Linuks-distributioner, tmux
isn ‘t. to install tmux
on Ubuntu, skriv følgende:
sudo apt-get install tmux
på Manjaro kan du bruge pacman
:
sudo pacman -Sy tmux
på Fedora 31, tmux
er allerede installeret.
start af en session
for at startetmux
skal du bare skrive den og trykke på Enter:
tmux
terminalvinduet viser en statuslinje, når du er i entmux
session.
i højre side af statuslinjen vises værtsnavnet samt klokkeslæt og dato. Venstre side viser følgende sessionsrelaterede oplysninger:
- : Dette er sessionens navn. Som standard er de nummereret, begyndende med nul. Vi dækker, hvordan du kan give meningsfulde navne til sessioner nedenfor.
- 0: bash*: 0 angiver, at dette er det første vindue i denne session. Den eneste proces, der kører i denne session, er
bash
. Hvis du kører et program, vises dets navn her. Stjernen (*) betyder, at dette er det vindue, du kigger på. Hver gang du opretter et nyt vindue i entmux
session, tilføjes dets vinduesnummer og navnet på det program, der kører i det, til statuslinjen.
kommandoenscreen
giver dig ikke en statuslinje. Du er nødt til at flyve blind og stole på din forstand for at vide, hvad der foregår, hvilket kræver lidt øvelse.
på plussiden mister du ikke en linje med fast ejendom i terminalvinduet. Selvfølgelig vil du normalt udvide dit terminalvindue for at gøre det værd at bruge en terminalmultiplekser. I så fald er tabet af en linje for statuslinjen ikke meget af et problem. Vi har efterladt billederne af terminalvinduerne her i standardstørrelsen, så du kan se oplysningerne.
kommandoer gives til tmux
ved hjælp af tastetryk, og der er to dele til dette. Først skal du trykke på Ctrl + B for at få tmux
‘s opmærksomhed. Du trykker derefter hurtigt på den næste tast for at sende en kommando tiltmux
. Kommandoer gives ved at trykke på bogstaver, tal, tegnsætningstegn eller piletasterne.
det er det samme i screen
, bortset fra at du trykker på Ctrl+A for at få sin opmærksomhed.
for at lukke vinduet skal du trykke på Ctrl + B og derefter hurtigt trykke på H. statuslinjen bliver gul. Du bliver derefter bedt om at bekræfte, at du vil dræbe vinduet.
tryk på Y for at lukke vinduet eller N, hvis du skifter mening. Du behøver ikke at trykke på Enter bagefter; Y eller N er nok til at registrere dit valg.
Hvis du trykker på Y, lukkes vinduet. Da dette er det eneste vindue i denne session, afsluttes sessionen.
tmux
sessionen er lukket, og du vender tilbage til kommandolinjen, hvorfra du lanceredetmux
. Du vil se “” i terminalvinduet.
dette kan virke som om det angiver det indlysende, men det er en bekræftelse på, at du har lukket sessionen og ikke forladt den løsrevet og kører. Vi diskuterer løsningssessioner nedenfor.
Hvis du regelmæssigt starter fleretmux
sessioner, vil du hurtigt sætte pris på funktionaliteten ved at give hver af dem et meningsfuldt navn. Du kan også navngive sessioner i screen
, men de vises ikke nogen steder i sessionsvinduerne.
for at startetmux
med et sessionsnavn skal du bruge kommandoennew
(ny session) og-s
(sessionsnavn). Vores session vil blive kaldt “geek-1”, Så vi skriver følgende:
tmux new -s geek-1
Når tmux
sessionsbelastninger vises” geek-1 ” som den første post i statuslinjen længst til venstre.
tilføjelse af flere vinduer
tryk på Ctrl+B og derefter på C for at oprette et nyt vindue i den aktuelle session. Du får et tomt terminalvindue i den aktuelle session. Så vi har noget kørende i dette nye vindue, lad os starte dmesg
kommando med -w
(følg) mulighed:
dmesg -w
nu har vi to vinduer i sessionen; man kører top
, og den anden dmesg
. Vi kan dog kun se en ad gangen (mere om det i et øjeblik).
se på venstre side af statuslinjen. Vi er stadig i” geek-1″tmux
session. I vinduet nul kører toppen, og i vinduet et kører dmesg
. Stjernen ( * ) efter dmesg
fortæller os, hvilket vindue der er synligt.
for at hoppe mellem vinduer skal du trykke på Ctrl+B og derefter på en af følgende taster:
- N: Vis det næste vindue.
- P: Vis det forrige vindue.
- 0 til 9: Vis et vindue nummereret 0 til 9.
Du kan også vælge et vindue fra en liste. Hvis du trykker på Ctrl + B, og derefter V, vises en liste over vinduer.
for at flytte den gule fremhævningslinje skal du trykke på pil op eller ned, hjem eller Slut. Den nederste del af displayet viser en forhåndsvisning af indholdet i det fremhævede vindue.
tryk på Enter for at flytte til det fremhævede vindue, eller Esc for at forlade vindueslisten uden at skifte.
Afmontering og vedhæftning af sessioner
Hvis du trykker på Ctrl+B, og derefter D, vil du afbryde sessionen. Det vil fortsætte med at køre i baggrunden, men du kan ikke se eller interagere med det.
Vi har startet top
i sessionen, så vi har en løbende proces at demonstrere med. Derefter trykker vi på Ctrl + B, og derefter D. sessionen forsvinder og bliver en baggrundssession.
vi vender tilbage til det originale terminalvindue. Der er en besked fra tmux
fortæller os, at sessionen er løsrevet. Det minder os også om det navn, vi gav til sessionen. Dette er praktisk, fordi det er det, vi bruger til at knytte til en baggrundssession og derefter gendanne den til en interaktiv.
for at vedhæfte en løsrevet session bruger vi den selvforklarende attach-session
kommando med -t
(målsession) mulighed. Vi giver også navnet på den session, vi ønsker at huske.
Vi skriver følgende:
tmux attach-session -t geek-1
vores session vender tilbage og bliver en synlig, interaktiv session igen.
eventuelle langvarige eller kontinuerlige processer, du startede, før du løsnede sessionen, kører stadig i baggrunden (medmindre de er færdige), når du vedhæfter sessionen.
screen
kan gøre dette, men ikke så intuitivt.
håndtering af flere sessioner
lad os åbne et andet terminalvindue og starte en ny tmux
session kaldet “geek-2”:
tmux new -s geek-2
i den session starter vi dmesg
:
dmesg -w
nu har vi vores originale “Geek-1” tmux
session, og en ny kaldet “Geek-2.”
statuslinjen viser os, at denne session kaldes “geek-2”, og den har et vindue, der kører dmesg
.
Hvis vi trykker på Ctrl+B og derefter D, løsner vi den session.
Tilbage i “geek-1”tmux
session, vi trykker på Ctrl+B, og derefter S for at se en liste overtmux
sessioner.
for at være klar er dette en liste over sessioner. Den lignende skærm, vi så tidligere, var en liste over vinduer i en enkelt session.
Du kan flytte den gule fremhævningslinje ved at trykke på pil op og ned, hjem og Slut. Det nederste afsnit viser en forhåndsvisning af indholdet i den fremhævede session.
Hvis du trykker på højre pil, vises vinduerne for den fremhævede session.
tryk på Enter for at flytte til den fremhævede session eller vindue eller Esc for at forlade sessionslisten uden at ændre sessioner. Hvis du vælger en ny session, løsnes din nuværende, og den valgte er vedhæftet.
Vi løsnede” geek-2 ” – sessionen, før vi gjorde dette. Du kan dog gøre dette med sessioner, der stadig er knyttet til deres originale terminalvinduer. Når du gør det, vises eventuelle skærmændringer samtidigt i beggetmux
sessioner.
screen
kommandoen kan også gøre dette via et lignende sæt kommandoer.
arbejde med vinduesruder
Hvis du trykker på Ctrl+B og derefter dobbelt anførselstegn ( “” ), deler du vinduet vandret i to ruder.
dette påvirker kun det aktuelle vindue; de andre i sessionen ændres ikke. Vi har brugt kommandoen tmux ls
i øverste rude til at liste vinduerne i denne session. Der er to, og statuslinjen fortæller os, at vi er i vindue et. Hvis vi hopper over til vinduet nul ved at trykke på Ctrl+B, og derefter 0 (nul), ser vi, at det er ligesom vi forlod det.
dette er to uafhængige kommandolinjer, ikke to visninger i et vindue; de er forskellige og separate skaller. Vi kan vise dette ved at køre en anden kommando i hver rude.
Vi skriver følgende:
uname -a
ls -hl
for at flytte fra en rude til en anden skal du trykke på Ctrl+B og derefter enten Op, Ned, Venstre eller højre pil.
Hvis du trykker på Ctrl + B, og derefter procenttegn (%)
det opdeler den aktuelle rude lodret.
tryk på Ctrl+B, og derefter på spørgsmål for at lavetmux
blinke kort nummeret på hver rude.
disse tal bruges i meddelelser og meddelelser fratmux
. Tryk på Ctrl + B for at lukke den aktuelle rude. Statuslinjen ændres til amber, og du bliver bedt om at bekræfte, at du vil lukke ruden. Tryk på Y for at fjerne ruden, eller N for at lade tingene være, som de er.
Hvis du trykker på Y, fjernes ruden.
screen
kommandoen har også ruder, men igen er de mindre intuitive at bruge. Det, der irriterer os ved screen
er, hvis du løsner en session med ruder, forsvinder de, når du vedhæfter den session igen. Dette bliver gammelt meget hurtigt.
A Ctrl+B Cheat Sheet
Vi har inkluderet et snydeark med de forskellige kommandoer, du kan bruge itmux
nedenfor.
Sessionskommandoer
- S: liste sessioner.
- $: Omdøb nuværende session.
- D: Afbryd den aktuelle session.
- Ctrl + B, og så ?: Vis hjælpeside i
tmux
.
Vinduekommandoer
- C: Opret et nyt vindue.
- ,: Omdøb det aktuelle vindue.
- h: Vis vinduerne.
- N: gå til næste vindue.
- P: gå til det forrige vindue.
- 0 til 9: Flyt til det angivne vinduenummer.
Panekommandoer
- %: Opret en vandret opdeling.
- “: Opret en lodret opdeling.
- H eller venstre pil: Flyt til ruden til venstre.
- I eller højre pil: Gå til ruden til højre.
- J eller pil ned: Flyt til ruden nedenfor.
- K eller Pil op: Flyt til ruden ovenfor.
- spørgsmål: vis kort rude numre.
- O: Flyt gennem ruder i rækkefølge. Hvert tryk fører dig til det næste, indtil du løber gennem dem alle.
- }: Skift placeringen af den aktuelle rude med den næste.
- {: Skift placeringen af den aktuelle rude med den forrige.
- h: luk den aktuelle rude.
hvordan de sammenligner
med hensyn til funktionalitet, screen
og tmux
begge udfører på samme måde og tilbyder de samme hovedfunktioner. Det er den måde, du får adgang til de funktioner, der er markant anderledes. tmux
tilbyder slicker, mere komfortable måder at komme til de forskellige funktioner. Det er dog ikke den eneste forskel.
evnen til at omdøbe sessioner og vinduer itmux
er pæn, og det faktum, at det bevarer ruderne, når du genmonterer en session, er en spilskifter.
screen
taber på den anden side helt ruder, når du løsner og genmonterer en session. Dette er næsten irriterende nok til at få dig til at undgå at løsne i første omgang.
der er så meget mere til tmux
, herunder dens utroligt fleksible scripting kapaciteter. Du skylder dig selv at tjekke det ud.
Dave McKay brugte først computere, da stanset papirbånd var på mode, og han har programmeret lige siden. Efter over 30 år i IT-branchen er han nu teknologijournalist på fuld tid. I løbet af sin karriere har han arbejdet som freelance programmør, leder af et internationalt programmeludviklingsteam, projektleder for IT-tjenester og senest som databeskyttelsesansvarlig. Han er evangelist og open source-fortaler.Læs hele Bio ”