Parcourir les questions que j'ai trouvées sur tmux (j'utilisais normalement GNU Screen). Ma question est de savoir quels sont les avantages et les inconvénients de chacun d’eux. Surtout je n'ai pas trouvé grand chose à propos de tmux.
Parcourir les questions que j'ai trouvées sur tmux (j'utilisais normalement GNU Screen). Ma question est de savoir quels sont les avantages et les inconvénients de chacun d’eux. Surtout je n'ai pas trouvé grand chose à propos de tmux.
Réponses:
De leur site web :
- En quoi tmux est-il différent de l'écran GNU? Que propose-t-il d'autre?
tmux offre plusieurs avantages par rapport à l'écran:
- un modèle client-serveur clairement défini: les fenêtres sont des entités indépendantes pouvant être attachées simultanément à plusieurs sessions et visualisées à partir de plusieurs clients (terminaux), ainsi que déplacées librement d'une session à l'autre au sein du même serveur tmux;
- une interface de commande cohérente et bien documentée, avec la même syntaxe, qu'elle soit utilisée de manière interactive, en tant que liaison de clé ou à partir du shell;
- facilement scriptable depuis le shell;
- plusieurs tampons de pâte;
- choix de la disposition des touches vi ou emacs;
- une option pour limiter la taille de la fenêtre;
- une syntaxe de ligne d'état plus utilisable, avec la possibilité d'afficher la première ligne de sortie d'une commande spécifique;
- une base de code sous licence BSD plus propre, moderne et facilement évolutive.
Il reste encore quelques fonctionnalités à l'écran que tmux omet:
- prise en charge série et telnet intégrée; c'est gonflé et il est peu probable qu'il soit ajouté à tmux;
- support de plates-formes plus étendu, par exemple IRIX et HP-UX, et pour les terminaux impairs.
<C-Left>
dans vim
dans tmux
.
Une différence réside dans la manière dont les deux agissent lorsque plusieurs terminaux sont attachés à une même session.
Avec l'écran, la vue de chaque terminal connecté est indépendante des autres. Avec tmux, tous les terminaux connectés voient la même chose.
Supposons que vous ayez deux terminaux attachés à une seule session tmux. Si vous tapez ^B1 dans un terminal, l’autre terminal passe également à la fenêtre 1.
Lorsque vous avez deux terminaux connectés à une session d'écran unique et que vous tapez ^A1 en un, cela n'a aucun effet sur l'autre terminal.
Ceci est basé sur mon expérience avec tmux 1.2; Je vois que 1.3 est sorti mais je n'ai rien remarqué dans le changelog concernant ce changement de comportement.
Si votre session tmux d'origine est appelée 0
(par défaut), vous pouvez le faire tmux new-session -t 0
) pour démarrer une nouvelle session indépendante connectée au même ensemble de fenêtres, qui peut alors avoir sa propre vue.
tmux new -t 0
.
tmux est relativement nouveau comparé à l’écran GNU. Avantages / inconvénients est une question difficile, car les deux programmes résolvent à peu près le même problème. tmux est sous licence BSD alors que screen est GNU GPL. Cela compte pour certaines personnes.
screen est plus représenté (sur Linux) pour le moment, c’est-à-dire que vous êtes plus susceptible de le trouver sur une boîte Linux donnée que tmux. tmux est cependant plus représenté sur OpenBSD car il est inclus dans l’installation de base.
Les deux programmes vous permettent de faire la même chose, bien que l’état des choses soit un peu plus complexe que cela. Basculer entre les deux n'est pas trop compliqué, car de nombreuses fonctionnalités d'écrans ont également trouvé leur place dans tmux, bien que si vous êtes un utilisateur averti de l'un ou de l'autre, vous aurez probablement des frustrations en passant à l'autre.
Comme pour tout programme, cela dépend vraiment de vos besoins et de ceux avec lesquels vous êtes le plus à l'aise. Donnez-leur un essai et voyez avec qui vous jouez bien.
Pour plus d'informations sur tmux, consultez https://tmux.github.io/
La plus grande différence dans mon utilisation est que dans Gnu Screen, vous ne pouvez diviser les images que horizontalement, alors que dans Tmux, vous pouvez séparer les images horizontalement et verticalement. C'est une sorte de cible en mouvement, bien que, comme je l'ai dit ici, la division verticale se répande dans l'écran .
À part cela, les choses sont à plat.
Je pensais simplement mentionner que l’ byobu
emballage disponible pour l’écran le rendait tellement meilleur qu’il était déjà prêt à l'emploi. Je ne sais pas si quelque chose comme ceci est disponible pour tmux, mais byobu
mon écran .creenrc ne fait que quelques lignes. Découvrez cet article rapide sur Byobu et les captures d'écran. La page de projet pour byobu décrit le nom d’un terme japonais qui désigne des écrans décoratifs à plusieurs panneaux servant de séparateurs de pièces pliantes. En outre, le simple fait de l'exécuter n'affecte pas les paramètres de votre écran, vous pouvez donc l'essayer en toute sécurité. Une fois que vous avez démarré la session, byobu
vous pouvez vous reconnecter librement à celle-ci en utilisant screen
et ne perdez pas les personnalisations effectuées par byobu
(utilisez-le uniquement pour l'appel initial). Les deux principaux avantages sont:
Je n'utilise pas la partie keybindings, mais trouve les barres d'état utiles.
Aussi, vous trouverez peut-être utile le lien Screen Vs tmux . Je pense que la plus grande partie est déjà mentionnée dans les réponses existantes.
byobu
, comme ceci répond avec sa liste de fonctionnalités.
byobu
, mais c’est aussi simple que d’exécuter la commande et de la trouver par vous-même (elle dépend du menu), car elle ne perturbe pas les paramètres d’écran existants. Et j'ai fait de ma réponse un wiki de communauté, alors n'hésitez pas à la modifier.
Drench soulève un point intéressant: le comportement par défaut consistant à se connecter deux fois à la même session est différent dans tmux. Toutefois, si vous souhaitez joindre deux fois et avoir une vue indépendante des fenêtres de cette session, démarrez tmux avec
tmux new-session -t <session name>
Cela créera une nouvelle session pour vous et joindrez les fenêtres de la session existante. Si vous n'avez pas nommé votre première session, vous pouvez en ajouter une avec 'rename-session'.
Un gros inconvénient, screen
c'est qu'il n'est pas activement développé. Les pages de bogues contiennent près de 200 éléments non attribués datant de plus de 5 ans.
tmux
a également quelques problèmes en suspens, mais beaucoup moins, et est pris en charge plus activement.
tmux est plus récent et plusieurs autres fonctionnalités.
J'ai trouvé qu'un bon usage dépend d'une bonne configuration.
J'utilise vi (vim) pour l'édition (ruby on rails) et il y a quelques choses à installer pour que cela fonctionne bien.
Voici mon fichier ~ / .tmux.conf avec beaucoup de paramètres utiles:
bind r source-file ~/.tmux.conf \; display "Reloaded!" # Reload with ctrl-r
set -g prefix C-a # prefix from ctrl-b to ctrl-a
unbind C-b # allow ctrl-b for other things
set -sg escape-time 1 # quicker responses
bind C-a send-prefix # Pass on ctrl-a for other apps
set -g base-index 1 # Numbering of windows
setw -g pane-base-index 1 # Numbering of Panes
bind \ split-window -h # Split panes horizontal
bind - split-window -v # Split panes vertically
bind h select-pane -L # Switch to Pane Left
bind j select-pane -D # Switch to Pane Down
bind k select-pane -U # Switch to Pane Up
bind l select-pane -R # Switch to Pane Right
bind -r C-h select-window -t :- # Quick Pane Selection
bind -r C-l select-window -t :+ # Quick Pane Selection
bind -r H resize-pane -L 5 # Switch to Pane Left
bind -r J resize-pane -D 5 # Switch to Pane Down
bind -r K resize-pane -U 5 # Switch to Pane Up
bind -r L resize-pane -R 5 # Switch to Pane Right
setw -g mode-mouse off # Mouse Off
set -g mouse-select-pane off # Mouse Off
set -g mouse-resize-pane off # Mouse Off
set -g mouse-select-window off # Mouse Off
setw -g monitor-activity on # Activity Alerts
set -g visual-activity on
set -g status-fg white # Status line Colors
set -g status-bg black
setw -g window-status-fg cyan # Window list color
setw -g window-status-bg default
setw -g window-status-attr dim
setw -g window-status-current-fg white # Active Window Color
setw -g window-status-current-bg red
setw -g window-status-current-attr bright
set -g pane-border-fg green # Pane colors
set -g pane-border-bg black
set -g pane-active-border-fg white
set -g pane-active-border-bg yellow
set -g message-fg white # Command/Message Line.
set -g message-bg black
set -g message-attr bright
set -g status-left-length 40 # Status Line, left side
set -g status-left "#[fg=white]Session: #S #[fg=yellow]#I #[fg=cyan]#P"
set -g status-utf8 on # Status Line, right side
set -g status-right "-------"
set -g status-interval 60 # frequency of status line updates
set -g status-justify centre # center window list
setw -g mode-keys vi # vi keys to move
unbind v # Open panes in same directory as tmux-panes script
unbind n
bind v send-keys " ~/tmux-panes -h" C-m
bind n send-keys " ~/tmux-panes -v" C-m
unbind Up # Maximizing and Minimizing...
bind Up new-window -d -n tmp \; swap-pane -s tmp.1 \; select-window -t tmp
unbind Down
bind Down last-window \; swap-pane -s tmp.1 \; kill-window -t tmp
bind P pipe-pane -o "cat >>~/#W.log" \; display "Toggled logging to ~/#W.log"
Je me permettrai d'ajouter une différence:
tmux est basé sur ncurses alors que screen ne dessine pas d’éléments supplémentaires. Si quelqu'un utilise un émulateur de terminal qui prend en charge le défilement, il fera défiler l'écran mais pas avec tmux (au moins dans la configuration par défaut). La même chose s'applique à la recherche et à des fonctionnalités similaires.