En djupdykning i tmux: Den ultimata guiden för terminalmultiplexerare

vad är tmux
  • tmux möjliggör körning, deling och hantering av flera terminalsessioner samtidigt inom ett enda fönster, vilket erbjuder flexibilitet för utveckling, systemadministration och distansarbete.
  • Kärnkoncepten i tmux – sessioner, fönster och rutor – ger en kraftfull organisationsstruktur som förbättrar produktivitet och arbetsflödesanpassning långt utöver standardterminalapplikationer.
  • tmux-sessioner kvarstår efter att anslutningar kopplats bort eller förlorats, vilket möjliggör säkra och sömlösa SSH-arbetsflöden, såväl som sofistikerad multitasking, både lokalt och på distans.
  • Omfattande konfiguration, skript, plugins och kortkommandon gör det möjligt för användare att skräddarsy tmux efter personliga och professionella behov, integrera med verktyg som Vim, skapa arbetsflöden för flera projekt och öka effektiviteten i kommandoraden.

Om du någonsin har jonglerat med alldeles för många terminalfönster, desperat försökt att inte tappa platsen medan du SSH:at till en fjärrmaskin, eller önskat att dina kommandoradsarbetsflöden var lite mer som ett välorganiserat kontrollrum, kan ett verktyg som heter tmux förändra ditt liv. För både vanliga utvecklare och avancerade kommandoradsanvändare är tmux den där schweiziska armékniven du alltid velat ha: den låter dig öppna, hantera, dela och spara flera terminalmiljöer – inget kaos, bara produktivitet. Men vad är tmux egentligen? Vad kan det erbjuda dig om du anammar dess egenheter och styrkor?

Låt oss sätta scenen: Du är djupt inne i zonen, flikar överallt, SSH-anslutningar öppna, processer som körs, kanske en Vim-session här och ett shell-skript där. Plötsligt fryser ditt internet, eller så byter du dator, eller så är du helt enkelt vilse bland alla de öppna fönstren. Med tmux kan du inte bara säkra dina pågående processer från sådana huvudvärk, utan du kan också dela upp din terminal som pusselbitar, hoppa flexibelt mellan arbetsytor och återuppta utan att hoppa över ett slag – oavsett vilken maskin eller terminalemulator du använder. Oavsett om du är nybörjare på terminalmultiplexerkoncept eller redan skriptar tmux för avancerade scenarier, är den här guiden din följeslagare för att få ut det mesta av varje tangenttryckning.

Vad är tmux? Förstå terminalmultiplexorer

tmux, som står för "terminal multiplexer", är ett program som låter dig köra och styra flera oberoende terminalsessioner inom ett enda fönster eller en fjärranslutning. Du kan också kolla in den här resursen för att lära dig hur du får ut ännu mer av tmux i avancerade miljöer (https://www.ikkaro.net/android-17-linux-terminal/).

Varför älskar folk tmux? De praktiska anledningarna är många:

  • Samtidiga arbetsmiljöer: Du kan ha en redigerare här, loggar där, servrar som körs i en ruta, medan du övervakar prestanda i en annan.
  • Uthållighet: Processer fortsätter att köras även om din terminal stängs, kopplas bort eller om du går därifrån. Du kan lämna och återgå senare, precis där du slutade.
  • Fjärrarbete: Speciellt över SSH skyddar tmux ditt arbete från att förstöras om nätverket bryts ner genom att hålla sessioner vid liv på servern.
  • Anpassning: Tmux är djupt anpassningsbart, med omfattande konfigurationsalternativ, skriptfunktioner och plugins som gör det till en stapelvara i många verktygslådor för avancerade användare.

Kort sagt, tmux låter dig inte bara dela upp en terminal – det ger ordning, bekvämlighet och en kraftfull organisationsstruktur till ditt arbete, och förvandlar ett enkelt skal till något i stil med en robust skrivbordsmiljö för CLI. Om du har använt GNU Screen bygger tmux på liknande idéer men med renare, modernare kod och bättre utbyggbarhet.

Grundläggande begrepp: Sessioner, fönster och rutor

För att verkligen förstå tmux behöver du förstå tre nyckelbegrepp som får allt att fungera: sessioner, fönster och rutor. När du väl har bemästrat dessa kommer du att kunna designa anpassade terminalarbetsytor på nolltid.

sessioner

En session är din översta behållare i tmux. Varje gång du startar tmux skapar du en ny session. Sessioner kan representera olika projekt, fjärranslutningar eller arbetsflöden. Du kan ha flera sessioner som körs i bakgrunden, var och en frånkopplad från omvärlden tills du bestämmer dig för att ansluta (eller byta) till den.

  • Session = samling av fönster och deras rutor.
  • De kan förbli aktiva (och igång) även om du kopplar bort eller stänger terminalen.
  • Du kan sedan återansluta till vilken session som helst varifrån som helst – det är som att teleportera hela din CLI-arbetsyta mellan enheter eller terminaler.

Lär dig hur du får ut det mesta av tmux och andra kommandon i dessa terminalguider för att förbättra ditt arbetsflöde.

Windows

Inom varje session organiserar tmux ditt arbete med hjälp av fönster. Varje fönster fungerar som en helskärmsterminal som kan delas upp i rutor. Du kan växla mellan fönster, namnge dem (till exempel 'distribution', 'loggar', 'redigerare') och behandla dem som separata arbetsytor inom din session.

  • Fönster = gruppering av en eller flera rutor, som representerar en uppgift eller delmängd av ditt projekt.
  • Det går direkt att byta fönster och innehållet förblir aktivt – om du låter ett bygge köras fortsätter det medan du arbetar i ett annat fönster.
  • Windows har index (numrerade eller valfria anpassade namn) som du kan använda för genvägar och navigering.

Paneler

Det är i rutor som multitasking blir verklighet. Inom ett fönster kan du dela upp vyn i flera "paneler" eller rutor, där var och en kör sitt eget program, kommando eller skal. Du kan dela dem horisontellt eller vertikalt, flytta dem, ändra storlek på dem och till och med synkronisera inmatning mellan alla om det behövs.

  • Fönster = en enskild terminal som körs inom ett fönster i en given session.
  • De kan delas, ändra storlek, utökas/krympas och flyttas oberoende av varandra.
  • Du kan interagera med varje ruta som om den vore en egen terminal.

Nyckeln? De fungerar alla tillsammans: du kan ha en session för arbete, med flera fönster för projekt eller uppgifter, och varje fönster delas upp i rutor enligt ditt arbetsflöde.

Verkliga scenarier: Varför tmux är bra

1. Fjärrutveckling och SSH

En av tmux kraftfullaste funktioner är dess motståndskraft i fjärrmiljöer. Tänk dig att du är ansluten via SSH till en fjärrserver och kör långa processer eller byggen. Utan tmux skulle en bruten anslutning sannolikt innebära förlorad utdata eller avbrott. Med tmux kopplar du helt enkelt bort dig från din session, och senare (till och med dagar senare) återansluter du och fortsätter exakt där du slutade – dina processer fortsätter att köras utan avbrott.

2. Hantera flera projekt och arbetsflöden

tmux är utmärkt för utvecklare som jonglerar många projekt, vart och ett med sin egen katalog, beroenden och körprocesser. Du kan till exempel skapa en session som heter "clientA", med fönster för "frontend", "backend", "databas" och "loggar". Varje fönster kan delas upp i rutor med redigerare, tester och konsolutdata. Behöver du byta till "clientB"? Koppla loss och återanslut till nästa session.

3. Samtidiga verktyg, redigerare och bildskärmar

tmux förvandlar ditt skal till en produktivitetscockpit. Kanske vill du titta på loggfiler, köra livekommandon, övervaka ett Kubernetes-kluster och redigera kod, allt samtidigt. Med tmux kan du dela upp rutorna hur du vill, med var och en så oberoende som du vill. Frekventa användare konfigurerar anpassade layouter som speglar deras dagliga rutin – redigerare i en ruta, serverutdata i en annan, distributionsverktyg i en tredje.

4. Team, parprogrammering och undervisning

Eftersom tmux kan ha flera klienter anslutna till en session samtidigt är det idealiskt för parprogrammering. Två eller fler personer kan ansluta till samma tmux-session, samarbeta live och se varandras handlingar i realtid – perfekt för fjärrkodgranskningar, felsökning eller undervisning i CLI-koncept.

SE ÄVEN  Den kompletta guiden för att installera WhatsApp på Ubuntu: Metoder, tips och bästa praxis

Komma igång: Installation och första steg

Hur man installerar tmux

tmux fungerar på nästan alla Unix-liknande operativsystem – Linux, macOS, *BSD och till och med på Windows via WSL eller Cygwin. På de flesta Linux-distributioner kan du installera det direkt från din pakethanterare:

  • Debian/Ubuntu: sudo apt install tmux
  • Fedora/Red Hat: sudo dnf install tmux
  • Arch Linux: sudo pacman -S tmux
  • macOS (med Homebrew): brew install tmux

Vill du kontrollera installationen? Typ tmux -V för att se den installerade versionen.

Starta en tmux-session

För att starta din första tmux-session, kör helt enkelt kommandot 'tmux':

tmux

Du är nu i en standardsession (ofta kallad session 0), där ditt första fönster och ruta fungerar som din vanliga skalmiljö. Du kan börja köra kommandon normalt.

Losstagning och återmontering

tmux verkliga värde visar sig när du kopplar bort dig från din session och återkommer till den senare. För att koppla bort, använd prefixnyckeln (som standard Ctrl+b, ibland kallad 'tmux-ledaren') följt av d:

Ctrl+b d

Din tmux-session körs nu i bakgrunden – säker och väntar på att du ska komma tillbaka.

För att återansluta, lista de tillgängliga sessionerna:

tmux ls

Sedan, med:

tmux attach -t session_number_or_name

Om du bara har en session, tmux attach eller till och med tmux a är nog.

Organisera ditt arbete: Sessioner, fönster och rutor i detalj

Skapa och hantera sessioner

Du kan skapa en ny session (med ett anpassat namn) så här:

tmux new -s my_session

Lista alla aktuella sessioner:

tmux ls

Bifoga till en specifik session:

tmux attach -t my_session

Avsluta en session (utifrån eller inifrån tmux):

tmux kill-session -t my_session

Windows: Lägga till, byta namn, navigera

Skapa ett nytt fönster:

Ctrl+b c

Växla mellan fönster:

Ctrl+b n   # Next window Ctrl+b p   # Previous window

Växla efter nummer:

Ctrl+b 0   # Window 0 Ctrl+b 1   # Window 1 ... up to 9

Byt namn på ett fönster för enklare hantering:

Ctrl+b ,

Rutor: Dela och hantera din vy

Dela det aktuella fönstret vertikalt (rutan till höger):

Ctrl+b %

Dela horisontellt (rutan nedan):

Ctrl+b "

Flytta mellan rutor (med piltangenterna eller hjkl):

Ctrl+b (Arrow)  or  Ctrl+b h/j/k/l

Byt eller flytta rutor:

  • Gå till föregående ruta: Ctrl+b o
  • Rotera rutor: Ctrl+b Ctrl+o
  • Flytta rutan åt vänster/höger: Ctrl+b { och Ctrl+b }
  • Avsluta aktuell ruta: Ctrl+b x

Dynamiskt ändra storlek på rutor med hjälp av Ctrl+b tillsammans med piltangenterna (för finjusteringar):

  • Litet steg: Ctrl+b Ctrl+arrow
  • Stort steg: Ctrl+b Alt+arrow

Så här zoomar du en ruta till helskärm och får den att fylla hela fönstret:

Ctrl+b z

Praktiska värden: tmuxs tangentkombinationer

Det fina med tmux ligger i snabb navigering och kontroll via kortkommandon. Här är de du kommer att använda varje dag:

  • Starta tmux: tmux
  • Koppla loss sessionen: Ctrl+b d
  • Lista sessioner: tmux ls
  • Anslut till en session: tmux attach -t session_name
  • Nytt fönster: Ctrl+b c
  • Nästa/Föregående fönster: Ctrl+b n / Ctrl+b p
  • Byt namn på fönster: Ctrl+b ,
  • Dela rutan vertikalt/horisontellt: Ctrl+b % / Ctrl+b "
  • Navigera mellan rutor: Ctrl+b arrows or Ctrl+b h/j/k/l
  • Stäng ruta/fönster: Ctrl+b x / Ctrl+b &
  • Zooma in ett fönster: Ctrl+b z
  • Visa alla genvägar: Ctrl+b ?

För en fullständig referens, se manualen eller den officiella tmux-wikin.

Statusfält och visuell anpassning

tmux gränssnitt är mer än funktionellt – det är utformat för att ge dig sammanhang med en snabb blick och snabb åtkomst till dina arbetsytor via statusfältet.

Statuslinjen

Som standard visar tmux en statusrad längst ner i terminalen. Statusraden visar din session, fönsternamn och index, det aktiva fönstret (vanligtvis markerat) och användbar systeminformation (värd, tid, datum).

  • Vänster sida visar den bifogade sessionen (t.ex. ”).
  • Mitten visar alla fönsternamn, deras index och markerar det aktiva.
  • Den högra sidan visar aktuell värd, tid och datum.

Anpassa statusfältet

Statusfältet är mycket anpassningsbart via .tmux.conf konfigurationsfil. Du kan visa mer information, ändra färger, lägga till batteriindikatorer eller köra inbäddade kommandon för dynamiskt innehåll. Till exempel:

  • Ändra stapelfärg: set -g status-style bg=cyan
  • Ställ in inaktiv fönsterfärg: set -g window-status-style bg=yellow
  • Markera aktuellt fönster: set -g window-status-current-style bg=red,fg=white

Du kan skapa skript och stilar för nästan alla gränssnittselement, från statusfältswidgetar till hur fönstertitlar visas, med hjälp av tmux inbyggda formatering och inbäddade skaluttryck.

Musanvändning och avancerad navigering

Inte alla är tangentbordspurister – tmux kan också använda musen. Även om kortkommandon är det snabbaste sättet, kan du aktivera musstöd för att välja, ändra storlek på eller dra rutor/fönster, växla flikar och interagera med snabbmenyer (från och med tmux 3.x):

  • Aktivera musläge (tillfälligt): Inifrån tmux, Ctrl+b : för att komma åt den interna kommandoraden, gör så här:
  • set -g mouse on
  • Nu kan du klicka och dra i rutans kantlinjer, välja fönster eller interagera med snabbmenyer som högerklickar.

För att göra detta permanent, lägg till set -g mouse on till din .tmux.conf fil.

Konfiguration: Ta kontroll över din miljö

tmux verkliga kraft låses upp när du anpassar den för att passa din arbetsstil. tmux använder en konfigurationsfil—~/.tmux.conf—för att lagra anpassade genvägar, statusfältslayouter, färgscheman, insticksprogram och mer.

Alternativ för tangentkonfiguration

    • Ändra prefixnyckeln: If Ctrl+b känns obekvämt eller står i konflikt med andra verktyg kan du ändra det till exempel Ctrl+a (som GNU Screen) med följande i .tmux.conf:
set -g prefix C-a unbind C-b bind C-a send-prefix
  • Anpassa rutans beteende: Till exempel, aktivera synkronisering (skriva i alla rutor samtidigt) eller ändra automatiska layouter.
  • Konfigurera navigeringstangenter mellan fönster och rutor: Du kan kartlägga Alt+arrows för att växla mellan rutor om du föredrar det.

Exempelinställningar i .tmux.conf

# Change status bar color set -g status-style bg=blue # Show only the time on the right set -g status-right '%H:%M' # Underline the current window set -g window-status-current-style 'underscore' # Enable mouse set -g mouse on

Spara och ladda om din konfiguration live:

tmux source-file ~/.tmux.conf

Det finns mycket att utforska. För inspiration, kolla in konfigurationsdatabaser med öppen källkod eller wikin.

Kommandoradsfunktioner och skript

tmux är inte bara för manuell, interaktiv användning. Det är idealiskt för skript och automatisering. Du kan starta, koppla, avsluta och manipulera sessioner, fönster och rutor från shell-skript, vilket gör tmux till grunden för robust fjärradministration, CI/CD-infrastruktur eller reproducerbara utvecklingsmiljöer (tänk: att omedelbart öppna 10 delade rutor med tester, servrar och redigerare på några sekunder).

  • Skriptsessioner för att starta projekt, servrar eller tillfälliga utvecklingsmiljöer.
  • Kombinera med tmux-återuppliva för att spara och återställa fullständiga layouter efter omstarter.
  • Skicka utdata från panelen till filer, andra program eller dela den i realtid med andra.

Kopiera, klistra in och historik

Om du är trött på att använda musen för att kopiera och klistra in i terminalsessioner har tmux ett eget kraftfullt system för att hantera scrollback-bufferten och urklippet. Aktivera kopieringsläge med:

Ctrl+b Namngivna och namnlösa inklistringsbuffertar kan hanteras, och med rätt konfiguration kan tmux integreras med systemets urklipp för smidig kopiering och inklistring.

Det här systemet hjälper till med forskning, kodgranskning eller databehandling, vilket gör det enkelt att kopiera loggutdata eller resultat utan krångel.

SE ÄVEN  Vad är ett realtidsoperativsystem (RTOS)? Den kompletta guiden

Avancerade funktioner: Flytande rutor, layouter, trädläge och menyer

Flytande rutor (tmux 3.8+)

Flytande rutor låter en ruta ligga på ytan (som ett popup-fönster) ovanför den aktuella rutnätslayouten. Använda Ctrl+b * för att skapa en flytande ruta; du kan sedan flytta och ändra storlek på den oberoende av varandra, även med musen.

Layouter: Organisera med ett enda tryck

Växla mellan olika automatiska layouter:

  • Jämn horisontell layout: Ctrl+b M-1
  • Jämn vertikal layout: Ctrl+b M-2
  • Huvudhorisontell (en stor ruta och andra delade): Ctrl+b M-3
  • Huvudvertikal: Ctrl+b M-4
  • Kaklat: Ctrl+b M-5

Trädläge: En visuell webbläsare

Bläddra bland dina sessioner, fönster och rutor visuellt med trädläge:

  • Börja med Ctrl+b s (sessioner) eller Ctrl+b w (fönster). Använd piltangenterna för att navigera, markera, välja eller massradera.
  • Förhandsgranskningen under listan hjälper dig att identifiera vad som finns i varje ruta/fönster/session.

Menyer och kundhantering

tmux inkluderar kontextmenyer och ett klientläge för att hantera flera anslutningar till samma session. Högerklicka för popup-menyer och använd Ctrl+b D för att hantera klienter (koppla bort, avsluta, förhandsgranska aktiva sessioner, etc.).

Plugins: Ta tmux till nästa nivå

En av hemligheterna bakom tmux bestående popularitet är dess livfulla plugin-ekosystem, som enkelt hanteras via plugin-hanteraren (tpm) . Med plugins kan du:

  • Spara och återställ arbetsytor med
  • Behåll bakåtskrollningshistoriken vid omstarter med tmux-kontinuum
  • Få förbättringar av statusfältet, väder, batteri och mer

Denna utökningsbarhet låter tmux hålla jämna steg med varje ny generation av terminalarbetsflöden.

Bakom kulisserna: tmux server, klienter och arkitektur

tmux använder en klient-server-arkitektur. tmux-servern startar automatiskt när du kör det första kommandot; all din sessions-, fönster- och rutedata förblir säker på servern, och klienter (dvs. dina terminaler) ansluter och kopplas bort sömlöst.

  • Allt aktivt tillstånd hanteras av serverprocessen, vilket säkerställer att du aldrig förlorar ditt arbete när du byter terminal (eller ens datorer, så länge du återansluter).
  • Klienter är det gränssnitt du använder för att interagera med tmux. Du kan ha flera klienter anslutna till samma session – alla visar och redigerar samma fönster och rutor i realtid.

Fördjupa dig i konfigurationen: Avancerade tips

tmux konfigurationssystem är mycket grundligt – det hanterar miljövariabler, inbäddade kommandon och mer. Konfigurationsfiler (.tmux.conf) analyseras när servern startar, vilket låter dig:

  • Definiera anpassade prefix, färger och format
  • Skicka miljövariabler till underprocesser
  • Växla mellan vi och emacs genvägar i kopieringsläge
  • Lägg till skript och hooks för komplex automatisering (till exempel att starta specifika program vid laddning eller omkonfigurera statusfältet för specifika triggers)
  • Kommentera och strukturera din konfiguration för att dela med ett team eller på GitHub

Vill du ladda en alternativ konfiguration utan att starta om? Använd:

tmux source-file /path/to/file

Även om tmux konfiguration inte är ett komplett skriptspråk, möjliggör dess funktioner (som variabel expansion, inbäddade kommandon och villkor) stor flexibilitet för avancerade användare.

Arbeta med kopieringsläge och inklistringsbuffertar

tmux innehåller ett kraftfullt kopieringssystem för att navigera och manipulera terminalutdata utöver vanlig rullning och markering.

  • Gå in i kopieringsläge med Ctrl+b
  • Hantera buffertar, inklusive namngivna klistra in-buffertar (med kommandon som set-buffer, load-buffer, save-buffer)
  • Integrera med systemets urklipp för enkel kopiering och klistring i grafiska applikationer (med ytterligare konfiguration eller plugins)

Det här systemet hjälper till med forskning, kodgranskning eller databehandling, vilket gör det enkelt att kopiera loggutdata eller resultat utan krångel.

Viktig terminologi och tmux ekosystem

tmux introducerar sin egen unika terminologi:

  • Session: Översta nivåns samling av fönster och rutor
  • fönster: Helskärmsterminal inom en session, innehållande rutor
  • Ruta: Underindelning av ett fönster, där varje fönster kör sitt eget program
  • Kund: Terminalinstans ansluten till tmux-sessionen eller servern
  • Prefixnyckel: Genväg som utlöser tmux-kommandon (som standard, Ctrl+b)
  • Statusrad: Information längst ner (eller överst, om konfigurerad) på din terminal
  • Trädläge: Visuell, navigerbar webbläsare för sessioner, fönster och rutor

För fullständig information och kommandoreferenser, kolla wikin.

Alternativ, stilar och format: Gör din tmux perfekt

tmux definieras av sina alternativ – och med hundratals tillgängliga kan du konfigurera varje aspekt av gränssnittet efter dina önskemål. Några användbara alternativ inkluderar:

  • basindex — Börja fönsternumreringen från 1
  • mus — Slå på/av musstöd
  • status-position — Flytta statusfältet uppåt eller nedåt
  • omnumrera fönster — Numrera om fönster automatiskt efter att de tagits bort
  • fokushändelser, set-titlar, statusnycklar — Justera fönsterfokus, titlar och barbeteende
  • stilnycklar — Definiera visningsattribut och färger (från fg=red till #ff8800 för anpassade färger)

tmux för avancerade användare och skript

Avancerade användare ser tmux som mycket mer än ett verktyg – det är grunden för hela deras arbetsmiljö. Med skript kan du:

  • Automatisera miljökonfiguration för projekt
  • Kör repeterbara fönster- och rutekonfigurationer i CI, instrumentpaneler eller övervakning
  • Utlösa hooks vid händelser (t.ex. köra diagnostik vid koppling av sessioner, logga ändringar i statusfältet)
  • Kedjekommandon för att automatisera arbetsflöden (kombinera new-session; split-window; send-keys, Etc)

Kolla den avancerade delen av wikin för att komma igång med komplexa skript och plugins.

Bästa praxis för att få ut det mesta av tmux

Här är rekommenderade strategier för den bästa tmux-upplevelsen:

  • Definiera sessioner kring breda teman (som 'arbete', 'devops', 'personligt'), med specifika fönster och rutor för deluppgifter.
  • Namnge alltid dina sessioner och fönster för snabb referens— undvik att koppla till meningslösa siffror eller strängar.
  • Håll din konfiguration under versionskontroll så att du kan återställa den eller enkelt dela den med ditt team.
  • Utforska plugin-ekosystemet: Installera TPM och kolla in färdiga plugins på GitHub för att utöka din installation.
  • Lär dig de mest användbara genvägarna—de är ditt hemliga vapen för fart, väl värda att memorera!
  • Hålla sig uppdaterad: tmux är under aktiv utveckling, och nya funktioner som flytande rutor, trädläge och klienthantering kan göra ditt arbetsflöde ännu kraftfullare.

Kolla in communityguider, dotfiler och skärmdumpar för praktiska idéer – det finns tmux-innehåll för alla inlärningsstilar.

Användbara resurser och var du kan lära dig mer

Om du någonsin går vilse eller vill se vad som är nytt i den senaste versionen, kolla alltid eller prenumerera på uppdateringar på GitHub.

Android 17:s Linux-terminal: Komplett guide till nya funktioner, anpassningar och uppdateringar för avancerade användare

Lämna en kommentar