Et av de mest brukte verktøyene i webutviklingsprosessen er sikkert terminalen. Mens du jobber med et prosjekt, finner du ofte deg i stand til å bruke terminalen med flere faner åpne samtidig, en for å starte en lokal webserver, en annen fan for å administrere databasen, en annen for å kopiere filer og så videre. Dette kan snart bli rotete og vanskelig å håndtere. En løsning på dette problemet som fungerer bra for meg, er terminal multiplexeren, tmux.
tmux
er en terminal multiplexer: det muliggjør en rekke terminaler, som hver kjører et eget program som skal opprettes, åpnes og styres fra en enkelt skjerm.
Definisjonen ovenfor, tatt fra tmux
Nettstedet er klart: Fra et terminalvindu kan vi starte og styre en rekke andre terminaler og i hver av dem kjøre en annen applikasjon eller et annet eksempel på en applikasjon.
tmux
er utviklet på en klient-server modell. Dette bringer inn i konseptet av økter. En økt lagres på serveren som holder representasjonen av et vindu. Hvert vindu kan kobles til flere økter og flyttes mellom dem.
På den annen side kan flere klienter knyttes til hver økt. Så, en eller flere brukere kan koble til en tmux
økt fra forskjellige datamaskiner og de deler samme informasjon på vinduet. Dette er ekstremt nyttig i undervisning eller samarbeid siden brukerne deler en tmux
økt se samme informasjon på sine terminalvinduer.
Koble til en tmux
økt er gjort ved å starte programmet med følgende kommando:
tmux vedlegg
Når en bruker ønsker å avslutte terminaldelingsfunksjonen, brukes følgende kommando:
tmux løsne
tmux
kjører på Linux og Mac. I øyeblikket du skriver denne artikkelen, er jeg ikke klar over en Windows-versjon av programmet.
For de fleste Linux-distribusjoner er det en pakke i deres lagre:
På Arch (som jeg bruker), er installasjon ganske enkelt et spørsmål om å kjøre følgende kommando:
sudo pacman -S tmux
Etter installasjonen kan du starte tmux
ved å utstede kommandoen tmux
i et terminalvindu. Hvis du vil ha den kjørt automatisk for hver terminal økt, trenger du en liten konfigurasjon:
tmux
som i skjermbildet nedenfor: Hvis du er på Mac, kommer iTerm2 med tmux
installert, og for å starte det, bør du utstede kommandoen: tmux
.
Etter installasjonen, hvis du starter et terminalvindu, er det eneste nye du vil merke, at det finnes en statuslinje nederst på skjermen:
La oss ta en titt på de vanligste funksjonene. For en liste over komplette funksjoner, se linkene i slutten av denne artikkelen.
Eller, med andre ord, å dele hovedvinduet. Først av alt må jeg si at hver tmux
kommandoen er prefiks ved hjelp av følgende tastekombinasjon:
. Dette kan endres, men vi lærer å konfigurere og tilpasse tmux
senere.
Så, for å splitte et vindu vertikalt (eller i høyre og venstre rute), bør følgende kommando brukes:
%
og å dele vinduet i horisontale rutene du kan bruke:
"
Og resultatet skal se ut som følger:
For å flytte markøren fra en rute til den andre (aktiveringsrutene), brukes piltastene. Kommandoen ser slik ut:
[Opp, Ned, Høyre, Venstre]
Hvis du vil gå til den tidligere aktive ruten, kan du bruke følgende kommando:
;
Hvis du ikke er fornøyd med posisjonen til en rute, kan du også rotere rutene ved hjelp av kommandoen:
Når du er opprettet, kan du endre hver rute størrelse, i ett celle trinn, ved å bruke:
eller i fem celler trinn ved å bruke:
Når du vil lukke den nåværende ruten kan du bruke:
x
Noen ganger kan det være lurt å lage et annet vindu, for eksempel å jobbe med et annet prosjekt. Dette vinduet kan inneholde et helt annet sett med rutene med forskjellige programmer i hver av dem. For å gjøre dette, utsted følgende kommando:
c
Så hvis du vil bytte til neste vindu kan du bruke:
n
Og du kan bytte til forrige vindu ved å bruke:
p
Eller du kan velge vinduet interaktivt med:
w
For å lukke vinduet som åpnes, bruker du:
&
Anta at du har utstedt en kommando på terminalen, og utgangen av kommandoen passer ikke på en skjerm, så du må rulle opp for å se hele utgangen. Hvis du prøver å trykke på Opp nøkkel, dette vil ikke rulle deg opp, da det bare vil vise deg kommandoboken din. For å bla opp på skjermen, bruk følgende kommando:
[
Og deretter treffer du en av følgende nøkler: Opp
, Ned
, PgUp
eller PgDn
å bla opp eller ned.
Også, når du er i denne modusen, kan du kopiere tekst fra historien og deretter lime den inn med:
]
For å avslutte dette sett inn
modus, bare treff esc.
Nå er det mange andre kommandoer knyttet til ulike nøkler. Du kan liste alle nøkkelbindingene ved å utstede:
?
tmux
er svært konfigurerbar. Konfigurasjonsfilen er enten /etc/tmux.conf
for systeminnstillinger eller (anbefalt) ~ / .Tmux.conf
for brukerspesifikke innstillinger.
En av de første tingene som de fleste brukere endrer er kartlegging av prefiksnøkkelen (siden
ser ikke ut til å være så praktisk). De fleste brukere endrer det til
. Dette kan gjøres slik:
sett -g prefiks C-en ubindende C-b bind C-a send-prefiks
De -g
alternativet i den første kommandoen forteller tmux at dette er et globalt alternativ, noe som betyr at dette er angitt for alle vinduer og økter.
Noen brukere kan foretrekke Vi eller Emacs som bindinger for sentrale handlinger. Dette gjøres ved å bruke:
sett -g status-taster vi setw -g modus-taster vi
De setw
kommandoen, angir alternativet for vinduet (påvirker alle rutene i et vindu).
Du kan utføre forskjellige konfigurasjoner av statuslinjen: du kan slå den på eller av, du kan endre bakgrunns- og forgrunnsfarge, du kan endre hvilken informasjon som vises i den, osv..
For å slå av statuslinjen, utsted følgende kommando:
sett -g status av
Eller du kan prøve noe slikt:
sett -g status-bg blå sett -g status-fg hvit setw -g status-venstre #H: #S ved #W: #T
... som endrer statuslinjens bakgrunn til blå, tekstfargen til hvit og viser til venstre for statuslinjen vertsnavnet til localhost, etterfulgt av et kolon og øktnavn etterfulgt av "at" -strengen og vinduets navn, en kolon, og til slutt pane tittelen.
Du kan også vise statuslinjen nederst eller øverst i vinduet:
sett -g statusposisjon [bunn | topp]
For ytterligere informasjon om konfigurasjon og andre konfigurasjonsalternativer, kan du sjekke opsjonsdelen i håndboken.
Jeg håper du har funnet denne introduksjonen til tmux
nyttig for å forbedre den terminale arbeidsflyten din. Jeg har presentert her bare noen få kommandoer som jeg bruker oftest. Hvis du vil lære mer, er det flere ressurser som er tilgjengelige. Jeg anbefaler på det sterkeste:
tmux
på Arch wiki