Byobu vs. Tela GNU vs. tmux - utilidade e transferibilidade de habilidades [fechadas]

81

Até agora usei o Konsole para gerenciar várias sessões de shell, mas ainda não tentei Byobu , Tela GNU e tmux , que oferece melhor suporte para vários shells. Todos eles compartilham um recurso principal, que é permitir desanexar a sessão atual e, posteriormente, reconectá-la à sessão anterior.

Para me ajudar a escolher uma ferramenta para aprender, gostaria de saber: como elas diferem nos seguintes aspectos?

  1. Recursos (obviamente)
  2. Maturidade do projeto. Eu não quero aprender uma ferramenta que está mudando demais. Melhorias são bem-vindas, mas não gosto de surpresas, como o desaparecimento de recursos.
  3. Curva de aprendizado
  4. Disponibilidade em diferentes plataformas. Se eu aprender uma ferramenta, gostaria de poder usá-la em um servidor FreeBSD, desktop SuSE ou Ubuntu.
  5. Compatibilidade com outros programas shell interativos. Ainda posso usar vim e emacs -nw (modo sem janela ou modo de texto) da mesma maneira que estou acostumado? Os atalhos de teclado entrarão em conflito com os de outras ferramentas?

Eu apenas tentei todos eles e o Byobu parece uma espécie de front-end para o GNU Screen e o tmux. Então, por que alguém criou Byobu em vez de contribuir para o projeto de tela GNU e adicionar novos recursos? Por que o Byobu não é algum tipo de modo de interface avançada no GNU Screen? Se eu usar o Byobu como minha ferramenta diária com a tela GNU como backend, posso transferir este conhecimento para usar o GNU Screen sem o Byobu se uma determinada máquina tiver apenas o GNU Screen?

    
por Keitai 11.05.2012 / 14:32

4 respostas

26

Para o Tmux vs o GNU Screen, leia

e várias outras encarnações de comparação que podem ser encontradas em blogs e tal.

Alguns termos gerais que são frequentemente repetidos:

  • O Tmux é mais novo. Isto significa que é um pouco mais sofisticado (separação vertical simples, linhas verdes agradáveis) e um pouco menos bem testado para, e. compatibilidade (em grau insignificante, de acordo com seus proponentes).
  • O Tmux é mais enxuto em recursos.
  • O GNU Screen é encontrado em todos os lugares e provavelmente ainda é mais usado.

Além disso, pode-se olhar para funções específicas para uma ou outra alternativa, e a preferência pessoal dominará a discussão. Eu pessoalmente costumava usar o GNU Screen pesadamente - agora eu uso o Tmux.

Eu não achei o Byobu para ter qualquer "killer features" para mim. Ele fornece uma abstração onde acredito que nenhuma é necessária para meus casos de uso.

Outra maneira de ver isso é observar que o Byobu pode usar o GNU Screen ou o Tmux como backend, o que mostra que as diferenças do POV do usuário são principalmente superficiais.

    
por 11.05.2012 / 15:07
241

Grande pergunta! Por que vale a pena, eu sou o autor e mantenedor do Byobu .

O Byobu é uma camada de configuração, originalmente escrita para se sentar em cima de GNU Screen , mas agora também funciona em cima do Tmux .

Comecei a escrever Byobu em dezembro de 2008 , quando me encontrei com um Um monte de usuários de Screen e Ubuntu Server no Googleplex e descobrimos que todos nós mantivemos nosso próprio grupo de hacks legais / divertidos / úteis em nossas configurações de ~/.screenrc . E tivemos que movê-los manualmente entre as dezenas ou centenas de servidores que usamos. Nós começamos a trocar dicas e truques, e eu comecei a coletá-los no projeto original GPLv3 chamado "screen- perfis ". Cerca de 6 meses depois, uma comunidade inteira se desenvolveu em torno de " perfis de tela "e o projeto se tornou muito mais do que apenas screen hacks - nós tínhamos utilitários de configuração, plugins de status ao vivo e atalhos de teclado. Então, nós renomeamos o projeto "Byobu", que é uma palavra japonesa para aqueles "telas" elegantes e dobráveis, e tem o benefício adicional de poder obter mais sucesso no Google para "Byobu $ FOO" do que "Screen $ FOO".

Com Byobu agora na maioria das distribuições Linux ( Ubuntu , Debian , Fedora , Arch ), e funcional na maioria dos Macs / BSDs e outros UNIXes, dá a mesma aparência, conveniência keybindings, informações dinâmicas do status do sistema em qualquer terminal que você possa precisar acessar.

Por que não contribuir para o projeto GNU Screen? Algumas razões ... Tudo o que o Byobu funciona tão bem quanto as opções de configuração. Nada disso precisa que seja incluído na base de fontes Screen para ser funcional. Algumas coisas podem funcionar melhor ou ter um desempenho melhor se a Tela as incluir por padrão, mas muitas das alterações são muito "opinativas", que geralmente são difíceis ou impossíveis de contribuir para um 25-ano . Além disso, o projeto GNU Screen está se movendo muito lentamente, se é que o faz. Tem mais de 25 anos e não teve um lançamento oficial desde agosto de 2008 . Cada distribuição está carregando enormes quantidades de correções apenas para manter seu / usr / bin / screen funcionando e seguro. Por exemplo, o Ubuntu e o Debian estão atualmente carregando 19 mil linhas de código em ~ 48 correções . / p>

Eu aprendi sobre o Tmux cerca de 2 anos atrás, e realmente me apaixonei pelo código fonte, design, interface e comunidade ativa! Eu tive um tempo muito mais fácil contribuindo com correções para o upstream do Tmux e discutindo tópicos na lista de discussão. E como um usuário do Byobu que usa em todos os lugares, eu queria a mesma aparência para minhas sessões de Tmux do que eu tinha vindo a desfrutar em mais de 4 anos de Byobu. Então eu portou todo o código do Byobu para funcionar igualmente bem com o Tmux como backend, como Screen. A partir do lançamento do Byobu 5.0 , o Tmux agora é o backend padrão, com o Screen ainda sendo suportado em um modo legado. O Byobu agora aproveita muitos dos recursos modernos do Tmux over Screen, incluindo suporte de 256 cores amplamente aprimorado, caracteres UTF8 e divisão de janela horizontal / vertical.

Se você estiver satisfeito com as configurações padrão em Tela ou Tmux, ou quiser gravar seus próprios arquivos de configuração a partir do zero, então, por todos os meios, Screen e Tmux como utilitários fantásticos que adicionaram muitos anos de eficiência às nossas vidas. Se você está interessado em um conjunto de configurações que realmente ampliam e estendem o que o Screen e o Tmux fazem fora da caixa, dê uma olhada no Byobu!

Felicidades, Dustin

    
por 11.05.2012 / 17:51
12

De um caso de uso real, a maior diferença entre screen e tmux é como eles lidam com janelas divididas.

Uma janela em screen é um pseudo-terminal único. Quando anexado a uma sessão screen , você pode dividir seu terminal em várias regiões, cada uma das quais pode exibir uma janela screen . Várias regiões podem exibir a mesma janela. As divisões não fazem parte da sessão; se você se separar, suas divisões desaparecerão.

Uma janela em tmux consiste em um ou mais pseudo-terminais, um por painel. Isso significa que os painéis persistem se você desanexar e reconectar posteriormente. Isso também significa que você pode exibir apenas uma janela por vez em tmux e que os painéis não podem ser compartilhados entre várias janelas. tmux permite que uma janela seja compartilhada entre várias sessões, no entanto.

Eu prefiro o modelo usado por tmux , mas não posso argumentar que é melhor que o modelo usado por screen .

    
por 11.05.2012 / 17:38
4

Para mim, o separador de negócios para o tmux foi a implementação do compartilhamento de sessões.

No GNU Screen, se você permitir que outro usuário se conecte a uma sessão, ou simplesmente tenha sua sessão conectada a mais de um terminal, eles podem operar independentemente (alternar telas em uma sessão A do terminal B também não torna o terminal A alternar telas na sessão A).

O acima não é o caso do tmux (ainda?) ou eu não consegui encontrar uma maneira de mudar o comportamento ainda.

Se alguém souber de uma maneira de alterar esse comportamento no tmux ou se o tmux atualizar para alterar esse comportamento ou der a opção de alterar agora esse comportamento, deixe um comentário.

    
por 19.06.2012 / 20:38