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.
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.
Respostas:
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.
<C-Left>no vimno tmux.
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 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.
tmux new -t 0.
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/
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.
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:
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.
byobu, como este responde com sua lista de recursos.
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.
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'.
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.
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"
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.