Tmux

Kādu brīdi esmu aizvietojis screen ar tmux. Gribas arī nedaudz ar jums padalīties ko tad tādu esmu atklājis kas pietrūka screen.

Sākumā bija grūt pierast, jo screen prefix taustiņš bija Ctrl+a, bet tmux ir Ctrl+b, no sākuma bija diezgan grūti pierast, un uz kādu laiku pārmapoju uz Ctrl+a, bet pēc kāda laika pēc darba maiņas “pazaudējot” konfigurācijas failu izdomāju ka sākšu lietot ar noklusējuma prefix taustiņu. Tā nu esmu ar to apradis un darbojas diezgan labi, kā saka visa vaina ir pieradumā.

Tālāk pastāstīšu un parādīšu pāris trikus ar tmux.

Pie pirmās lietošanas uzreiz pamanīju ka tmux ir status josla uzreiz un nav jāķimerējas pa konfigurācijas failu lai to iegūtu tādu kāda tā ir nepieciešama. Vēl protams ļoti noderīga lieta pie mūsdienu widescreen monitoriem kur platums ir diezgan liels ir iespēja sadalīt tmux logu vairākos blokos.

tmux panes

Ir iespēja arī ieslēgt iespēju ar peli pārvietoties starp blokiem, pārvietoties starp logiem, mainīt logu izmēru, lai to veiksmīgi izdarītu atliek .tmux.conf failā ievietot rindiņas:

set -g mode-mouse on
set -g mouse-resize-pane on
set -g mouse-select-pane on
set -g mouse-select-window on

ja nevēlamies restartēt tmux ar jaunajiem iestatījumiem, varam pārlādēd konfigurāciju

<prefix> :source-file ~/.tmux.conf

Tagad pie nedaudz advancētākām lietām, lieta tāda, ka bieži darbojos ar clusteriem, kur jāizpilda komandas uz visām nodēm, līdz ar ko nepieciešamā lieta ir clusterssh, bet tam ir mīnuss, katru ssh konekciju uz serveri viņš ver savā logā vaļā un tad sākas neērtības ar logu menedžēšanu, jo to ir daudz, kam klāt vēl nāk ievades logs, tas nozīmē ka uz diviem serveriem veidojot konekciju ar clusterssh atveras 3 logi, kas ir diezgan neērti. Te talkā nāk tmux, kuram varam uzrakstīt savu konfigurācijas failu katrai palaišanai, pieņemsim ka man jāpiekonektē pie diviem serveriem un jāvada vienādas komandas abos serveros, izveidojam bash scriptu:

#!/bin/bash
SESSION=$USER

tmux -2 new-session -d -s $SESSION

# izveidojam jaunu logu ar nosaukumu cluster
tmux new-window -t $SESSION:1 -n 'cluster'
tmux split-window -h
tmux select-pane -t 0
tmux send-keys "ssh user@ip" C-m
tmux select-pane -t 1
tmux send-keys "ssh user@ip" C-m
# liekam sinhronizēt ievadi uz visiem blokiem
tmux setw synchronize-panes on
# pievienojamies izveidotajai sesijai
tmux -2 attach-session -t $SESSION

Kad scripts izveidots uzliekam viņam palaišanas tiesības: chmod +x cluster.sh un palaižam ./cluster.sh ,iegūstam sesiju ar diviem logiem.

Tmux cluster

Ikdienā izmantoju termināli aplikāciju yakuake, kas man atveras tikai par 50% no ekrāna augstuma, bet šajā gadījumā es gribu atvērt cluster uz otra monitora un skatīties piemēram logus, tam talkā nāk konsole, izveidojam konsole tab definīcijas failu

title: cluster;; command: /home/user/cluster.sh

un tālāk ievietojam savā shell rc failā alias

alias cluster="konsole --tabs-from-file konsole-cluster"

Ielogojamies pa jaunu un rakstam atvērtā terminālī cluster un iegūstam konsoles logu ar diviem blokiem, kur katrs veido konekciju uz citu serveri.

tā mēs varam sataisīt daudz un dažādus konfigurācijas failus. Ja esi izdomājis pamēģināt tmux, tad kā iesācējiem iesaku paskatīties līdzi CheatSheet.

 
comments powered by Disqus