Navegando por las preguntas que encontré sobre tmux (normalmente usaba GNU Screen). Mi pregunta es cuáles son los pros y los contras de cada uno de ellos. Especialmente no pude encontrar mucho sobre tmux.
Navegando por las preguntas que encontré sobre tmux (normalmente usaba GNU Screen). Mi pregunta es cuáles son los pros y los contras de cada uno de ellos. Especialmente no pude encontrar mucho sobre tmux.
Respuestas:
Desde su sitio web :
- ¿En qué se diferencia tmux de la pantalla GNU? ¿Qué más ofrece?
tmux ofrece varias ventajas sobre la pantalla:
- un modelo cliente-servidor claramente definido: las ventanas son entidades independientes que pueden conectarse simultáneamente a múltiples sesiones y verse desde múltiples clientes (terminales), así como moverse libremente entre sesiones dentro del mismo servidor tmux;
- una interfaz de comandos coherente y bien documentada, con la misma sintaxis, ya sea que se use de forma interactiva, como enlace de teclas o desde el shell;
- fácilmente programable desde el shell;
- múltiples tampones de pasta;
- elección de diseños de teclas vi o emacs;
- una opción para limitar el tamaño de la ventana;
- una sintaxis de línea de estado más utilizable, con la capacidad de mostrar la primera línea de salida de un comando específico;
- un código base más limpio, moderno, fácilmente extendido y con licencia BSD.
Todavía hay algunas características que la pantalla incluye que tmux omite:
- soporte incorporado de serie y telnet; esto es hinchado y es poco probable que se agregue a tmux;
- Soporte de plataforma más amplio, por ejemplo IRIX y HP-UX, y para terminales impares.
<C-Left>
en vim
en tmux
.
Una diferencia está en cómo actúan los dos cuando se conectan múltiples terminales a una sola sesión.
Con pantalla, la vista de cada terminal conectado es independiente de las demás. Con tmux, todos los terminales conectados ven lo mismo.
Digamos que tiene dos terminales conectadas a una sola sesión tmux. Si escribe ^B1 en un terminal, el otro terminal también cambia a la ventana 1.
Cuando tiene dos terminales conectados a una sola sesión de pantalla y escribe ^A1 en uno, no tiene efecto en el otro terminal.
Esto se basa en mi experiencia con tmux 1.2; Veo que 1.3 está fuera, pero no noté nada en el registro de cambios sobre este cambio de comportamiento.
Si se llama a su sesión tmux original 0
(la predeterminada), puede hacerlo tmux new-session -t 0
) para iniciar una nueva sesión independiente conectada al mismo conjunto de ventanas, que luego puede tener su propia vista.
tmux new -t 0
.
tmux es bastante nuevo en comparación con la pantalla GNU. Ventajas / desventajas es una pregunta difícil, ya que ambos programas resuelven aproximadamente el mismo problema. tmux tiene licencia BSD mientras que la pantalla es GNU GPL. Esto es importante para algunas personas.
la pantalla está más representada (en Linux) en este momento, es decir, es más probable que la encuentre en un cuadro de Linux dado que tmux. Sin embargo, tmux está más representado en OpenBSD ya que se incluye como parte de la instalación base.
Ambos programas le permiten hacer casi lo mismo, aunque el estado de las cosas es un poco más complejo que eso. Cambiar entre los dos no es demasiado complicado, ya que gran parte de la funcionalidad de las pantallas también se ha introducido en tmux, aunque si eres un usuario avanzado de cualquiera de los dos, es probable que encuentres algunas frustraciones al cambiar al otro.
Al igual que con cualquier programa, realmente depende de sus necesidades y con las que se sienta más cómodo. Pruébelos a ambos y vea con qué juega muy bien.
Para obtener más información sobre tmux, consulte https://tmux.github.io/
La mayor diferencia en mi uso ha sido que en Gnu Screen solo puedes dividir marcos horizontalmente, mientras que en Tmux puedes dividir tanto horizontal como verticalmente. Este es un tipo de objetivo en movimiento, aunque como digo aquí, la división vertical está llegando a la pantalla .
Aparte de eso, las cosas son sobre plano.
Pensé que solo mencionaría sobre el byobu
contenedor que está disponible para la pantalla que lo hace mucho mejor desde el primer momento. No sé si algo así está disponible para tmux, pero byobu
hice mi .screenrc solo un puñado de líneas. Mira este artículo rápido sobre byobu y capturas de pantalla. La página del proyecto para byobu describe el nombre que se origina de un término japonés para pantallas decorativas de paneles múltiples que sirven como divisores de habitaciones plegables. Además, solo ejecutarlo no daña la configuración de la pantalla, por lo que puede probarlo de manera segura. Una vez que comience la sesión byobu
, puede reconectarse libremente con ella utilizando screen
y sin perder ninguna personalización realizada por byobu
(así que úsela solo para la invocación inicial). Las dos principales ventajas son:
No estoy usando la parte de combinación de teclas, pero definitivamente encuentro útiles las barras de estado.
También puede encontrar útil el enlace Screen Vs tmux . Creo que la mayor parte ya se menciona en las respuestas existentes.
byobu
, como esta respuestas con su lista de características.
byobu
, pero es tan simple como ejecutar el comando y encontrarlo por ti mismo (está controlado por el menú), ya que no estropea la configuración de pantalla existente. E hice mi respuesta un wiki de la comunidad, así que siéntete libre de editarlo.
Drench plantea un punto interesante: el comportamiento predeterminado de conectarse dos veces a la misma sesión es diferente en tmux. Sin embargo, si desea adjuntar dos veces y tener una vista independiente de las ventanas en esa sesión, inicie tmux con
tmux new-session -t <session name>
Eso creará una nueva sesión para usted y adjuntará las ventanas de la sesión ya existente. Si no nombró su primera sesión, puede agregar una con 'rename-session'.
Una gran desventaja screen
es que no se desarrolla activamente. Las páginas de errores tienen cerca de 200 elementos no asignados que se remontan a más de 5 años.
tmux
también tiene algunos problemas abiertos, pero mucho menos, y recibe un soporte más activo.
tmux es más nuevo y varias características más.
He descubierto que un buen uso depende de una buena configuración.
Uso vi (vim) para editar (ruby on rails) y hay algunas cosas de configuración para que funcione bien.
Aquí está mi archivo ~ / .tmux.conf con mucha configuración útil:
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"
Me tomaré la libertad de agregar una diferencia:
tmux se basa en ncurses mientras que la pantalla no dibuja elementos adicionales. Si alguien usa el emulador de terminal que admite desplazamiento (s), se desplazará con la pantalla pero no con tmux (al menos en la configuración predeterminada). Lo mismo se aplica a la búsqueda y características similares.