Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa |
tmux [2024/04/23 20:53] – [Comandos de Tmux] peron | tmux [2024/04/30 16:41] (actual) – peron |
---|
===== Tmux ===== | ===== Tmux ===== |
| |
**tmux** es un multiplexor de terminal: permite ejercer multitarea abriendo varias aplicaciones de consola al mismo tiempo (a partir de una única conexión a nuestro servidor). De esta forma incluso es posible mantener una sesión activa incluso si te desconectas del mismo). | **tmux** es un multiplexor de terminal. Permite activar varias ventanas virtuales conmutables en una [[terminal de computadora]], lo que permite correr varias aplicaciones de consola al mismo tiempo, a partir de una única conexión al servidor. |
| |
| Con Tmux te será posible mantener una sesión activa en texto-plano, incluso si te desconectas del servidor. |
| |
tmux utiliza el fichero de configuración opcional ''~/.[[tmux.conf]]''. | |
| |
>Tmux es un proyecto creado por OpenBSD (Texto-plano funciona en un servidor OpenBSD). | >Tmux es un proyecto creado por OpenBSD (Texto-plano funciona en un servidor OpenBSD). |
====Uso básico==== | ====Uso básico==== |
| |
Para iniciar una instancia de tmux, simplemente escribe: | Para iniciar una instancia de Tmux, simplemente escribe: |
| |
<code bash> | <code bash> |
</code> | </code> |
| |
Una vez que arranque el entorno **tmux**, normalmente te presentará una única //sesión// con una sola //ventana//, cargando en ella tu [[intérpretes de comandos|intérprete de comandos]] (como si fuese un emulador de terminal común y corriente). | Al iniciar el entorno **Tmux**, normalmente presentará una //[[#terminología de tmux|sesión]]// única con una sola //[[#terminología de tmux|ventana]]//, cargando en ella tu [[intérpretes de comandos|intérprete de comandos]], como cualquier otro [[emulador de terminal]]. Como particularidad, en la línea inferior de la consola verás la //barra de estado de Tmux// (normalmente en color verde). |
| |
En la parte inferior verás la //barra de estado de Tmux// (normalmente en color verde). | Naturalmente, podrás operar en la sesión de Tmux como [[aprende a usar la terminal|ya sabes hacerlo]]. |
| |
===Controlar Ventanas=== | ===Controlar Ventanas=== |
Como primera medida podrás crea una ventana nueva en Tmux: en cada una de estas ventanas podrás ejecutar un programa que desees. | Las ventanas de Tmux te permiten ejercer multitarea, ya que en cada una de ellas podrás tener procesos en ejecución. |
| |
Utiliza la combinación **Ctrl+b**,**c**, y crearás una segunda ventana de terminal; en ella se cargará una segunda instancia de tu intérprete de comandos. En la //barra de estado// inferior aparecerá un nuevo nombre de ventana (inicialmente ''0:ksh?'', ''1:ksh'', ''2:ksh'', etc, pues "[[ksh]]" constituye el intérprete de comandos que texto-plano.xyz utiliza por defecto). | Empieza por crear una nueva //ventana// (en cada una de estas //ventanas// podrás ejecutar un programa que desees). |
| |
Para conmutar entre las ventanas que hayas creado, utiliza **Ctrl+b**,**n** (para poner en pantalla la ventana siguiente) y **Ctrl+b**,**p** (para poner en pantalla la ventana anterior). Podrás distinguir la //ventana activa// en la barra de estado mediante el indicativo ''*''. | Utiliza la combinación **Ctrl+b**,**c**, y crearás una segunda //ventana// de terminal; en ella se cargará una segunda instancia de tu intérprete de comandos. En la //barra de estado// inferior aparecerá un nuevo nombre de ventana (inicialmente ''0:ksh?'', ''1:ksh'', ''2:ksh'', etc, pues "[[ksh]]" constituye el intérprete de comandos que texto-plano.xyz utiliza por defecto). |
| |
Para cerrar cada una de estas ventanas, puedes cerrar los programas en ejecución (si los hubiese), e introducir el comando ''exit'' para cerrar el intérprete de comandos (como en cualquier sesión de terminal común y corriente), o bien -en caso de haberse colgado un programa o proceso- forzar su cierre mediante **Ctrl+b**,**&**. | ==Conmutar entre Ventanas== |
| Utiliza **Ctrl+b**,**n** para colocar en pantalla la ventana siguiente, y **Ctrl+b**,**p** para poner en pantalla la ventana anterior. Podrás distinguir la //[[#terminología de tmux|ventana activa]]// mediante el indicativo ''*'' en la //barra de estado// de Tmux. |
| |
| ==Cerrar Ventanas== |
| Para **cerrar ventanas**, debes cerrar los programas en ejecución (si los hubiese), e introducir el comando ''exit'' para cerrar el intérprete de comandos (como en cualquier sesión de terminal común y corriente), o bien -en caso de haberse colgado un programa o proceso- forzar su cierre mediante **Ctrl+b**,**&**. |
| |
===Controlar Paneles=== | ===Controlar Paneles=== |
Sin duda la característica mas sobresaliente que ofrece Tmux es la posibilidad de __subdividir la ventana actual en "//paneles//"__, tanto vertical como horizontalmente. | Sin duda la característica mas sobresaliente que ofrece Tmux es la posibilidad de __subdividir la //ventana actual// en "//[[#terminología de tmux|paneles]]//"__, tanto vertical como horizontalmente. |
| |
Utiliza **Ctrl+b**,**"** y **Ctrl+b**,**%** para subdividir la ventana en paneles horizontales y verticales respectivamente. | Utiliza **Ctrl+b**,**"** y **Ctrl+b**,**%** para subdividir la ventana en paneles horizontales y verticales respectivamente. Naturlamente, estos tendrán un tamaño menor al de la ventana completa. |
| |
Podrás conmuta el panel activo de la ventana con **Ctrl+b**,**o**. También es útil la opción de seleccionar el panel de la ventana deseada, eligiendola de un listado abarcativo, que puedes presentar con **Ctrl+b**,**w**. | >Cuanto más ventanas y paneles sumes a tu sesión de Tmux, podrías notar cierta pérdida de performance. |
| |
| ==Conmutar entre paneles== |
| Conmuta el //[[#terminología de tmux|panel activo]]// de la //ventana actual// con **Ctrl+b**,**o**. También es útil la opción de seleccionar el panel de la ventana deseada, eligiéndola de un listado abarcativo, que puedes presentar con **Ctrl+b**,**w**. |
| |
| ==Redimensionar Paneles== |
Existen varias maneras de redimensionar los paneles, pero la más simple es conmutar entre las diferentes diseños de panelado que vienen ya preconfigurados en tmux. Esta función se realiza con **Ctrl+b**,**Barra espaciadora**. | Existen varias maneras de redimensionar los paneles, pero la más simple es conmutar entre las diferentes diseños de panelado que vienen ya preconfigurados en tmux. Esta función se realiza con **Ctrl+b**,**Barra espaciadora**. |
| |
| Ten en cuenta que ciertas aplicaciones de terminal podrían requerir un panel no menor a cierta dimensión dada para poder funcionar. |
| |
| ==Cerrar Paneles== |
| Cierra los programas del //[[#terminologia de tmux|panel activo]]// (si lo hubiese) y al retornar a la shell, introduce el comando ''exit''. La subdivisión de paneles se eliminará hasta volver a una //ventana// (de panel único, claro está). |
====Uso Avanzado==== | ====Uso Avanzado==== |
| |
| === ¿Cómo salir de la sesión de tmux sin matar el servidor? === |
| |
Tmux emplea el clásico modelo [[cliente]]-[[servidor]] de otros [[emulador de terminal|emuladores de terminal]], pero puede tener múltiples sesiones y cada ventana es una entidad independiente que puede ser enlazada libremente a múltiples sesiones, se puede anclar (esto es, disponerla para usar en ella el teclado como dispositivo de entrada). | Tmux emplea el clásico modelo [[cliente]]-[[servidor]] de otros [[emulador de terminal|emuladores de terminal]], pero puede tener múltiples sesiones y cada ventana es una entidad independiente que puede ser enlazada libremente a múltiples sesiones, se puede anclar (esto es, disponerla para usar en ella el teclado como dispositivo de entrada). |
| |
=== ¿Cómo salir de la sesión de tmux sin matar el servidor? === | Si bien recomendamos siempre guardar tus trabajos en los medios que texto-plano.xyz pone a tu disposición, esto te permitirá opcionalmente **dejar tu sesión activa en el servidor con un trabajo para continuarla luego** (podrás desconectarte y retomar donde estabas). |
| |
Al presionar **Ctrl+b**,''d'' saldremos de la sesión, aunque - como el servidor de tmux está todavía encendido - dicha sesión no estará perdida, por lo que si algún proceso en ejecución sigue activo, no morirá al concluir esta operación. | Presiona **Ctrl+b**,''d'' y //[[#terminología de tmux|desconectarás]]// la sesión del multiplexor, aunque - como el servidor Tmux está todavía encendido, dicha sesión no estará perdida - por lo que si algún proceso en ejecución sigue activo, no morirá al concluir esta operación. |
| |
=== ¿Cómo recupero una sesión de tmux? === | === ¿Cómo recupero una sesión de tmux? === |
Primero debemos conocer nuestro listado de las sesiones de tmux, (ya que es posible tener varias activas). Para ello ejecutamos el siguiente comando en la shell de nuestro sistema: | Primero deberás conocer el listado de tus sesiones inactivas de Tmux, (ya que es posible tener varias inactivas). Para ello utiliza el siguiente comando en la shell de nuestro sistema: |
| |
<code bash> | <code bash> |
</code> | </code> |
| |
| Se te presentará un listado que guarda el siguiente formato: |
Se nos presentará un listado que guarda el siguiente formato: | |
| |
<code> | <code> |
>Inicialmente tienen el mismo sistema de nombramiento que las ventanas, o en otra palabras, son nombradas a partir del ''0'' y se aumentan secuencialmente por cada nueva sesión creada. En otras palabras, la sintaxis es ''[nombre de la sesión]'': ''[número de ventanas]'' (''fecha de creación''). | >Inicialmente tienen el mismo sistema de nombramiento que las ventanas, o en otra palabras, son nombradas a partir del ''0'' y se aumentan secuencialmente por cada nueva sesión creada. En otras palabras, la sintaxis es ''[nombre de la sesión]'': ''[número de ventanas]'' (''fecha de creación''). |
| |
Por lo tanto, si deseamos acceder nuevamente a la sesión ''1'', debemos conectar el tmux a ella mediante: | En este caso, si deseas acceder nuevamente a la sesión ''1'', deberás //[[#terminologia de tmux|conectar]]// el multiplexor a ella mediante: |
| |
<code bash> | <code bash> |
</code> | </code> |
| |
| ===Inicio de tmux con Mosh=== |
| Con esto podrás usar Tmux para iniciar una sesión en texto-plano.xyz desde [[Mosh]], evitando hacerlo en paralelo. |
| |
| Crea un [[permisos_de_archivo_y_directorio#permiso_de_ejecucion|fichero ejecutable]] ''~/bin/[[tmux_start]]''. Luego genera un [[bash#alias|alias]]: |
| |
| <code bash> |
| alias tp='mosh --ssh="ssh -p 22 -i llave_tp_fulana.key" fulana@texto-plano.xyz tmux_start' |
| </code> |
| |
| Ahora, para ingresar a texto-plano.xyz |
| |
| ===Configuración de Tmux=== |
| El fichero de configuración opcional de Tmux es ''~/.[[tmux.conf]]''. |
====Comandos de Tmux==== | ====Comandos de Tmux==== |
| |
| |
|**Ctrl+b**,''?'' |Ayuda de los atajos de Tmux | | |**Ctrl+b**,''?'' |Ayuda de los atajos de Tmux | |
|**Ctrl+b**,''d''|[[#¿Cómo salir de la sesión de tmux sin matar el servidor?|Abandona la //sesión// de Tmux]] | | |**Ctrl+b**,''t'' |Presenta la hora :) | |
|**Ctrl+b**,''d'' |**__Cierra Tmux__** | | |**Ctrl+b**,''d''|[[#¿Cómo salir de la sesión de tmux sin matar el servidor?|Desconecta la terminal de la sesión de Tmux]] (**sale de Tmux** __dejándolo activo__) | |
| |
==Ventanas== | ==Ventanas== |
| |
| |
==== Terminología ==== | ==== Terminología de Tmux==== |
| |
^ Término ^ Traducción ^ Significado ^ | ^ Término ^ Traducción ^ Significado ^ |
| **//Session//** | //Sesión// | Grupos de una o más ventanas juntas | | |**//Session//** | //Sesión// | Grupos de una o más ventanas juntas | |
| **//Session name//** | //Nombre de la sesión// | El nombre de la sesión, que por defecto es un número empezando desde cero | | |**//Session name//** | //Nombre de la sesión// | El nombre de la sesión, que por defecto es un número empezando desde cero | |
| **//Window//** | //Ventana// | Grupos de uno o más paneles juntos, enlazados a una o más sesiones | | |**//Window//** | //Ventana// |Grupos de uno o más paneles juntos, enlazados a una o más sesiones | |
| **//Current window//** | //Ventana actual// | La ventana actual en la sesión adjuntada que se puede escribir; uno por sesión | | |**//Current window//** | //Ventana activa// |La ventana activa en la sesión adjuntada que se puede escribir; uno por sesión | |
| **//Last window//** | Última ventana | Última ventana invocada | | |**//Last window//** |Última ventana | Última //ventana// invocada | |
| **//Window list//** | //Lista de ventanas// | Listado de ventanas en una sesión en orden numérico | | |**//Window list//** |//Lista de ventanas// | Listado de ventanas en una sesión en orden numérico | |
| **//Window index//** | //Índice de la ventana// | El número de una ventana en una lista de ventanas de una sesión | | |**//Window index//** |//Índice de la ventana// | El número de una ventana en una lista de ventanas de una sesión | |
| **//Window layout//** | //Diseño de ventana// | El tamaño y posición de los paneles en una ventana | | |**//Window layout//** |//Diseño de ventana// | El tamaño y posición de los paneles en una ventana | |
| **//Pane//** | //Panel// | Contiene una terminal y un programa en ejecución, presentado en en una ventana | | |**//Pane//** | //Panel// |Contiene una terminal y un programa en ejecución, presentado en en una ventana | |
| **//Active pane//** | //Panel activo// | El panel en la ventana actual que contiiene el cursor para escribir; uno por ventana | | |**//Active pane//** | //Panel activo// |El panel en la ventana actual que contiiene el cursor para escribir; uno por ventana | |
| **//Prefix//** | //Prefijo// | La combinación de teclas que usa Tmux para ejecutar comandos, por defecto **Ctrl+b** | | |**//Detach//** | //Desconectar// |Desconecta el multiplexor de una //sesión activa// | |
| |**//Attach//** | //Conectar// |Conecta el multiplexor a una //sesión inactiva// | |
| | **//Prefix//** | //Prefijo// |a combinación de teclas que usa Tmux para ejecutar comandos, por defecto **Ctrl+b** | |
| |
Más información: https://github.com/tmux/tmux/wiki/Getting-Started#basic-concepts | Más información: https://github.com/tmux/tmux/wiki/Getting-Started#basic-concepts |