tmux

2023-03-11

La commande tmux est très pratique.

Elle permet de créer des sessions distantes, d’y exécuter des commandes.

Vous pourrez retrouver ces sessions plus tard même si vous avez éteint votre machine ou avez été coupé par un VPN par exemple.

Sur la machine distante B, dans votre bashrc

function tm() {
        tmux attach -t $1 || tmux new -s $1
}

Depuis votre machine A, créer votre session ou bien la rattacher

$ ssh B
$ tm jeff

Vous pouvez aussi utiliser tmux en local pour démarrer plusieurs applications et avoir pour chacunes d’elle une ligne de commande. Ca peut-être utile par exemple si vous souhaitez initialiser rapidement votre environnement de travail.

Ainsi, chaque matin, avec la commande make run-all, je lance 4 applis (chacune dans un onglet tmux) et j’ai une console bash en plus. C’est pratique et très efficace.

.PHONY: run-all
run-all:
        @figlet -t $@
        tmux start-server
        tmux new -d -s monsvi -n bash
        tmux new-window -t monsvi:1 -n svi
        tmux send-keys -t monsvi:1 "make -C monsvi-svi-webapp run" C-m
        tmux new-window -t monsvi:2 -n ihm
        tmux send-keys -t monsvi:2 "make -C monsvi-ihmadm-webapp run" C-m
        tmux new-window -t monsvi:3 -n fit
        tmux send-keys -t monsvi:3 "make -C monsvi-fitnesse run" C-m
        tmux new-window -t monsvi:4 -n aig
        tmux send-keys -t monsvi:4 "make -C monsvi-aiguilleur run" C-m
        tmux select-window -t 1
        tmux attach -t monsvi