En
kort
introduksjon
av
tmux

Introduksjon til tmux

Som utvikler er det noen verktøy som er nyttig å kjenne til. Jeg vil påstå at en god teksteditor og git faller inn i denne kategorien. I denne artikkelen vil jeg introdusere tmux, et annet verktøy som kan være kjekt å ha i verktøykassa.

Hva er tmux?

tmux (kort for terminal multiplexer) er et kraftig open-source verktøy som tillater opprettelse, vedlikeholde og navigere mellom flere terminaløkter fra en enkelt skjerm. De ulike terminaløktene kan arrangeres i flere paneler eller flere vinduer avhengig av behov og ønsker.

Men vent, finnes det ikke mange terminal-emulatorer som gjør akkurat dette? Hva er det som er spesielt med tmux?

Årsaken til at jeg valgte å bli kjent med tmux er fordi det inneholder noen flere egenskaper som er verdifulle å kjenne til, spesielt om man kobler seg på og utfører operasjoner på andre maskiner.

Når tmux starter så opprettes det en server på maskinen som holder styr på alle sesjonene og hvem som kjører disse. Denne serveren fortsetter å kjøre selv om du skulle koble fra terminalen dersom det fremdeles er aktive sesjoner. En som leser av outputen fra en av disse sesjonene kalles en klient. Tmux tillater at man kobler seg fra (detach) og kobler seg til (attach) en sesjon på tmux-serveren. Som et eksempel vil man kunne starte en langvarig prosess, koble fra og deretter koble seg til senere uten at prosessen blir avbrutt. Dette er spesielt praktisk om du kobler deg til en annen maskin via SSH. Da vil blant annet nettverksbrudd ikke lenger ødelegge for arbeidet. Systemadministratorer kan for eksempel koble seg til en maskin, starte ulike prosesser for å deretter koble seg fra. Senere kan den samme systemadministratoren, eller en annen kollega koble seg på den samme sesjonen over SSH og fortsette arbeidet. Faktisk så kan flere klienter koble seg på samme sesjon samtidig. Dette er praktisk for samarbeid eller opplæring.

Disse egenskapene kombinert med at det er en god terminal multiplexer gjør at jeg synes det er et godt verktøy å kjenne til. Og om man uansett skal bruke en multiplexer så kan man lære seg kommandoene for tmux da man kan få bruk for nettopp dette verktøyet i fremtiden. Personlig har jeg brukt tmux primært til å ha flere terminalsesjoner synlig i samme vindu. Eksempelvis et panel med loggen til en kjørende applikasjon, et annet panel med manpage-dokumentasjon og et siste større panel som inneholder tekstredigering med vim.

Fordeler med tmux

  • Vedvarende økter - tmux lar deg koble fra og gjenoppta økter. Hvis du jobber over SSH og forbindelsen brytes, kan du ganske enkelt koble til igjen og gjenoppta der du slapp.
  • Multitasking - Du kan kjøre flere programmer samtidig i separate paneler og vinduer innenfor samme terminalsesjon.
  • Organisering - Paneler og vinduer gir en effektiv måte å organisere forskjellige oppgaver og prosesser på. Dette kan øke produktiviteten ved å holde relevante oppgaver synlige og tilgjengelige.
  • Delte økte - Flere brukere kan koble seg til den samme tmux-økten, noe som gjør det nyttig for samarbeid og opplæring.
  • Konfigurerbarhet - tmux kan tilpasses med forskjellige nøkkelkombinasjoner og skript for å passe brukerens behov.

Noen raske keybindings

Det er alltid en terskel å lære seg nye keybindings og tmux er ingen unntak. Men som med alt annet ellers i livet så vil innsatsen man legger inn i noe belønnes på et eller annet tidspunkt.

tmux cheat sheet inneholder en god oversikt over de mest vanlige keybindingsene. For å komme raskt i gang:For å gi en kommando til tmux så sender man først prefixen Control + b. Da vil tmux lytte etter hva du ønsker å utføre.

Her er noen praktiske eksempler:

  • % - Splitt vinduet vertikalt
  • " - Splitt vinduet horisontalt
  • ; - Gå til forrige aktive panel
  • o - Bytt til neste panel
  • x - Lukk aktivt panel

Med disse keybindingsene vil man raskt komme i gang og utforske tmux og bli kjent med et nytt verktøy i verktøykassa.