På denne siden

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.