Tmux

    Qu'est-ce que Tmux ?

    Tmux est un terminal multiplexeur, c'est-à-dire un logiciel qui permet de gérer plusieurs pseudos-terminaux à l'intérieur d'un seul terminal. Cela s'avÚre trÚs utile quand on veut exécuter plusieurs commandes, par exemple ouvrir le fichier source d'un programme avec Vim, tout en compilant le programme. On peut aussi l'utiliser pour détacher une session et s'y reconnecter, ce qui est trÚs pratique par exemple pour laisser active une session ssh mais nous reviendrons par la suite sur ce point.

    L'utilisation de Tmux

    On se concentrera ici sur l'utilisation de Tmux avec ma configuration personnelle qui diffĂšre par certains raccourcis de la configuration standard (pour une meilleure intĂ©gration avec Awesome et Vim), surtout pour ce qui est du dĂ©placement entre terminaux. Pour avoir une idĂ©e gĂ©nĂ©rale de l'organisation de Tmux, on a d'abord une session, elle peut contenir plusieurs fenĂȘtres, chaque fenĂȘtre peut elle-mĂȘme contenir plusieurs pans.

    Pour dĂ©marrer Tmux, il suffit d'ouvrir un terminal et de taper tmux dans celui-ci. On peut alors voir la barre d'information situĂ©e en haut et un terminal. Dans cette barre, on a de gauche Ă  droite : le nom de la session (par dĂ©faut un numĂ©ro), le nom des fenĂȘtres ouvertes dans la session et enfin la date et l'heure.

    Dans Tmux, la plupart des raccourcis commencent par ctrl + b, on remarque d'ailleurs que le nom de la session, en haut à gauche dans la barre, est surligné en vert quand on presse puis relùche ctrl + b. Certains raccourcis nécessitent d'appuyer simultanément sur ctrl + b + touche, d'autres de presser puis relùcher ctrl + b avant d'appuyer sur une touche, ce qui sera noté dans toute la suite par ctrl + b : touche.

    Tmux comporte beaucoup de fonctionnalités et on ne présentera ici que les plus utiles pour commencer.

    Tmux session

    On va présenter ici quelques commandes de base permettant de contrÎler une session Tmux :

    • ctrl + b : $ renommer la session.
    • ctrl + b : w lister les sessions, leurs fenĂȘtres, leurs pans et se dĂ©placer entre ceux-ci.
    • ctrl + b : d dĂ©tacher la session.

    Pour se ré-attacher à une session on tape dans n'importe quel terminal :

    • tmux list-sessions pour voir les sessions prĂ©sentes.
    • tmux attach -t nom_de_la_session pour se rĂ©-attacher Ă  la session.

    Tmux fenĂȘtre

    Dans chaque session de Tmux on peut crĂ©er des fenĂȘtres dont le nom s'affiche Ă  droite du nom de la session. Ici on n'en n'a qu'une seule qui s'appelle bash, on peut la renommer en tapant ctrl + b : , et en tapant le nom que l'on souhaite donner. Je vais maintenant prĂ©senter une sĂ©rie de raccourcis pour crĂ©er et se dĂ©placer entre fenĂȘtres, ces raccourcis (sauf le premier) sont propres Ă  ma configuration :

    • ctrl + b : c crĂ©er une nouvelle fenĂȘtre.
    • ctrl + b + flĂšche droite pour aller Ă  la fenĂȘtre suivante.
    • ctrl + b + flĂšche gauche pour aller Ă  la fenĂȘtre prĂ©cĂ©dente.

    Tmux pans

    On peut crĂ©er dans chaque fenĂȘtre des pans. Cela est trĂšs pratique car permettant d'avoir plusieurs terminaux indĂ©pendants sur le mĂȘme Ă©cran.

    • ctrl + b + v crĂ©er un pan verticalement.
    • ctrl + b + h crĂ©er un pan horizontalement.
    • alt + flĂšche gauche se dĂ©placer dans le pan Ă  gauche.
    • alt + flĂšche droite se dĂ©placer dans le pan Ă  droite.
    • alt + flĂšche haut se dĂ©placer dans le pan Ă  haut.
    • alt + flĂšche bas se dĂ©placer dans le pan Ă  bas.
    • ctrl + b : alt + flĂšche permet de redimensionner le pan.

    Voilà, avec ces quelques raccourcis on peut déjà avoir un environnement de travail complet.

    Les extensions.

    Ma configuration de Tmux inclut des extensions trÚs pratiques. Par exemple, on peut sauvegarder une session pour la retrouver aprÚs redémarrage :

    • ctrl + b : ctrl + s sauvegarder une session.
    • ctrl + b : ctrl + r (dans une session Tmux "neuve") restaurer une session sauvegardĂ©e. Cette sauvegarde inclut aussi les terminaux contenant Vim ce qui permet trĂšs facilement de retrouver son environnement de travail si on doit par exemple redĂ©marrer son ordinateur.

    Tmux en utilisation Ă  distance

    On peut trĂšs bien se servir de Tmux et de Vim pour travailler sur une machine distante tout en gardant le confort d'une utilisation de bureau. Pour cela rien de plus simple, on copie sur la machine distante ses fichiers de configuration (bien sĂ»r aprĂšs s'ĂȘtre assurĂ© que Tmux et Vim sont installĂ©s, ce qui est le cas de tout bon serveur), penser bien Ă  faire une sauvegarde des fichiers existant si la machine est partagĂ©e entre plusieurs utilisateurs utilisant le mĂȘme login.

    scp ~/.vimrc user@ip:~/
    scp -r ~/.tmux/ user@ip:~/
    scp -r ~/.tmux/ user@ip:~/
    ssh user@ip
    tmux
    

    On peut alors travailler comme sur son ordinateur de bureau sans perte de productivitĂ©. De mĂȘme, nous sommes maintenant Ă  l'abri des caprices du rĂ©seau, si la session ssh est coupĂ©e, on peut toujours se reconnecter au serveur et rĂ©cupĂ©rer la session Tmux qui a Ă©tĂ© automatiquement dĂ©tachĂ©e.