28 Tmux
1. Què és Tmux
Tmux és un programa que permet utilitzar diverses consoles virtuals des d’una mateixa finestra.
Tmux és un multiplexor de terminals.
Quan utilitzem Tmux amb el nostre terminal obtenim avantatges, de les quals destacarem 3:
- Permet restaurar sessions que han mort accidentalment.
- Ajuda a organitzarnos quan treballem amb moltes terminals al mateix temps.
- Facilita canviar ràpidament d’entorn de treball.
2. Conceptes claus
- Sessió
- Finestra
- Panell
La sessió és una col·lecció de consoles virtuals gestionades per Tmux. Cada sessió té una o més finestres associades. Les finestres ocupen tot l’espai de la pantalla, es poden dificir en regions rectangulars que s’anomenen panels. En cada panel s’executa una consola virtual independent.
2.1. Barra d’estat
- Index de la sessió entre corxets
- L’índex i el nom de la finestra
- La ruta relativa del panel
- L’hora i la data actuals
2.2. Arquitectura Client / Servidor
Quan executem el comandament tmux
en terminal es creen dos processos independents: un per al client i altre per al servidor.
Aquests processos es comuniquen entre sí mitjançant l’enviament de comandaments.
2.3. Funcions del client
- Enviar comandaments al servidor que es vol que Tmux execute
- Pintar sessions, finestres i panels en patatalla que està gestionant el servidor
2.4. Funcions del servidor
- S’encarrega d’executar els comandaments
- Gestiona les sessions i consoles virtuals
Gràcies a aquesta arquitectura, si el client acaba el server continuarà executant les tasques en segon pla. Això és el que ens permetrà recuperar el nostre entorn més tard.
2.5. Comandaments
Es poden classificar en dos tipus depenent de com li’ls passem a Tmux.
Elx comandaments que executem fora de la sessió de Tmux s’anomenen comandaments no interactius.
Anomenem prefixe
a Ctrl + b
Comandaments interactius: prefixe + : + comandament
Combinació de tecles: prefixe + tecla
2.6. Sessions
tmux list-sessions
: llistat de totes les sessions
tmux attach
: es connectarà a l’última sessió
tmux attach -t 0
: es connectarà a la sessió 0
Ctrl + b + d
: desconnecta de la sessió
Ctrl + b+ $
: canvia el nom de la sessió
Ctrl + b+ s
: navegar entre sessions
Ctrl + b+ : + kill-session
: matar sessió
2.7. Finestres
Ctrl + b+ ,
: renomena una finestra
Ctrl + b+ c
: crear una finestra nova, un asterisc en la barra d’estat ens indica quina és la finestra activa
Ctrl + b+ p
: finestra prèvia
Ctrl + b+ n
: finestra següent
Ctrl + b+ 0
: finestra 0
Ctrl + b+ 2
: finestra següent
Ctrl + b+ &
: tanca totes les finestres
2.8. Panels
Ctrl + b+ "2
: divideix el panell horitzontalment
Ctrl + b+ %5
: divideix el panell actiu verticalment
Ctrl + b+ →
: utilitzem les fletxes per menejar-nos entre panells
Ctrl + b+ x
: tanca el panell
Ctrl + b+ espai
: rota la configuració dels panells configurant els layouts
Ctrl + b+ [
: mode còpia
q
: eixir del mode còpia
3. Tmux amb Oh My ZSH
Alias | Commandament | Descripció |
---|---|---|
ta |
tmux attach -t |
Attach new tmux session to already running named session |
tad |
tmux attach -d -t |
Detach named tmux session |
ts |
tmux new-session -s |
Create a new named tmux session |
tl |
tmux list-sessions |
Displays a list of running tmux sessions |
tksv |
tmux kill-server |
Terminate all running tmux sessions |
tkss |
tmux kill-session -t |
Terminate named running tmux session |
tmux |
_zsh_tmux_plugin_run |
Start a new tmux session |