Avant Red Hat Enterprise Linux 8, l'screen
la commande a été incluse. Dans la version 8, la décision a été prise de déprécier screen
et utilisez tmux
Au lieu. tmux
est un multiplexeur de terminal, ce qui signifie que vous pouvez exécuter un processus, vous déconnecter du système, puis vous reconnecter ultérieurement et à partir d'un autre ordinateur afin de pouvoir continuer à travailler dans ce processus. Un moyen simple de le démontrer est de se connecter en SSH à un système distant, démarrez tmux
, puis à l'intérieur de celui-ci, lancez un ping
commande à un système distant, déconnectez-vous de tmux
, reprendre tmux
, et vous verrez que le ping
va encore. Voici quelques-uns des cas d'utilisation courants :
- Si vous avez un processus de longue durée, comme la mise à niveau d'une application, et que vous ne voulez pas laisser la session ssh s'exécuter tout le temps ou que vous craignez que votre connexion réseau ne soit interrompue.
- De plus, si vous avez plusieurs sessions en cours d'exécution, vous pouvez utiliser des libellés pour les différentes sessions.
- Si vous voulez que quelqu'un d'autre voie ce que vous faites, vous pouvez démarrer un
tmux
session, puis demandez à cette autre personne de se connecter en SSH à votre système et de l'attacher à cetmux
séance.
Pour démarrer une session de base, il suffit d'exécuter le tmux
commande. Cela vous amène dans un tmux
session et vous pourrez exécuter des commandes et faire des choses comme vous le feriez normalement en tant qu'utilisateur. Pour vous déconnecter de votre session, mais la laisser en cours d'exécution, appuyez sur Ctrl+B puis D . Pour reprendre la session, je peux lancer :
$ tmux ls ### to see if there are any other tmux sessions
$ tmux a ### this will connect to the most recent session that was created.
S'il y a plusieurs sessions, vous pouvez vous connecter par le numéro de la session :
[root@opendemo ~]# tmux ls
0: 1 windows (created Thu Jan 28 19:58:27 2021) [103x22]
1: 1 windows (created Thu Jan 28 20:00:54 2021) [103x22]
2: 1 windows (created Thu Jan 28 20:01:08 2021) [103x22]
3: 1 windows (created Thu Jan 28 20:01:39 2021) [103x22]
[root@opendemo ~]# tmux a -t 1
[detached]
[root@opendemo ~]#
Un exemple de la façon dont j'utilise ceci est que la toute dernière commande de mon script de démarrage personnel qui se connecte au VPN et fait d'autres choses est de s'exécuter :
# /usr/bin/ssh -t shell-el7.redhat.com tmux attach
Cela me connecte par SSH à ce serveur distant, puis s'attache à mon tmux
session que je connais est là avec irssi
course. Pour plus d'informations sur l'utilisation de irssi
, veuillez consulter mon article Utiliser Irssi dans une session Linux tmux.
[ Vous pourriez également apprécier : Construire avec Buildah :Dockerfiles, ligne de commande ou scripts ]
Le deuxième exemple de cas d'utilisation ci-dessus concernait l'étiquetage des différentes sessions. Maintenant que nous avons passé en revue certaines des bases de l'utilisation de tmux
, voyons un exemple d'utilisation de libellés :
[root@opendemo ~]# tmux new -s "database upgrade"
[detached]
[root@opendemo ~]# tmux new -s "other process"
[detached]
[root@opendemo ~]# tmux ls
database upgrade: 1 windows (created Thu Jan 28 19:50:03 2021) [103x22]
other process: 1 windows (created Thu Jan 28 19:50:23 2021) [103x22]
[root@opendemo ~]# tmux attach -t "database upgrade"
[detached]
[root@opendemo ~]#
Vous remarquerez peut-être que si vous avez du texte qui défile au-delà du haut de votre écran, vous ne pouvez pas simplement appuyer sur Page vers le haut clé pour le voir.
Pour pouvoir utiliser vos touches de curseur dans tmux
pour pouvoir revenir dans le tampon, appuyez sur Ctrl+B puis le [ clé. À ce stade, vous pourrez utiliser la flèche touches, Page vers le haut , ou Page suivante pour se déplacer dans la sortie à l'écran.
Si vous souhaitez diviser le tmux
session en plusieurs volets, vous pouvez diviser votre session verticalement par Ctrl+B puis % . Pour diviser le volet horizontalement, vous utiliseriez Ctrl+B puis un simple guillemet double " . Dans la capture d'écran ci-dessous, j'ai d'abord divisé la session verticalement, puis j'ai divisé le volet de droite horizontalement.
Pour déplacer le curseur d'un volet à l'autre, vous utiliseriez Ctrl+B puis selon la flèche touche pour se déplacer dans cette direction.
Pour terminer une session sans s'y attacher, puis tapez exit
, vous utiliseriez kill-session
puis spécifiez la session à tuer :
Il y a plus d'options pour tmux
, et ils peuvent être consultés en utilisant Ctrl+B et puis ? :
[ Apprenez les bases de l'utilisation de Kubernetes dans cet aide-mémoire gratuit. ]
Pour en savoir plus, consultez la page de manuel de tmux
. Cet article a donné une introduction rapide à l'utilisation du tmux
afin qu'une session distante déconnectée ne finisse pas par tuer accidentellement un processus. Un autre programme similaire à tmux
est screen
et vous pouvez lire sur screen
dans cet article.