Tmux/fr
From OpenSimulator
Tmux est un multiplexeur de teminaux: il autorise un certain nomnbre de terminaux (ou fenetres), à être lancés dans un programme séparé, à être créés accédés et controlés depuis un seul écran. Tmux peut être détaché d'un écran et continuer à fonctionner en arrière plan puis être rattachés plus tard.
Beaucoup de monde utilise GNU Screen pour exécuter OpenSimulator mais Tmux offre quelques bons outils pour améliorer la tâche.
Tmux fonctionne globalement comme Screen à part que la combinaison de touches par défaut pour lancer une commande est ctrl+b au lieu de ctrl+a.
Un cours rapide (en anglais) est disponible içi.
Contents |
Installation
Debian
sudo aptitude install tmux
Si vous voulez utiliser ctrl+a à la place de ctrl+b et ajouter quelques raccourcis intéressants, vous pouvez utiliser un fichier ~/.tmux.conf et ajouter dedans
# remappe le prefix en Control + a set -g prefix C-a unbind C-b bind C-a send-prefix
# force un rechargement du fichier de configuration unbind r bind r source-file ~/.tmux.conf
# basculer rapidement entre les panneaux unbind ^A bind ^A select-pane -t :.+
Lancer des sessions
Vous pouvez démarrer une session en utilisant la syntaxe :
tmux new -s my_session_name
pour détacher la session, vous pouvez utiliser le raccourci ctrl+b d
Ensuite vous pouvez utiliser l'interrupteur "-t" (target = cible en français) afin de cibler une session pour une commande.
tmux attach -t my_session_name
Fenetres et panneaux
Fenetres
Tmux a la possibilité d'utiliser des onglets pour l'affichage. Les onglets sont appellés "windows" (fenetres). Vous pouvez creer une fenetre en utilisant le raccourci ctrl+b c Basculez ensuite entre les fenetres avec ctrl+b [0-9]
Panneaux
Tmux a la capacité de couper une fenetre en plusieurs panneaux appelés "panes". Pour couper verticalement, utilisez le raccourci ctrl+b " Pour couper horizontalement, utilisez le raccourci ctrl+b % Pour déplacer le curseur entre les panneaux, utilisez le raccourci ctrl+b puis les fleches du clavier Si vous gardez les touches enfoncees en même temps, vous pouvez redimentionner le panneau actuel.
Partager des sessions
Voici la partie interessante pour utiliser Tmux avec OpenSimulator. La session est partagée en utilisant un "socket" et les utilisateurs partageant la session doivent être autorisés à écrire dans ce socket.
Preparer la place
Nous allons créer un groupe et y ajouter tous les utilisateurs devant partager la session. Nous allons créer un dossier dans le dossier /tmp pour héberger le socket. Nous allons donner l'autorisation en ecriture au groupe sur le dossier du socket.
groupadd tmux-share addgroup tmux-share myuser addgroup tmux-share myotheruser mkdir /tmp/tmux-share chgrp tmux-share /tmp/tmux-share chmod -R 2775 /tmp/tmux-share
Créer la session
tmux -S /tmp/tmux-share/1 new-session -s mysession
Joindre la session
tmux -S /tmp/tmux-share/1 attach -t mysession
Envoyer des commandes à la session
Il peut être utile d'envoyer des commandes aux sessions en utilisant un script bash ou autre chose. Pour faire cela, vous pouvez utiliser une syntaxe comme celle ci :
tmux send-keys -t mysession:1 "ls" C-m
donc si vous voulez envoyer des commandes en utilisant un socket :
tmux -S /tmp/tmux-share/1 send-keys -t mysession:1 "ls" C-m
journaliser la sortie
Afin de vous épargner des heures de recherche pour la réponse, voici une version de commande qui devrait fonctionner :
tmux -S /tmp/tmux-share/test new -s test1 tmux -S /tmp/tmux-share/test pipe-pane -o -t test1 'cat >> tmux.log'