Até agora, usei o Konsole para gerenciar várias sessões de shell, mas ainda não experimentei o Byobu , o GNU Screen e o tmux , que oferecem melhor suporte para vários shells. Todos eles compartilham um recurso principal, que é permitir desanexar a sessão atual e, posteriormente, recolocar na sessão antiga.
Para me ajudar a escolher uma ferramenta para aprender, eu gostaria de saber: como elas diferem nos seguintes aspectos?
- Recursos (obviamente)
- Maturidade do projeto. Eu não quero aprender uma ferramenta que está mudando muito. Aprimoramentos são bem-vindos, mas não gosto de surpresas, como recursos que desaparecem.
- Curva de aprendizado
- Disponibilidade em diferentes plataformas. Se eu aprender uma ferramenta, gostaria de poder usá-la em um servidor FreeBSD, desktop SuSE ou Ubuntu.
- Compatibilidade com outros programas de shell interativos. Ainda posso usar
vim
eemacs -nw
(modo sem janela ou modo de texto) da mesma maneira que estou acostumado? Os atalhos do teclado entrarão em conflito com os de outras ferramentas?
Eu apenas tentei todos eles e o Byobu parece um tipo de front end para o GNU Screen e o tmux. Então, por que alguém criou o 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çado no GNU Screen? Se eu usar o Byobu como minha ferramenta diária com a tela GNU como back-end, posso transferir esse conhecimento para usar o GNU Screen sem o Byobu se uma determinada máquina tiver apenas o GNU Screen?
fonte
byobu
é apenas um garfoscreen
com recursos extras, agnu-screen
tag se aplica.Respostas:
Para Tmux vs GNU Screen, leia
e várias outras encarnações de comparação que podem ser encontradas em blogs e afins.
Alguns termos gerais que são frequentemente repetidos:
Além disso, pode-se considerar 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 uso o Tmux.
Não achei que o Byobu tivesse nenhum "recurso matador" para mim. Ele fornece uma abstração na qual acredito que não é necessário para meus casos de uso.
Outra maneira de ver isso é notar que o Byobu pode usar o GNU Screen ou o Tmux como back-end, o que mostra que as diferenças em relação ao POV do usuário são principalmente superficiais.
fonte
Ótima pergunta! Pelo que vale, sou o autor e mantenedor do Byobu .
O Byobu é uma camada de configuração, originalmente escrita para ficar em cima do GNU Screen , mas agora também funciona em cima do Tmux .
Comecei a escrever o Byobu em dezembro de 2008 , quando me encontrei com vários usuários de Screen e Ubuntu Server no Googleplex e descobri que todos nós mantivemos nosso próprio monte de hacks legais / divertidos / úteis em nossas
~/.screenrc
configurações. E tivemos que mover manualmente aqueles entre as dezenas ou centenas de servidores que usamos. Começamos a negociar dicas e truques e comecei a colecioná-los no projeto original da GPLv3 chamado "screen-profiles". Cerca de seis meses depois, uma comunidade inteira se desenvolveu em torno de " perfis de tela " e o projeto se tornou muito mais do que apenas hacks de tela - tínhamos utilitários de configuração, plug-ins de status ao vivo e combinações de teclas. Então, renomeamos o projeto "Byobu", que é uma palavra japonesa para aquelas "telas" dobráveis e elegantes, e tem o benefício adicional de poder pesquisar com mais sucesso o Google por "Byobu $ FOO" do que "Screen $ FOO".Com o Byobu agora na maioria das distribuições Linux ( Ubuntu , Debian , Fedora , Arch ) e funcional na maioria dos Macs / BSDs e outros UNIXes, ele fornece as mesmas combinações de teclas convenientes e com aparência, informações dinâmicas do status do sistema em qualquer terminal precisa acessar.
Por que não contribuir de volta ao projeto GNU Screen? Um par de razões ... Tudo o que o Byobu funciona tão bem quanto as opções de configuração. Nada disso precisa ser incluído na base de origem da Tela para ser funcional. Algumas coisas podem funcionar melhor ou ter um desempenho melhor se a Screen incluí-las 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 projeto upstream de 25 anos . Além disso, o projeto GNU Screen está se movendo muito lentamente, se houver. Tem mais de 25 anos e não tem um lançamento oficial desde agosto de 2008 . Toda distribuição está carregando pilhas enormes de patches apenas para manter sua / usr / bin / tela funcionando e segura. por exemplo, o Ubuntu e o Debian estão atualmente carregando 19K linhas de código em ~ 48remendos .
Eu aprendi sobre o Tmux há cerca de 2 anos e 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 Tmux e discutindo tópicos na lista de discussão. E como usuário do Byobu que o usa em todos os lugares, eu queria a mesma aparência em minhas sessões do Tmux do que eu havia desfrutado em mais de 4 anos de Byobu. Então eu portado todo o código Byobu funcionar igualmente bem com tmux como o back-end, como a tela. Desde o lançamento do Byobu 5.0 , o Tmux agora é o back-end padrão, com o Screen ainda suportado no modo legado. O Byobu agora aproveita muitos dos recursos modernos do Tmux over Screen, incluindo suporte para 256 cores amplamente aprimorado, caracteres UTF8 e divisão de janelas horizontal / vertical.
Se você está satisfeito com as configurações padrão no Screen ou no Tmux, ou deseja gravar seus próprios arquivos de configuração do zero, então, o Screen e o Tmux são 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 ampliam o que o Screen e o Tmux fazem fora da caixa, dê uma olhada no Byobu!
Cheers, Dustin
fonte
CTRL+` as escape. With
screen` etmux
isso funciona como um encanto, mas não combyobu
(Debian 7.1 Wheezy).screen
tem um novo mantenedor e o desenvolvimento parece ter ganhado força, as coisas mudam?Em um caso de uso real, a maior diferença entre
screen
etmux
é como eles lidam com janelas divididas.Uma janela
screen
é um único pseudo-terminal. Quando conectado a umascreen
sessão, você pode dividir seu terminal em várias regiões, cada uma das quais pode exibir umascreen
janela. Várias regiões podem exibir a mesma janela. As divisões não fazem parte da sessão; se você se desconectar, suas divisões se foram.Uma janela
tmux
consiste em um ou mais pseudo-terminais, um por painel. Isso significa que os painéis persistem se você desconectar e reconectar mais tarde. Isso também significa que você pode exibir apenas uma janela por veztmux
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 porscreen
.fonte
tmux
é o Deutsche Bahn . Pegue um trem rápido, tente trabalharssh
usando uma conexão móvel e você verá rapidamente que otmux
modelo é muito superior, porque após uma das frequentes interrupções na conexão, você não precisa reorganizar todos os painéis do seu jumphost após o login novamente. SCNRssh
Para mim, o negócio 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 de forma independente (alternar telas em uma sessão A do terminal B não faz com que o terminal A também alterne as telas sessão A).
O exposto acima não é o caso do tmux (ainda?) Ou ainda não consegui encontrar uma maneira de mudar o comportamento.
Se alguém souber uma maneira de alterar esse comportamento no tmux ou se o tmux for atualizado para alterar esse comportamento ou tiver a opção de alterar agora esse comportamento, deixe um comentário.
fonte
tmux
tem uma noção de sessões "vinculadas" comnew-session -t shared
. Janelas de 'compartilhado' aparecem na nova sessão, novas janelas em uma aparecem na outra e fechar uma janela em uma fecha a outra. No entanto, qual janela cada cliente vê é específica para a sessão real que ele anexa.