Ett av de mest använda verktygen i webbutvecklingsprocessen är säkert terminalen. Medan du arbetar med ett projekt, befinner du dig ofta i att använda terminalen med flera flikar öppna samtidigt, en för att starta en lokal webbserver, en andra flik för att hantera databasen, en annan för att kopiera filer och så vidare. Detta kan snart bli rörigt och svårt att hantera. En lösning på detta problem som fungerar bra för mig är terminal multiplexern, tmux.
tmux
är en terminal multiplexer: det möjliggör ett antal terminaler, som varje kör ett separat program som ska skapas, åtkomst och kontrolleras från en enda skärm.
Definitionen ovan, taget från tmux
webbplats är tydlig: från ett terminalfönster kan vi starta och styra ett antal andra terminaler och i var och en av dem kör en annan applikation eller en annan instans av en applikation.
tmux
är utvecklad på en klient-server-modell. Detta leder till begreppet sessioner i spelet. En session lagras på servern som håller representation av ett fönster. Varje fönster kan kopplas till flera sessioner och flyttas mellan dem.
Å andra sidan kan flera klienter bifogas varje session. Så, en eller flera användare kan ansluta till en tmux
session från olika datorer och de delar samma information i fönstret. Detta är extremt användbart vid undervisning eller samverkan eftersom användarna delar en tmux
session se samma information på sina terminalfönster.
Anslutning till a tmux
sessionen görs genom att starta programmet med följande kommando:
tmux bifoga
När en användare vill avsluta funktionen för terminaldelning används följande kommando:
tmux lossa
tmux
körs på Linux och Mac. När jag skriver den här artikeln är jag inte medveten om en Windows-version av programmet.
För de flesta Linux-distributioner finns det ett paket i sina repositories:
På Arch (som jag använder) är installationen helt enkelt en fråga om att köra följande kommando:
sudo pacman -S tmux
Efter installationen kan du börja tmux
genom att utfärda kommandot tmux
i ett terminalfönster. Om du vill att den ska köra automatiskt för varje terminalsession krävs en liten konfiguration:
tmux
som i skärmdumpen nedan: Om du är på Mac kommer iTerm2 med tmux
installerat, och för att starta det, bör du utfärda kommandot: tmux
.
Efter installationen, om du startar ett terminalfönster, är det enda nya som du kommer att märka att det finns en statusrad längst ner på skärmen:
Låt oss ta en titt på de vanligaste funktionerna. För en lista med kompletta funktioner, se länkarna i slutet av den här artikeln.
Eller, med andra ord, dela huvudfönstret. Först av allt måste jag säga att var och en tmux
Kommandot är prefixat med följande tangentkombination:
. Detta kan ändras, men vi lär oss hur du konfigurerar och anpassar tmux
senare.
Så, för att dela ett fönster vertikalt (eller i höger och vänster rutor) ska följande kommando användas:
%
och att dela fönstret i horisontella rutor du kan använda:
"
Och resultatet ska se ut som följer:
För att flytta markören från en ruta till den andra (aktiva rutor) används piltangenterna. Kommandot ser så här ut:
[Upp, Ner, Höger, Vänster]
Om du vill gå till den tidigare aktiva rutan kan du använda följande kommando:
;
Om du inte är nöjd med positionen för en ruta kan du rotera rutorna med kommandot:
När du har skapat kan du ändra varje rutor i ett cellsteg, med hjälp av:
eller i fem celler steg med:
När du vill stänga den aktuella rutan kan du använda:
x
Ibland kanske du vill skapa ett annat fönster, till exempel för att arbeta med ett annat projekt. Det här fönstret kan innehålla en helt annan uppsättning rutor med olika program i var och en av dem. För att göra det, utfärda följande kommando:
c
Då om du vill byta till nästa fönster kan du använda:
n
Och du kan växla till föregående fönster genom att använda:
p
Eller du kan välja fönstret interaktivt med:
w
För att stänga det öppnade fönstret, använder du:
&
Antag att du har utfärdat ett kommando på terminalen och utmatningen av kommandot passar inte i en skärm, så du måste rulla upp för att se hela utmatningen. Om du försöker trycka på Upp nyckeln, det här kommer inte att rulla upp dig, eftersom det bara visar din kommandoradshistorik. För att rulla upp på skärmen, använd följande kommando:
[
Och sedan slå en av följande tangenter: Upp
, Ner
, PgUp
eller PgDn
att bläddra upp eller ner.
När du i det här läget kan du också kopiera text från historiken och klistra in den med:
]
För att avsluta detta Föra in
läge, bara träffa esc.
Nu finns det många andra kommandon som är bundna till olika nycklar. Du kan lista alla nyckelbindningar genom att utfärda:
?
tmux
är mycket konfigurerbar. Konfigurationsfilen är antingen /etc/tmux.conf
för systeminställningar eller (rekommenderas) ~ / .Tmux.conf
för användarspecifika inställningar.
Ett av de första sakerna som de flesta användare ändrar är mappningen av prefixnyckeln (sedan
verkar inte vara så praktisk). De flesta användare ändrar det till
. Detta kan göras som så:
set -g prefix C-a unbind C-b bind C-a send-prefix
De -g
alternativet i det första kommandot berättar tmux att detta är ett globalt alternativ, vilket betyder att det här är inställt för alla fönster och sessioner.
Vissa användare kan föredra Vi eller Emacs som bindningar för nyckelåtgärderna. Detta görs med hjälp av:
set -g status-nycklar vi setw -g lägesnycklar vi
De setw
kommando, ställer in alternativet för fönstret (påverkar alla rutor i ett fönster).
Du kan utföra olika konfigurationer av statusraden: du kan slå på eller av, du kan ändra dess bakgrund och förgrundsfärg, du kan ändra vilken information som visas i den, etc..
Om du vill stänga statusfältet ut, utfärdar du följande kommando:
set -g status off
Eller så kan du prova något så här:
set -g status-bg blue set -g status-fg vit setw -g status-vänster #H: #S vid #W: #T
... som ändrar statuslinjens bakgrund till blå, textfärgen till vit och visas till vänster om statusfältet värdnamnet för localhost, följt av ett kolumn och sessionsnamnet följt av "at" -strängen och fönsternamnet, en kolon och till sist paneltiteln.
Du kan också visa statusraden längst ner eller längst upp i fönstret:
set -g statusposition [bottom | topp]
För mer information om konfiguration och andra konfigurationsalternativ kan du kontrollera alternativdelen i handboken.
Jag hoppas att du har hittat denna introduktion till tmux
användbart för att förbättra ditt terminala arbetsflöde. Jag har presenterat här bara några kommandon som jag brukar oftast använda. Om du vill lära dig mer finns det flera resurser som finns tillgängliga. Jag rekommenderar verkligen:
tmux
på Arch wiki