tmux vs. tela GNU [fechado]

182

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

    
por Maciej Piechotka 17.08.2010 / 00:33

10 respostas

113

De seu site :

  • How is tmux different from GNU screen? What else does it offer?

tmux offers several advantages over screen:

  • a clearly-defined client-server model: windows are independent entities which may be attached simultaneously to multiple sessions and viewed from multiple clients (terminals), as well as moved freely between sessions within the same tmux server;
  • a consistent, well-documented command interface, with the same syntax whether used interactively, as a key binding, or from the shell;
  • easily scriptable from the shell;
  • multiple paste buffers;
  • choice of vi or emacs key layouts;
  • an option to limit the window size;
  • a more usable status line syntax, with the ability to display the first line of output of a specific command;
  • a cleaner, modern, easily extended, BSD-licensed codebase.

There are still a few features screen includes that tmux omits:

  • builtin serial and telnet support; this is bloat and is unlikely to be added to tmux;
  • wider platform support, for example IRIX and HP-UX, and for odd terminals.
    
por 17.08.2010 / 21:11
40

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

Com a tela, a visualização de cada terminal conectado é independente das outras. 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 ^ B 1 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 ^ A 1 em um, ele não tem efeito no outro terminal.

Isto é baseado na minha experiência com o tmux 1.2; Eu vejo o 1.3 está fora, mas eu não notei nada no changelog sobre este comportamento mudando.

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

Se a sua sessão tmux original é chamada de 0 (o padrão), você pode fazer tmux new-session -t 0 ) para iniciar uma nova sessão independente conectada ao mesmo conjunto de janelas, que pode ter sua própria visão. / p>     

por 20.08.2010 / 04:47
22

O tmux é relativamente novo em comparação com a tela GNU. Vantagens / Desvantagens é uma questão difícil, já que ambos os programas resolvem aproximadamente o mesmo problema. tmux é licenciado BSD enquanto a tela é GNU GPL. Isso é importante para algumas pessoas.

A tela

é mais representada (no Linux) no momento, ou seja, é mais provável que você a encontre em uma determinada caixa linux do que no tmux. O tmux é, no entanto, mais representado no OpenBSD, pois é 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 do que isso. Alternar entre os dois não é excessivamente complicado, já que muitas das funcionalidades das telas também chegaram ao tmux, mas se você é um usuário experiente de qualquer um, você provavelmente encontrará algumas frustrações ao trocar para o outro.

Como acontece com qualquer programa, ele realmente depende de suas necessidades e com as quais você se sente mais confortável. Dê a ambos uma chance e veja com qual você joga bem.

Para mais informações sobre o tmux, consulte link

    
por 17.08.2010 / 01:07
17

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

Além disso, as coisas são planas.

    
por 17.08.2010 / 05:28
17

Eu pensei em mencionar apenas o wrapper byobu disponível para a tela, que o torna muito melhor assim que sai da caixa. Eu não sei se algo como isto está disponível para o tmux, mas byobu fez o meu .screenrc apenas um punhado de linhas. Confira este artigo rápido sobre o byobu e capturas de tela. A página do projeto para byobu descreve o nome originado de um termo japonês para telas decorativas com vários painéis que servem como divisores de sala dobráveis. Além disso, apenas executá-lo não prejudica suas configurações de tela, portanto, você pode testá-lo com segurança. Depois de iniciar a sessão com byobu , você poderá se reconectar livremente usando screen e ainda não perderá nenhuma personalização feita por byobu (portanto, 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 muitos atalhos de teclado para acessar a funcionalidade da tela mais facilmente

Eu não estou usando a parte de atalhos de teclado, mas definitivamente acho as barras de status úteis.

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

    
por 20.06.2014 / 09:59
12

Drench levanta um ponto interessante - o comportamento padrão de se 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, pode adicionar uma com 'rename-session'.

    
por 26.03.2011 / 22:59
10

Um grande engodo para screen é que ele não é desenvolvido ativamente. O páginas de bugs têm perto de 200 itens não atribuídos que remontam a mais de 5 anos.

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

    
por 29.01.2014 / 11:25
8

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

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

Eu uso o vi (vim) para edição (ruby on rails) e há algumas coisas para que o trabalho funcione 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"
    
por 24.06.2012 / 21:29
8

Eu tomarei a liberdade de adicionar 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 (s), ele irá rolar com a tela, mas não com o tmux (pelo menos na configuração padrão). O mesmo se aplica à pesquisa e recursos semelhantes.

    
por 20.08.2010 / 14:46
6

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

    
por 17.08.2010 / 17:34