Tela tmux vs. GNU [fechado]


194

Navegando pelas perguntas que encontrei sobre o tmux (eu normalmente usava o GNU Screen). Minha pergunta é o que são prós e contras de cada um deles. Especialmente, não consegui encontrar muito sobre o tmux.



5
Como você pode ver pelas boas respostas abaixo, elas não são baseadas em opiniões.
— Reinierpost

@reinierpost - parece que muitas pessoas aqui são muito rápidas para fechar perguntas como "principalmente baseadas em opiniões". No entanto, podemos votar para reabrir.
— MountainX

Embora essa questão seja uma questão de comparação, acho que os argumentos a favor e contra são objetivos o suficiente e, portanto, a razão próxima da opinião não está bem aqui. Você pode verificar a pergunta SU vinculada, as respostas são bastante boas.
— Peterh 01/10/19

Respostas:


122

No site deles :

  • Qual a diferença do tmux da tela do GNU? O que mais isso oferece?

O tmux oferece várias vantagens sobre a tela:

  • um modelo cliente-servidor claramente definido: janelas são entidades independentes que podem ser conectadas simultaneamente a várias sessões e visualizadas em vários clientes (terminais), além de serem movidas livremente entre sessões no mesmo servidor tmux;
  • uma interface de comando consistente e bem documentada, com a mesma sintaxe usada interativamente, como uma ligação de chave ou a partir do shell;
  • facilmente programável a partir do shell;
  • vários buffers de pasta;
  • escolha de layouts de teclas vi ou emacs;
  • uma opção para limitar o tamanho da janela;
  • uma sintaxe da linha de status mais utilizável, com a capacidade de exibir a primeira linha de saída de um comando específico;
  • uma base de código licenciada por BSD, mais limpa, moderna e de fácil extensão.

Ainda existem alguns recursos que a tela omite:

  • suporte serial e telnet integrado; isso é inchaço e é improvável que seja adicionado ao tmux;
  • suporte mais amplo à plataforma, por exemplo, IRIX e HP-UX e para terminais ímpares.

4
caramba ... agora eu quero experimentar o tmux ... só porque a tela não funcionou para mim devido à falta de vi keybindings.
— Xenoterracide

1
As combinações de teclas vi ou emacs significam apenas que o tmux vem com dois conjuntos convenientes de padrões? É possível reconfigurar completamente as combinações de teclas da tela com seu arquivo rc.
— Jk013

Você pode definir ligações de chave arbitrárias. Veja: openbsd.org/cgi-bin/…
— nisc 27/12/11

Quando falam sobre a implementação, devem finalmente resolver o bug estúpido com <C-Left>no vimno tmux.
— yo '

45

Uma diferença está em como os dois agem quando vários terminais são conectados a uma única sessão.

Com a tela, a visão de cada terminal conectado é independente dos outros. Com o tmux, todos os terminais conectados veem a mesma coisa.

Digamos que você tenha dois terminais conectados a uma única sessão do tmux. Se você digitar ^B1 em um terminal, o outro terminal também mudará para a janela 1.

Quando você tem dois terminais conectados a uma sessão de tela única e digita ^A1 em um, isso não afeta o outro terminal.

Isso é baseado na minha experiência com o tmux 1.2; Vejo que 1.3 está fora, mas não notei nada no changelog sobre essa mudança de comportamento.

Se você gosta do comportamento da tela e deseja no tmux:

Se sua sessão original do tmux for chamada 0(o padrão), você poderá fazer tmux new-session -t 0) para iniciar uma nova sessão independente conectada ao mesmo conjunto de janelas, que poderá ter sua própria visualização.


1
Esta é uma distinção interessante. Tenho certeza de que cada um deles tem vantagens para diferentes casos de uso. (vantagem do tmux: duas pessoas conectadas à mesma sessão do tmux, por exemplo, para programação de pares remotos sempre veriam a mesma coisa; vantagem da tela: uma pessoa conectada à mesma tela de dois lugares para dois propósitos diferentes pode ter duas visualizações diferentes, mesmo simultaneamente (com , digamos, janelas lado a lado (nível de
— gerenciador de

10
se sua sessão original do tmux for chamada "0" (o padrão), você poderá executar "tmux new-session -t 0") para iniciar uma nova sessão independente conectada ao mesmo conjunto de janelas, que poderá ter seu próprio Visão. Tenho certeza de que isso funcionou em 1.2 / 1.3, mas não me lembro de imediato.
— Cos

@cos esta é exatamente a dica para a qual eu estava procurando. Muito obrigado. Eu gostaria de poder votar em você duas vezes :) Vou começar a anexar novamente o 'tmux new-session -t 0' agora.
— Jrwren #

@Cos Foi adicionado "DE 1.0 A 1.1, 05 de novembro de 2009". @jrwren O comando pode estar em curto tmux new -t 0.
— user285259

24

O tmux é relativamente novo comparado com a tela GNU. Vantagens / Desvantagens é uma pergunta difícil, pois os dois programas resolvem aproximadamente o mesmo problema. O tmux é licenciado para BSD enquanto a tela é GNU GPL. Isso é importante para algumas pessoas.

A tela está mais representada (no Linux) no momento, ou seja, é mais provável que você a encontre em uma determinada caixa Linux do que no tmux. No entanto, o tmux está mais representado no OpenBSD, pois está incluído como parte da instalação base.

Ambos os programas permitem que você faça a mesma coisa, embora o estado das coisas seja um pouco mais complexo que isso. Alternar entre os dois não é muito complicado, pois muitas das funcionalidades das telas também chegaram ao tmux, embora se você for um usuário avançado de um deles, provavelmente encontrará algumas frustrações ao mudar para o outro.

Como em qualquer programa, isso realmente depende das suas necessidades e com as quais você se sente mais confortável. Experimente os dois e veja com quem você joga bem.

Para mais informações sobre o tmux, consulte https://tmux.github.io/


17

A maior diferença em meu uso foi que, no Gnu Screen, você só pode dividir quadros horizontalmente, enquanto no Tmux, você pode dividir horizontal e verticalmente. Esse é um tipo de alvo em movimento, embora, como aqui digo, a divisão vertical esteja entrando na tela .

Fora isso, as coisas são simples.


10
você pode dividir verticalmente na tela também. mmm ... para que não funcione na instalação padrão da tela Ubuntu 10.10.
— Stann

4
@andre Tem havido um patch de longa data para a divisão vertical na tela ... que nunca foi incorporada ao upstream ... mas tenho certeza de que muitas distros o aplicaram.
— Xenoterracide 27/03

17

Eu pensei em mencionar apenas sobre o byobuinvólucro que está disponível para a tela que o torna muito melhor assim que sai da caixa. Não sei se algo assim está disponível para o tmux, mas byobufiz do meu .screenrc apenas algumas linhas. Confira este artigo rápido sobre byobu e capturas de tela. A página do projeto do byobu descreve o nome originário de um termo japonês para telas decorativas de vários painéis que servem como divisórias de ambientes dobráveis. Além disso, apenas executá-lo não prejudica as configurações da tela, para que você possa testá-lo com segurança. Depois de iniciar a sessão, byobuvocê pode se reconectar livremente usando screene ainda não perder as personalizações feitas por byobu(use-a apenas para a chamada inicial). As duas principais vantagens são:

  • Inicia a tela com algumas barras de status com informações úteis
  • Fornece muitas combinações de teclas para acessar a funcionalidade da tela com mais facilidade

Não estou usando a parte de combinações de teclas, mas definitivamente considero as barras de status úteis.

Além disso, você pode achar útil o link Screen Vs tmux . Eu acho que a maioria já é mencionada pelas respostas existentes.


Sua resposta seria mais útil se você resumisse os recursos de byobu, como este responde com sua lista de recursos.
— Gilles

OK, adicionei mais informações byobu, mas é tão simples quanto executar o comando e encontrá-lo por si mesmo (é orientado por menus), pois não altera as configurações de tela existentes. E fiz da minha resposta um wiki da comunidade, então fique à vontade para editá-lo.
— haridsv

1
O byobu parece também suportar o tmux, pelo menos nas versões mais recentes.
— Darael

12

Drench levanta um ponto interessante - o comportamento padrão de conectar duas vezes à mesma sessão é diferente no tmux. No entanto, se você deseja anexar duas vezes e ter uma visão independente das janelas nessa sessão - inicie o tmux com

tmux new-session -t <session name>

Isso criará uma nova sessão para você e anexará as janelas da sessão já existente. Se você não nomeou sua primeira sessão, você pode adicionar uma com 'rename-session'.


12

Uma grande vantagem screené que ele não é desenvolvido ativamente. As páginas de erros têm cerca de 200 itens não atribuídos, que remontam a 5 anos.

tmux também possui alguns problemas em aberto, mas muito menos, e é suportado mais ativamente.


8

O tmux é mais novo e vários outros recursos.

Eu descobri que o bom uso depende de uma boa configuração.

Eu uso o vi (vim) para editar (ruby on rails) e há algumas coisas de configuração para fazer isso funcionar bem.

Aqui está o meu arquivo ~ / .tmux.conf com muitas configurações úteis:

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"

O Tmux é mais novo, mas 'vários outros recursos' implica que ele também possui pelo menos paridade de recursos com a tela, o que não é o caso - Além do que foi mencionado em outros lugares, o suporte a múltiplos usuários do tmux está em falta. Sem acls ou status, e apenas em geral mostra a novidade do tmux, pois o que você pode fazer não é muito polido.
— semi

É bom saber disso. Eu já o uso há um ano e não percebi a necessidade de polir, embora um pouco de húngaro possa ajudar. Notação que é. ok bad trocadilho;) Não tinha usado a tela antes, então não percebendo os problemas mencionados. Acharia mais difícil mudar para a tela e perder os novos recursos agora.
— precisa

8

Terei a liberdade de acrescentar uma diferença:

O tmux é baseado em ncurses enquanto a tela não desenha elementos adicionais. Se alguém usar um emulador de terminal que suporte rolagem, ele rolará com a tela, mas não com o tmux (pelo menos na configuração padrão). O mesmo se aplica à pesquisa e recursos similares.


2
Eu não tive rolagem com a tela como ... sempre? : /
— unperson325680

sim, meu TE suporta rolagem e a tela quebra ... Eu tenho que rolar com a tela. -1 não parece ser preciso.
— Xenoterracide

@xenoterracide: Hmm. Você está parcialmente certo. A tela em algumas distros / sistemas (antigo Gentoo) não a quebra, enquanto em algumas (novo Ubuntu) o faz. Eu não tenho ideia do porquê.
— Maciej Piechotka 28/03

possivelmente um remendo ... nossos são todos os sistemas de 5,5 centavos
— xenoterracide

6

Tive problemas ao obter a tela para suportar utf-8 e 256 cores, mas o tmux funcionou imediatamente.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.