Cómo usar tmux en Linux (y por qué es mejor que la pantalla)

Contenidos

Un terminal Linux estilizado en una computadora portátil con sesiones de shell en segundo plano.

El Linux tmux El comando es un multiplexor de terminal, como screen. Sus defensores son muchos y vocales, por lo que decidimos comparar los dos. Es tmux verdaderamente mejor, o es solo un caso de preferir lo que sabes?

tmux frente a pantalla

Ambos tmux y GNU screen comandos son multiplexores terminales. Le posibilitan 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.

Además puede desconectar una sesión y se convierte en una entidad sin cabeza que se ejecuta en segundo plano; inclusive 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. Además 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 se torna a conectar, puede volver a conectar la sesión en segundo plano y utilizarla de forma interactiva de nuevo.

¿Qué es el comando de pantalla?

los screen El comando además es un multiplexor de terminal y está repleto de alternativas. Para conocer todo lo que puede hacer con él, consulte nuestro post detallado.

Esta vez, vamos a concentrarse en 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 a eso, y veremos si tmux va mejor.

RELACIONADO: Cómo utilizar el comando de pantalla de Linux

Instalación de tmux

Tiempo screen de forma general se instala de forma predeterminada en las distribuciones populares de Linux, tmux no lo es. Instalar tmux en Ubuntu, escriba lo siguiente:

sudo apt-get install tmux

En Manjaro puedes utilizar pacman:

sudo pacman -Sy tmux

En Fedora 31, tmux ya está instalado.

Iniciar una sesión tmux

Para comenzar tmux, simplemente escríbalo y presione Enter:

tmux

La ventana de la terminal mostrará una barra de estado cuando esté en un 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 próxima información relacionada con la sesión:

  • [0]: Este es el nombre de la sesión. De forma predeterminada, están numerados, comenzando con cero. A continuación, cubrimos cómo puede dar nombres significativos a las sesiones.
  • 0: golpe *: El 0 indica que esta es la primera ventana de esta sesión. El único procedimiento que se ejecuta en esta sesión es bash. Si ejecuta un programa, su nombre aparecerá aquí. El asterisco tmux significa que esta es la ventana que estás mirando. Cada vez que crea una nueva ventana en un

sesión, su número de ventana y el nombre del programa que se ejecuta en ella se agregan a la barra de estado. screen los El comando no le da una barra de estado por defecto. Tienes que volar a ciegas y confiar en tu ingenio para saber qué está pasando, lo que requiere un poco de práctica. (A menos que ustedconfigura tu propia barra de estado

.)

En el lado positivo, no perderá ni una línea de espacio en la ventana de la terminal. Desde luego, regularmente expandiría la ventana de su terminal para que valga la pena utilizar 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. tmux Los comandos se dan a tmuxusando pulsaciones de teclas, y hay dos partes para esto. Primero, presiona Ctrl + B para obtenertmuxatención. A continuación, presione rápidamente la tecla siguiente para enviar un comando a

. Los comandos se dan presionando letras, números, signos de puntuación o teclas de flecha. screenEs lo mismo en

, excepto que presiona Ctrl + A para llamar su atención.

Para cerrar la ventana, presione Ctrl + B, y después presione rápidamente X. La barra de estado se torna ámbar. Después 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. tmux los tmuxla sesión se cierra y vuelve a la línea de comando desde la que inició[exited]. Verás «

”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.

Iniciar una sesión tmux con nombre tmux Si comienza con regularidad screensesiones, apreciará rápidamente la funcionalidad de dar a cada una de ellas un nombre significativo. Puede nombrar sesiones en

, además, pero no se muestran en ninguna parte de las ventanas de la sesión. tmux Para comenzar new con un nombre de sesión, use el -s (nueva sesión) comando, y el

tmux new -s geek-1

(nombre de sesión) opción. Nuestra sesión se llamará «geek-1», por lo que escribimos lo siguiente: tmux Cuando el

carga de la sesión, "geek-1" se muestra como la primera entrada en la barra de estado, en el extremo izquierdo.

Una sesión tmux con el nombre «geek-1» en el lado izquierdo de la barra de estado.

Agregar más ventanas dmesg 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 mando -w con el

dmesg -w

(seguir) opción: topAhora tenemos dos ventanas en la sesión; uno esta corriendo dmesg, y el otro

. A pesar de esto, solo podemos ver uno al mismo tiempo (más sobre eso en un momento). tmux Eche un vistazo al lado izquierdo de la barra de estado. Aún estamos en el «geek-1» dmesg sesión. En la ventana cero, top se está ejecutando, y en la ventana uno, dmesg Esta corriendo. El asterisco

después

  • nos dice qué ventana está visible.Para saltar entre ventanas, presione Ctrl + B, y después una de las siguientes teclas: norte
  • : Muestra la próxima ventana.
  • PAG: Muestra la ventana anterior.

0 a 9:

Muestre una ventana numerada del 0 al 9.

Además puede seleccionar una ventana de una lista. Si presiona Ctrl + B y después 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.

Separar y adjuntar sesiones top Si presiona Ctrl + B y después D, desconectará la sesión. Continuará ejecutándose en segundo plano, pero no podrá verlo ni interactuar con él.

Hemos empezado tmux en la sesión, por lo que tenemos un procedimiento en ejecución para demostrarlo. Después, pulsamos Ctrl + B, y después 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 de attach-session diciéndonos que la sesión está separada. Además nos recuerda el nombre que le dimos a la sesión. Esto es útil debido a que eso es lo que usamos para adjuntar a una sesión en segundo plano y después restaurarla a una interactiva. -t Para adjuntar una sesión separada, usaremos el autoexplicativo

comando con el

tmux attach-session -t geek-1

(sesión de destino) opción. Además proporcionaremos el nombre de la sesión que anhelamos recordar.

Escribimos lo siguiente:

screen Nuestra sesión vuelve y se convierte de nuevo en una sesión interactiva visible.

Cualquier procedimiento continuo o de larga duración que haya iniciado antes de desconectar la sesión seguirá ejecutándose en segundo plano (a menos que hayan acabado) cuando adjunte la sesión.

puede hacer esto, pero no tan intuitivamente. tmux Manejo de múltiples sesiones

tmux new -s geek-2

Abramos otra ventana de terminal y comencemos una nueva dmesgsesión llamada «geek-2»:

dmesg -w

En esa sesión, comenzaremos tmux :

Ahora, tenemos nuestro «geek-1» original dmesgsesión y una nueva llamada «geek-2».

La barra de estado nos muestra que esta sesión se llama «geek-2», y cuenta con una ventana que se ejecuta

.

Si pulsamos Ctrl + B, y después D, separamos esa sesión. tmux Sesión tmux separada geek-2 en una terminal widnow. tmux De vuelta en el «geek-1»

sesión, pulsamos Ctrl + B, y después S para ver una lista de

sesiones.

Para ser claros, esta es una lista de sesiones. La pantalla equivalente que vimos previamente 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. tmux 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. A pesar de esto, 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 ambos screen sesiones.

los

El comando además puede hacer esto a través de un conjunto equivalente de comandos.

Trabajar con paneles de ventana tmux ls Si presiona Ctrl + B y después comillas dobles (“”), divide 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

comando en el panel superior para listar 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 después 0 (cero), vemos que está tal como lo dejamos.

uname -a

ls -hl

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 distinto en cada panel.

Escribimos lo siguiente:

Para pasar de un panel a otro, presione Ctrl + B y después las flechas hacia arriba, abajo, izquierda o derecha.%) Dos comandos diferentes en dos paneles en una sesión tmux en una terminal viuda.

Si presiona Ctrl + B y después el signo de porcentaje ( tmux divide el panel actual verticalmente.

Presione Ctrl + B y después Q para hacer tmuxmuestre brevemente el número de cada panel.

Estos números se usan en indicaciones y mensajes de

. Presione Ctrl + B y después 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 quitar el panel, o N para dejar las cosas como están. screen Si presiona Y, el panel se elimina. screen los

El comando además tiene paneles, pero, nuevamente, son menos intuitivos de utilizar. Lo que nos molesta

dicho de otra forma, si desconecta una sesión con paneles, desaparecen cuando vuelve a conectar esa sesión. Esto envejece muy rápidamente. tmux A Ctrl + B Cheat Sheet

Hemos incluido una hoja de trucos de los diferentes comandos que puede usar en

  • debajo. Comandos de sesión
  • S: Enumere las sesiones.
  • PS Cambiar el nombre de la sesión actual.
  • D: Separar la sesión actual. tmuxCtrl + B, y después?:

Mostrar la página de ayuda en

  • . Comandos de ventana
  • C: Crea una nueva ventana.
  • ,: Cambiar el nombre de la ventana actual.
  • W: Enumere las ventanas.
  • NORTE: Pasar a la próxima ventana.
  • PAG: Ir a la ventana anterior.

0 a 9:

  • Vaya al número de ventana especificado. Comandos del panel
  • %: Crea una división horizontal.
  • “: Crea una división vertical.
  • H o flecha izquierda: Muévase al panel de la izquierda.
  • I o flecha derecha: Muévase al panel de la derecha.
  • J o flecha hacia abajo: Vaya al panel de abajo.
  • K o flecha hacia arriba:Vaya al panel de arriba.
  • Q : Muestra brevemente los números de panel.
  • O: Desplácese por los paneles en orden. Cada pulsación le lleva a la próxima, hasta que recorre todas.
  • }: Intercambia la posición del panel actual con el siguiente.
  • {: Intercambia la posición del panel actual con el anterior.

X:

Cierre el panel actual. screen Cómo se comparan tmux En términos de funcionalidad, tmux y

ambos funcionan de manera equivalente y ofrecen las mismas características principales. Es la forma en que accede a esas funciones lo que es marcadamente distinto. tmux ofrece formas más fáciles y cómodas de ingresar a las distintas funciones. A pesar de esto, esa no es la única diferencia.

screenLa capacidad de cambiar el nombre de sesiones y ventanas en

es ordenado, y el hecho de que conserve los paneles cuando vuelve a conectar una sesión cambia las reglas del juego. tmux, por otra parte, pierde absolutamente 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 para

, incluidas sus capacidades de creación de scripts increíblemente flexibles. Te debes a ti mismo comprobarlo.

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.