tmux

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
tmux [2024/04/23 20:50] perontmux [2024/04/30 16:41] (actual) peron
Línea 1: Línea 1:
 ===== Tmux ===== ===== Tmux =====
  
-**tmux** es un multiplexor de terminalpermite 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 tiempoa 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).
Línea 12: Línea 14:
 ====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>
Línea 18: Línea 20:
 </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 Tmuxen 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 Tmuxpodrí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á perdidapor 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 encendidodicha 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>
Línea 55: Línea 71:
 </code> </code>
  
- +Se te presentará un listado que guarda el siguiente formato:
-Se nos presentará un listado que guarda el siguiente formato:+
  
 <code> <code>
Línea 65: Línea 80:
 >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>
Línea 72: Línea 87:
  
  
 +=== ¿Cómo muevo una ventana de lugar? ===
 +
 +Esto es un poco más complejo pero se hace así:
 +
 +Primero: **Ctrl+b** seguido de **:**.
 +
 +Segundo (escribimos):
 +
 +<code bash>
 +swap-window -s [número de la ventana] -t [posición que queremos]
 +</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====
  
Línea 79: Línea 119:
  
 |**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==
Línea 113: Línea 153:
 |**Ctrl+b**,**:** ''resize-pane'' ''-t -L 20'' |Cambia el tamaño del panel id2 a la izq 20 celdas | |**Ctrl+b**,**:** ''resize-pane'' ''-t -L 20'' |Cambia el tamaño del panel id2 a la izq 20 celdas |
  
-=== ¿Cómo muevo una ventana de lugar? === 
  
-Esto es un poco más complejo pero se hace así: 
  
-Primero: **Ctrl+b** seguido de **:**. +==== Terminología de Tmux====
- +
-Segundo (escribimos): +
- +
-<code bash> +
-swap-window -s [número de la ventana] -t [posición que queremos] +
-</code> +
- +
- +
- +
-==== Terminología ====+
  
 ^ 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// |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
  • tmux.1713905427.txt.gz
  • Última modificación: 2024/04/23 20:50
  • por peron