Mul­ti­tas­ken

De com­mand­line slim­mer ma­ken met de Unix-tool tmux

C’t Magazine - - Praktijk | Terminal-multiplexer tmux - Thor­sten Leem­huis

Met tmux kun je voor­ko­men dat pro­gram­ma's per on­ge­luk wor­den af­ge­bro­ken en kun je meer­de­re shells naast el­kaar weer­ge­ven. En dat zijn nog maar twee van de ve­le func­ties waar­door tmux te­gen­woor­dig bij het stan­daard ge­reed­schap van sys­teem­be­heer­ders en ont­wik­ke­laars hoort. Tmux is daar­mee een klas­se be­ter dan screen.

De com­mand­line is voor veel sys­teem­be­heer­ders en ont­wik­ke­laars hun da­ge­lijk­se werk­plek. En dat is niet voor niets, want heel veel za­ken kun je daar een­vou­dig en snel af­han­de­len. Tmux maakt het wer­ken met de com­mand­line in veel op­zich­ten mak­ke­lij­ker. Zo kun je met de tool on­der an­de­re een werk­om­ge­ving op­zet­ten waar­in meer­de­re com­mand­lines­hells naast el­kaar draai­en en ook na een her­start weer pre­cies zo te­rug­ke­ren. Bo­ven­dien draai­en shells en pro­gram­ma's bij tmux ook na het uit­log­gen ge­woon op de ach­ter­grond door, zo­dat je la­ter ge­woon ver­der kunt wer­ken. Het is dan als­of je nooit bent weg­ge­weest. Dat kan niet al­leen lo­kaal, maar ook op re­mo­te sys­te­men die je via ssh be­dient.

Bij de mees­te Li­nux-dis­tri­bu­ties en BSD-af­stam­me­lin­gen kun je tmux via het pak­ket­be­heer in­stal­le­ren. Ver­sies voor OS X krijg je via de pak­ket­ma­na­gers Ho­me­brew en MacPorts. De werk­wij­ze van de ter­mi­n­al­mul­ti­plexer is sim­pel: bij de eer­ste keer aan­roe­pen start tmux een ach­ter­grond­pro­ces (de 'tmux-ser­ver'), waar­in het de stan­daards­hell van het sys­teem (meest­al een bash) uit­voert. Het door jou op­ge­roe­pen tmux kop­pelt zich met­een aan dit ach­ter­grond­pro­ces en wordt zo de 'tmux-client' die de shell weer­geeft.

Al­leen aan een groe­ne sta­tus­balk on­der­aan in de ter­mi­nal kun je zien dat de shell on­der tmux draait. Start daar een lang­lo­pend com­man­do, zo­als find /. Druk ver­vol­gens eerst op Ctrl+B en daar­na op D. De door tmux ge­toon­de om­ge­ving ver­dwijnt en je komt weer op de com­mand­line waar­op je tmux had op­ge­roe­pen. Bij de­ze zo­ge­naam­de 'de­ta­che' wordt de tmux-client los­ge­kop­peld van de tmux-ser­ver. De daar­in draai­en­de shell in­clu­sief de daar­in ge­star­te pro­gro­gram­ma's wer­ken ge­woon door. Je kunt met het com­man­do

tmux at­tach-ses­si­on

de om­ge­ving weer naar vo­ren ha­len. Je ziet dan al­le pro­gram­ma-out­put die on­der­tus­sen is ge­ge­ne­reerd. Zo'n de­tach ge­beurt au­to­ma­tisch wan­neer de gra­fi­sche userin­ter­fa­ce door uit­log­gen of een crash be­ëin­digd wordt. Op de­ze ma­nier kan tmux ook gro­te ko­pi­eer­ac­ties of dis­tri­bu­ti­eup­da­tes be­scher­men te­gen af­bre­ken.

A breek­be­scher­ming

Door de­ze ei­gen­schap is tmux ont­zet­tend han­dig om com­mand­line­pro­gram­ma's uit te voe­ren op een re­mo­te, via ssh aan­ge­stuurd sys­teem. Wan­neer je de pro­gram­ma's op­roept on­der een daar ge­star­te tmux, blij­ven ze ge­woon wer­ken, ook wan­neer de ssh-ver­bin­ding wordt ver­bro­ken. Zon­der tmux die er tus­sen­in zit, zou­den ze vroeg of laat af­ge­bro­ken wor­den.

Je kunt een een­maal ge­star­te tmux bo­ven­dien be­rei­ken van­af ver­schil­len­de com­pu­ters. Als je van­af je werk­com­pu­ter een on­der­houds­taak start op een ser­ver die je via ssh aan­stuurt, kun je die tmux­ses­sie la­ter van­af een no­te­book of di­rect op de ser­ver weer op­pak­ken en ver­der wer­ken waar je ge­ble­ven was. Veel men­sen

De tool tmux draait meer­de­re shells te­ge­lijk in een om­ge­ving die na het uit­log­gen op de ach­ter­grond blijft draai­en en die je la­ter weer kunt op­pak­ken. Een re­mo­te ge­o­pen­de shell blijft in stand, ook bij een af­ge­bro­ken ssh-ver­bin­ding.

Newspapers in Dutch

Newspapers from Netherlands

© PressReader. All rights reserved.