Denne guiden går dypere inn i tmux-delen av Shell-grunnleggende. Der fikk du ideen og en håndfull taster. Her lærer du å faktisk leve i tmux.
Du trenger tmux installert først, og tmux følger ikke med som
standard på noen av de tre store distribusjonene:
$ sudo apt install tmux # Ubuntu
$ sudo dnf install tmux # Fedora
$ sudo pacman -S tmux # Arch
Alt her er sjekket på tmux 3.6 (Ubuntu 26.04) og tmux 3.7c (Fedora 44, Arch). De to versjonene oppfører seg identisk hele veien.
Hva tmux faktisk gjør
I en vanlig terminal lever skallet ditt inne i terminalprogrammet. Lukk vinduet, mist skallet. Mist SSH-forbindelsen, mist skallet. Alt som kjører i skallet, dør med det.
tmux legger et lag imellom. Programmene dine kjører i en tmux-serverprosess som ikke skylder den synlige terminalen noe; terminalen viser bare et bilde av det serveren holder på. Kobler du fra bildet, holder serveren alle programmene i gang. Kobler du til et nytt bilde senere, fra en annen forbindelse hvis du vil, står alt der du lot det ligge.
Det er hele trikset.
Sesjoner
Start én:
$ tmux new -s work
Skjermen tømmes, og en statuslinje dukker opp langs nederste kanten. Den linjen er tmux; fra nå av forteller den deg hvilken sesjon og hvilket vindu du er i, og senere bærer den meldingene tmux vil at du skal se.
Når du vil ut, trykker du Ctrl+B, slipper, og trykker deretter d:
[detached (from session work)]
Du er tilbake i den vanlige terminalen, og sesjonen går videre uten
deg. tmux ls beviser det:
$ tmux ls
work: 1 windows (created Sat Aug 29 21:07:43 2026)
Kom tilbake fra hvor som helst:
$ tmux attach -t work
Du lander der du koblet fra, med scrollback intakt. Når arbeidet er
gjort og du vil bli kvitt den, avslutter tmux kill-session -t work
sesjonen. Når ingen sesjoner er igjen, svarer tmux ls:
no server running on /tmp/tmux-0/default
Det høres mer dramatisk ut enn det er. Det betyr bare at det ikke er noe igjen å liste.
tmux new -d -s build lager en
sesjon uten å bytte til den. Praktisk for å parkere en lang jobb i sin
egen sesjon fra et skript, eller for å sette opp et arbeidsområde på
forhånd.
Prefikstasten
Nesten alt i tmux er to tastetrykk: Ctrl+B, slipp opp, og så én tast
til. Den første kombinasjonen kalles prefikstasten, og den finnes
slik at tmux kan skille sine egne kommandoer fra det du skriver. Bare
d skriver bokstaven d. Ctrl+B d kobler fra. Hver snarvei i
denne guiden er skrevet på samme måte: prefikstasten først, så tasten.
Vinduer
En sesjon starter med ett vindu. Ctrl+B c åpner et nytt: en hel, tom
skjerm med sitt eget skall. Beveg deg gjennom dem med Ctrl+B n
(neste) og Ctrl+B p (forrige), som faner i en nettleser. Statuslinjen
holder vinduene nummerert, og det gjeldende er merket med *.
Vinduer kan få navn. Trykk Ctrl+B , så viser tmux en prompt:
(rename-window) work
Pass på her: det gjeldende navnet står allerede skrevet inn, og det du
skriver blir lagt til bakerst. For et ferskt vindu er det
forhåndsfylte navnet som regel bare bash, programmet som kjører der.
Slett det med Backspace først, og skriv deretter det nye. Det henger
igjen, noe som betyr noe så snart du har flere vinduer åpne og ikke
lenger husker hvilket av dem som har htop.
Å lukke et vindu er Ctrl+B &. tmux spør før den dreper noe:
kill-window work? (y/n)
y bekrefter, og vinduet forsvinner med alt som kjører i det.
Ruter
Der et vindu er et helt emne, deler ruter ett vindu opp i områder.
Ctrl+B % deler med en vertikal skillelinje og gir deg to ruter side
om side. Ctrl+B " deler med en horisontal skillelinje og stabler dem
oppå hverandre.
Flytt deg mellom rutene med Ctrl+B o, som går gjennom dem i sirkel
og starter forfra. Piltastene virker også: Ctrl+B Left,
Ctrl+B Right og så videre beveger deg mot ruten som sitter i den
retningen.
To taster til er verdt plassen sin. Ctrl+B z zoomer gjeldende rute
til å fylle hele vinduet; trykker du igjen, kommer de andre rutene
tilbake. Ctrl+B x lukker gjeldende rute; tmux spør først:
kill-pane 0? (y/n)
y, og ruten er borte. Tallet i prompten er indeksen til ruten tmux
er i ferd med å drepe, ingenting mer.
Når forbindelsen ryker
Du SSH-er til en leid server, kjører tmux new -s download, og setter
i gang overføringen av en stor fil. Det går timer. Forbindelsen ryker:
hotell-Wi-Fi, en restartet ruter — velg selv skurken.
Uten tmux døde overføringen sammen med forbindelsen. Med tmux er
gjenopprettingen kjedelig. Koble til igjen med
tmux attach -t download, og der er overføringen din, fortsatt i
gang, med alle utdatalinjene som har hopet seg opp i scrollbacken
siden du dro. Sesjonen la aldri merke til at du var borte.
Dette er forskjellen mellom tmux og nohup fra kapittel 13. nohup
er for jobber du avfyrer og glemmer. tmux er for jobber du har tenkt å
komme tilbake til, og det er i praksis de fleste av dem.
Scrollback
tmux tegner hele skjermen selv, så scrollbacken terminalprogrammet
ditt vanligvis håndterer, når ikke inn i tmux. Det finnes en
tmux-måte. Trykk Ctrl+B [ så går markøren inn i copy mode, med en
posisjonsindikator på statuslinjen:
[0/79]
Det står: linje 0 av 79 i bufferen. PageUp blar opp én side per
trykk, og telleren følger med. q avslutter copy mode og setter deg
tilbake ved prompten.
Venn deg til dette tidlig. Scrollback er der utdataen fra et langt bygg ligger etter at den rullet ut av skjermen. Nye tmux-brukere rekker seg etter de gamle rullevanene sine her, og ingenting skjer.
Å lese er halve ferdigheten; å få teksten ut er den andre halvdelen.
Kopimodus er også en utvalgsmodus. Med pekeren på første tegn du vil ha,
trykker du Ctrl+Space for å starte et utvalg, beveger deg til slutten
av det, og trykker Alt+W — den merkede teksten havner i en
tmux-buffer, og kopimodusen lukker seg. Lim den inn hvor du vil med
Ctrl+B ]. Dette er standardtastene; er oppsettet ditt konfigurert
vi-stil, er utvalgstastene Space og Enter i stedet, og alt
downstream er likt.
Bufferen er et ekte objekt du kan inspisere:
$ tmux list-buffers
buffer0: 20 bytes: "root@linuz-ubuntu:~#"
Innliming slipper bufferinnholdet ut i ruten ved pekeren — slik utdata reiser fra én rute til naboen uten mus.
En konfig på to linjer
tmux leser ~/.tmux.conf når serveren starter. Opprett fila med
nano ~/.tmux.conf hvis den ikke finnes fra før. To linjer dekker de
vanlige innstillingene:
set -g mouse on
set -g history-limit 5000
(-g på begge linjer setter valget globalt, for alle sesjoner, ikke
bare denne.)
mouse on slår på tmux musestøtte for dem som vil klikke og rulle i
ruter. Denne guiden holder seg til tastaturet, så behandle den som en
bonus heller enn et krav. Hver tast over fungerer uansett.
history-limit setter hvor mange linjer med scrollback hver rute
beholder. Standarden er 2000, og 5000 gir et langt bygg rom til å
puste.
Går ingen tmux-server fra før, er begge innstillingene på plass i din
første tmux new etter at du har lagret fila. For å bruke fila på en
server som allerede kjører:
$ tmux source-file ~/.tmux.conf
Hvor du står nå
Nå har du kjernen i tmux på plass. Avanserte brukere går mye dypere, og nesten alt det dypet kan vente til du trenger det.
Kapittel 13 viser hvor tmux står blant resten av shell-verktøykassen, og kommandolisten holder tastene på én linje hver. Når du vokser ut av denne guiden, dokumenterer tmux-manualen hver kommando og tastebinding, og ArchWiki-artikkelen om tmux samler konfigurasjonene og løsningene for avanserte brukere.