El tmux
comando de Linux es un multiplexor de terminal, comoscreen
. Sus defensores son muchos y vocales, así que decidimos comparar los dos. ¿Es tmux
realmente mejor, o es solo un caso de preferir lo que sabes?
Los comandos tmux
GNU y GNU son multiplexores de terminal . Le permiten tener varias ventanas dentro de una sola ventana de terminal y saltar de una a otra. Una ventana se puede dividir en paneles, cada uno de los cuales le brinda una línea de comando independiente.screen
También puede desconectar una sesión y se convierte en una entidad sin cabeza que se ejecuta en segundo plano; incluso puede cerrar la ventana de terminal que la inició. Cuando esté listo, puede abrir una nueva ventana de terminal y volver a conectar la sesión que aún se está ejecutando. También puede hacer esto a través de una conexión SSH .
Puede desconectar una sesión en una computadora, volver a casa e iniciar sesión en la computadora remota. Cuando vuelva a conectarse, puede volver a conectar la sesión en segundo plano y usarla de forma interactiva nuevamente.
El screen
comando también es un multiplexor de terminal y está repleto de opciones. Para conocer todo lo que puede hacer con él, consulte nuestro artículo detallado .
Esta vez, nos vamos a concentrar tmux
. A medida que avanzamos, mencionaremos cómo screen
maneja la misma característica o función.
Solo una cosa nos molestó screen
. Cubriremos eso cuando lleguemos, y veremos si las tmux
tarifas son mejores.
Si bien screen
generalmente se instala de forma predeterminada en las distribuciones populares de Linux, tmux
no lo es. Para instalar tmux
en Ubuntu, escriba lo siguiente:
sudo apt-get install tmux
En Manjaro puedes usar pacman
:
sudo pacman -Sy tmux
En Fedora 31, tmux
ya está instalado.
Para comenzar tmux
, simplemente escríbalo y presione Enter:
tmux
La ventana de la terminal mostrará una barra de estado cuando esté en una tmux
sesión.
El lado derecho de la barra de estado muestra el nombre de host, la hora y la fecha. El lado izquierdo muestra la siguiente información relacionada con la sesión:
bash
. Si ejecuta un programa, su nombre aparecerá aquí. El asterisco (*) significa que esta es la ventana que está mirando. Cada vez que crea una nueva ventana en una tmux
sesión, su número de ventana y el nombre del programa que se ejecuta en ella se agregan a la barra de estado.El screen
comando no le da una barra de estado. Tienes que volar a ciegas y confiar en tu ingenio para saber qué está pasando, lo que requiere un poco de práctica.
En el lado positivo, no perderá ni una línea de espacio en la ventana de la terminal. Por supuesto, normalmente expandiría la ventana de su terminal para que valga la pena usar un multiplexor de terminal. En ese caso, la pérdida de una línea para la barra de estado no es un gran problema. Hemos dejado las imágenes de las ventanas de la terminal aquí en el tamaño predeterminado para que pueda ver la información.
Se dan comandos para tmux
usar pulsaciones de teclas, y hay dos partes para esto. Primero, presione Ctrl + B para llamar tmux
la atención. A continuación, presione rápidamente la tecla siguiente para enviar un comando tmux
. Los comandos se dan presionando letras, números, signos de puntuación o teclas de flecha.
Es lo mismo en screen
, excepto que presiona Ctrl + A para llamar su atención.
Para cerrar la ventana, presione Ctrl + B y luego presione rápidamente X. La barra de estado se vuelve ámbar. Luego se le pedirá que confirme que desea cerrar la ventana.
Presione Y para cerrar la ventana o N si cambia de opinión. No es necesario que presione Intro después; Y o N es suficiente para registrar su elección.
Si presiona Y, la ventana se cierra. Debido a que esta es la única ventana en esta sesión, la sesión finaliza.
La tmux
sesión se cierra y vuelve a la línea de comando desde la que inició tmux
. Verá «[salido]» en la ventana de la terminal.
Esto puede parecer obvio, pero es una confirmación de que ha cerrado la sesión y no la ha dejado desconectada y en ejecución. Discutiremos las sesiones de separación a continuación.
Si inicia varias tmux
sesiones con regularidad , apreciará rápidamente la funcionalidad de dar a cada una de ellas un nombre significativo. También puede nombrar sesiones screen
, pero no se muestran en ninguna parte de las ventanas de sesión.
Para comenzar tmux
con un nombre de sesión, use el new
comando (nueva sesión) y la -s
opción (nombre de sesión). Nuestra sesión se llamará «geek-1», por lo que escribimos lo siguiente:
tmux nuevo -s geek-1
Cuando se tmux
carga la sesión, se muestra «geek-1» como la primera entrada en la barra de estado, en el extremo izquierdo.
Para crear una nueva ventana en la sesión actual, presione Ctrl + B y luego C. Obtendrá una ventana de terminal en blanco en la sesión actual. Entonces tendremos algo ejecutándose en esta nueva ventana, comencemos el dmesg
comando con la -w
opción (seguir):
dmesg -w
Ahora tenemos dos ventanas en la sesión; uno está corriendo top
y el otro dmesg
. Sin embargo, solo podemos ver uno a la vez (más sobre eso en un momento).
Eche un vistazo al lado izquierdo de la barra de estado. Todavía estamos en la tmux
sesión «geek-1» . En la ventana cero, top se está ejecutando y en la ventana uno, se dmesg
está ejecutando. El asterisco (*) después dmesg
nos dice qué ventana está visible.
Para saltar entre ventanas, presione Ctrl + B, y luego una de las siguientes teclas:
También puede elegir una ventana de una lista. Si presiona Ctrl + B y luego W, aparece una lista de ventanas.
Para mover la barra resaltada de color ámbar, presione las flechas hacia arriba o hacia abajo, Inicio o Fin. La sección inferior de la pantalla muestra una vista previa del contenido en la ventana resaltada.
Presione Entrar para ir a la ventana resaltada o Esc para salir de la lista de ventanas sin cambiar.
Si presiona Ctrl + B y luego D, desconectará la sesión. Continuará ejecutándose en segundo plano, pero no podrá verlo ni interactuar con él.
Comenzamos top
en la sesión, por lo que tenemos un proceso en ejecución con el que demostrar. Luego, presionamos Ctrl + B, y luego D. La sesión desaparece y se convierte en una sesión en segundo plano.
Regresamos a la ventana de terminal original. Hay un mensaje tmux
que nos dice que la sesión está desconectada. También nos recuerda el nombre que le dimos a la sesión. Esto es útil porque eso es lo que usamos para adjuntar a una sesión en segundo plano y luego restaurarla a una interactiva.
Para adjuntar una sesión separada, usaremos el attach-session
comando autoexplicativo con la -t
opción (sesión de destino). También proporcionaremos el nombre de la sesión que deseamos recordar.
Escribimos lo siguiente:
tmux adjuntar-sesión -t geek-1
Nuestra sesión vuelve y vuelve a ser una sesión interactiva visible.
Los procesos continuos o de larga duración que haya iniciado antes de desconectar la sesión seguirán ejecutándose en segundo plano (a menos que hayan terminado) cuando adjunte la sesión.
screen
puede hacer esto, pero no tan intuitivamente.
Abramos otra ventana de terminal e iniciemos una nueva tmux
sesión llamada «geek-2»:
tmux nuevo -s geek-2
En esa sesión, comenzaremos dmesg
:
dmesg -w
Ahora, tenemos nuestra tmux
sesión original «geek-1» y una nueva llamada «geek-2».
La barra de estado nos muestra que esta sesión se llama «geek-2», y tiene una ventana que se está ejecutando dmesg
.
Si presionamos Ctrl + B, y luego D, separamos esa sesión.
De vuelta en la tmux
sesión «geek-1» , presionamos Ctrl + B, y luego S para ver una lista de tmux
sesiones.
Para ser claros, esta es una lista de sesiones. La pantalla similar que vimos anteriormente era una lista de ventanas en una sola sesión.
Puede mover la barra resaltada de color ámbar presionando las flechas hacia arriba y hacia abajo, Inicio y Fin. La sección inferior muestra una vista previa del contenido de la sesión resaltada.
Si presiona la flecha derecha, se muestran las ventanas de la sesión resaltada.
Presione Entrar para ir a la sesión o ventana resaltada o Esc para salir de la lista de sesiones sin cambiar las sesiones. Si selecciona una nueva sesión, la actual se desconecta y la que seleccionó se adjunta.
Separamos la sesión «geek-2» antes de hacer esto. Sin embargo, puede hacer esto con sesiones que aún están conectadas a sus ventanas de terminal originales. Cuando lo haga, los cambios de pantalla aparecerán simultáneamente en ambas tmux
sesiones.
El screen
comando también puede hacer esto mediante un conjunto similar de comandos.
Si presiona Ctrl + B y luego comillas dobles (“”), dividirá la ventana horizontalmente en dos paneles.
Esto solo afecta a la ventana actual; los demás en la sesión no se cambiarán. Hemos utilizado el tmux ls
comando en el panel superior para enumerar las ventanas en esta sesión. Hay dos, y la línea de estado nos dice que estamos en la ventana uno. Si saltamos a la ventana cero presionando Ctrl + B, y luego 0 (cero), vemos que está tal como lo dejamos.
Estas son dos líneas de comando independientes, no dos vistas en una ventana; son conchas distintas y separadas. Podemos mostrar esto ejecutando un comando diferente en cada panel.
Escribimos lo siguiente:
uname -a
ls -hl
Para pasar de un panel a otro, presione Ctrl + B y luego las flechas hacia arriba, hacia abajo, hacia la izquierda o hacia la derecha.
Si presiona Ctrl + B, y luego el signo de porcentaje ( %)
divide el panel actual verticalmente.
Presione Ctrl + B y luego Q para hacer tmux
parpadear brevemente el número de cada panel.
Estos números se utilizan en avisos y mensajes de tmux
. Presione Ctrl + B y luego X para cerrar el panel actual. La barra de estado cambia a ámbar y se le solicita que confirme que desea cerrar ese número de panel. Presione Y para eliminar el panel, o N para dejar las cosas como están.
Si presiona Y, el panel se elimina.
El screen
comando también tiene paneles, pero, nuevamente, son menos intuitivos de usar. Lo que nos molesta screen
es que si desconecta una sesión con paneles, desaparecen cuando vuelve a conectar esa sesión. Esto envejece muy rápidamente.
Hemos incluido una hoja de trucos de los diferentes comandos que puede usar a tmux
continuación.
tmux
.En términos de funcionalidad, screen
y tmux
ambos realizan de manera similar y ofrecen las mismas características principales. Es la forma en que accede a esas funciones lo que es marcadamente diferente. tmux
ofrece formas más sencillas y cómodas de acceder a las distintas funciones. Sin embargo, esa no es la única diferencia.
La capacidad de cambiar el nombre de las sesiones y las ventanas tmux
es genial, y el hecho de que conserve los paneles cuando vuelva a conectar una sesión es un cambio de juego.
screen
, por otro lado, pierde completamente los paneles cuando desconecta y vuelve a conectar una sesión. Esto es casi lo suficientemente molesto como para evitar separarse en primer lugar.
Hay mucho más tmux
, incluidas sus capacidades de scripting increíblemente flexibles. Te lo debes a ti mismo para comprobarlo.
El mundo del gaming ha experimentado un crecimiento exponencial en los últimos años. La…
Stokkete/Shutterstock.com ¿Sigue utilizando una unidad flash USB obsoleta para almacenar sus archivos? ¿Por qué no…
LG Los fabricantes siempre intentan mejorar el rendimiento de imagen de los monitores. Como resultado,…
Patty Chan/Shutterstock.com Si cree en lo que ve en las redes sociales, puede pensar en…
Seksan.TH/Shutterstock.com Los servicios de suscripción como Netflix, Game Pass y Spotify nos permiten consumir tantas…
fatmawati achmad zaenuri/Shutterstock El acceso a Internet, oa cualquier otra red, se rige por la…