Hasta ahora he usado Konsole para administrar múltiples sesiones de shell, pero no he probado Byobu , GNU Screen y tmux , que ofrecen un mejor soporte para múltiples shells. Todos comparten una característica principal, que es permitir separar la sesión actual y luego volver a conectarla a esa sesión anterior.
Para ayudarme a elegir una herramienta para aprender, me gustaría saber: ¿en qué se diferencian en los siguientes aspectos?
- Características (obviamente)
- Proyecto de madurez. No quiero aprender una herramienta que está cambiando demasiado. Las mejoras son bienvenidas, pero no me gustan las sorpresas como la desaparición de funciones.
- Curva de aprendizaje
- Disponibilidad en diferentes plataformas. Si aprendo una herramienta, me gustaría poder usarla en un servidor FreeBSD, escritorio SuSE o Ubuntu.
- Compatibilidad con otros programas de shell interactivos. ¿Puedo seguir usando
vim
yemacs -nw
(modo sin ventana o modo de texto) de la misma manera que estoy acostumbrado? ¿Los atajos de teclado entrarán en conflicto con los de otras herramientas?
Acabo de probarlos todos y Byobu parece una especie de interfaz para GNU Screen y tmux. Entonces, ¿por qué alguien creó Byobu en lugar de contribuir al proyecto de pantalla GNU y agregar nuevas características? ¿Por qué Byobu no es una especie de modo de interfaz avanzada en la pantalla GNU? Si uso Byobu como mi herramienta diaria con la pantalla GNU como back-end, ¿puedo transferir este conocimiento para usar la pantalla GNU sin Byobu si una máquina determinada solo tiene pantalla GNU?
fuente
byobu
es solo una bifurcaciónscreen
con características adicionales, por lo que segnu-screen
aplica la etiqueta.Respuestas:
Para Tmux vs GNU Screen, lea
y varias otras encarnaciones de comparación que se pueden encontrar en blogs y demás.
Algunos términos generales que a menudo se repiten:
Aparte de esto, uno puede ver funciones específicas para una u otra alternativa, y la preferencia personal dominará la discusión. Personalmente solía usar GNU Screen en gran medida, ahora uso Tmux.
No he encontrado que Byobu tenga ninguna "característica asesina" para mí. Proporciona una abstracción donde creo que no es necesaria para mis casos de uso.
Otra forma de verlo es notar que Byobu puede usar GNU Screen o Tmux como backend, lo que muestra que las diferencias con un POV de usuario son en su mayoría superficiales.
fuente
Gran pregunta! Por lo que vale, soy el autor y mantenedor de Byobu .
Byobu es una capa de configuración, originalmente escrita para sentarse en la parte superior de la pantalla GNU , pero ahora también funciona en la parte superior de Tmux .
Comencé a escribir Byobu en diciembre de 2008 , cuando me encontré con un grupo de usuarios de Screen y Ubuntu Server en Googleplex y descubrí que todos manteníamos nuestro propio montón de trucos útiles / divertidos / útiles en nuestras
~/.screenrc
configuraciones. Y tuvimos que moverlos manualmente entre las docenas o cientos de servidores que usamos. Comenzamos a intercambiar consejos y trucos, y comencé a recopilarlos en el proyecto GPLv3 original llamado "perfiles de pantalla". Aproximadamente 6 meses después, toda una comunidad se había desarrollado en torno a los " perfiles de pantalla " y el proyecto se convirtió en mucho más que simples ataques de pantalla: teníamos utilidades de configuración, complementos de estado en vivo y combinaciones de teclas. Entonces cambiamos el nombre del proyecto "Byobu", que es una palabra japonesa para esas "pantallas" plegables y elegantes, tiene el beneficio adicional de poder buscar en Google con más éxito "Byobu $ FOO" que "Screen $ FOO".Con Byobu ahora en la mayoría de las distribuciones de Linux ( Ubuntu , Debian , Fedora , Arch ), y funcional en la mayoría de las Macs / BSD y otros UNIX, proporciona la misma apariencia, combinaciones de teclas convenientes, información dinámica del estado del sistema en cualquier terminal que pueda Necesito acceder.
¿Por qué no contribuir de nuevo al proyecto GNU Screen? Un par de razones ... Todo lo que Byobu funciona tan bien como las opciones de configuración. Nada de esto necesita ser incluido en la base de la fuente de la Pantalla para ser funcional. Algunas cosas podrían funcionar mejor o funcionar mejor si Screen las incluye de manera predeterminada, pero muchos de los cambios son muy "obstinados", que generalmente son difíciles o imposibles de contribuir a un proyecto ascendente de 25 años . Además, el proyecto GNU Screen se mueve muy lentamente, si es que lo hace. Tiene más de 25 años y no ha tenido un lanzamiento oficial desde agosto de 2008 . Cada distribución lleva enormes pilas de parches solo para mantener su / usr / bin / screen funcionando y seguro. por ejemplo, Ubuntu y Debian actualmente llevan 19K líneas de código en ~ 48parches .
¡Aprendí de Tmux hace aproximadamente 2 años y realmente me enamoré del código fuente, el diseño, la interfaz y la comunidad activa! Me ha sido mucho más fácil contribuir con soluciones para Tmux y discutir temas en la lista de correo. Y como usuario de Byobu que lo usa en todas partes, quería que mis sesiones de Tmux tuvieran el mismo aspecto que lo que había disfrutado en más de 4 años de Byobu. Así que porté todo el código de Byobu para que funcione igualmente bien con Tmux como backend, como Screen. A partir de la versión 5.0 de Byobu , Tmux ahora es el backend predeterminado, con Screen todavía compatible en modo heredado. Byobu ahora aprovecha muchas de las características modernas de Tmux sobre pantalla, incluyendo soporte mejorado de 256 colores, caracteres UTF8 y división de ventanas horizontal / vertical.
Si está satisfecho con la configuración predeterminada en Screen o Tmux, o desea escribir sus propios archivos de configuración desde cero, entonces, por supuesto, Screen y Tmux son utilidades fantásticas que han agregado muchos años de eficiencia a nuestras vidas. Si está interesado en un conjunto de configuraciones que realmente amplían y amplían lo que Screen y Tmux hacen de fábrica, ¡eche un vistazo a Byobu!
Saludos, Dustin
fuente
CTRL+` as escape. With
screen` ytmux
esto funciona de maravilla , pero no conbyobu
(Debian 7.1 Wheezy).screen
tiene un nuevo responsable y el desarrollo parece haberse acelerado, ¿cambian las cosas?Desde un caso de uso real, la mayor diferencia entre
screen
ytmux
es cómo manejan las ventanas divididas.Una ventana en
screen
es un solo pseudo-terminal. Cuando se adjunta a unascreen
sesión, puede dividir su terminal en varias regiones, cada una de las cuales puede mostrar unascreen
ventana. Múltiples regiones pueden mostrar la misma ventana. Las divisiones no son parte de la sesión; si se separa, sus divisiones se han ido.Una ventana
tmux
consta de uno o más pseudo-terminales, uno por panel. Esto significa que los paneles persisten si se separa y vuelve a colocar más tarde. También significa que puede mostrar solo una ventana a la veztmux
y que los paneles no se pueden compartir entre varias ventanas.tmux
sin embargo, permite compartir una ventana entre varias sesiones.Prefiero el modelo utilizado por
tmux
, pero no podría argumentar que es mejor que el modelo utilizado porscreen
.fuente
tmux
es el Deutsche Bahn . Viaja en un tren rápido, intenta trabajarssh
usando una conexión móvil y verás rápidamente que eltmux
modelo es muy superior, porque después de una de las interrupciones de conexión frecuentes no necesitas reorganizar todos los paneles en tu jumphost después de volver a iniciar sesión. SCNRssh
Para mí, el factor decisivo para tmux fue la implementación del intercambio de sesiones.
En GNU Screen, si deja que otro usuario se conecte a una sesión, o simplemente tiene su sesión conectada a más de un terminal, pueden operar de forma independiente (cambiar pantallas en una sesión A desde el terminal B no hace que el terminal A también cambie pantallas en sesión A).
Lo anterior no es el caso con tmux (¿todavía?) O aún no he podido encontrar una manera de cambiar el comportamiento.
Si alguien conoce una manera de cambiar este comportamiento en tmux o si tmux se actualiza para cambiar este comportamiento o dar la opción de cambiar este comportamiento ahora, deje un comentario.
fuente
tmux
tiene una noción de sesiones "vinculadas" connew-session -t shared
. Las ventanas de 'compartido' aparecen en la nueva sesión, las nuevas ventanas en una aparecen en la otra y al cerrar una ventana en una se cierra en la otra. Sin embargo, qué ventana ve cada cliente es específica de la sesión real que adjunta.