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 17:23] perontmux [2024/04/30 16:41] (actual) peron
Línea 1: Línea 1:
 ===== Tmux ===== ===== Tmux =====
  
-**tmux** es un multiplexor de terminalpermite abrir varias aplicaciones de consola al mismo tiempo __a partir de una única conexión al servidor__De esta forma es posible mantener una sesión activa incluso si nos desconectamos 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).
Línea 9: Línea 11:
  
  
-====Uso==== 
  
-Para iniciar una instancia de tmux, simplemente escribe:+====Uso básico==== 
 + 
 +Para iniciar una instancia de Tmux, simplemente escribe:
  
 <code bash> <code bash>
Línea 17: Línea 20:
 </code> </code>
  
-Una vez que arranque el entorno **tmux**, normalmente nos 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]].
  
-===Crear Ventana nueva=== +===Controlar Ventanas=== 
-Como primera medida podrás crea una ventana nueva en Tmux. Utiliza la combinación **Ctrl+b**,**c**, y crearás una nueva ventana de terminal, y en ella se cargará otra instancia de tu intérprete de comandos, que dará nombre a la ventana (por ejemplo: ''0:ksh?'', ''1:ksh'', ''2:ksh'', etc, ya que "[[ksh]]" constituye el intérprete de comandos que texto-plano.xyz utiliza por defecto).+Las ventanas de Tmux te permiten ejercer multitareaya que en cada una de ellas podrás tener procesos en ejecución
  
-Para conmutar entre las ventanas creadas, utiliza **Ctrl+b**,**n** (ventana siguiente) y **Ctrl+b**,**p** (ventana anterior). Podrás distinguir la //ventana activa// en la barra de estado pues recibirá un ''*''.+Empieza por crear una nueva //ventana// (en cada una de estas //ventanas// podrás ejecutar un programa que desees).
  
-En cada una de estas ventanas puedes ejecutar un programa que desees.+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 estas ventanaspodrás introducir el comando "exit" para cerrar el intérprete (como en cualquier sesión de terminal común y corriente)o bien -en caso que se hubiese colgado- forzar su cierre con **Ctrl+b**,**&**.+==Conmutar entre Ventanas== 
 +Utiliza **Ctrl+b**,**n** para colocar en pantalla la ventana siguiente**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.
  
-===Trabajar con Paneles=== +==Cerrar Ventanas== 
-Sin duda la característica favorita que ofrece tmux es la posibilidad de subdividir la ventana actual en "//paneles//"tanto vertical como horizontalmente+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**,**&**.
  
-Utiliza **Ctrl+b**,**%** y **Ctrl+b**,**"** para subdividir la ventana en paneles horizontales y verticales respectivamente. Podrás conmuta el panel activo de la ventana con **Ctrl+b**,**o**.+===Controlar Paneles=== 
 +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
  
-Existen varias maneras de redimensionar los panelespero 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**.+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.
  
->Tmux emplea el clásico modelo [[cliente]]-[[servidor]] de otros [[emuladores de terminal]], pero puede tener múltiples sesiones cada ventana es una entidad independiente que puede ser enlazada libremente múltiples sesiones, se puede anclar (esto esdisponerla para usar en ella el teclado como dispositivo de entrada).+>Cuanto más ventanas paneles sumes tu sesión de Tmuxpodrías notar cierta pérdida de performance
  
-====Comandos de tmux====+==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**.
  
-Como has visto, casi todos los comandos de Tmux se activan con el atajo **Ctrl+b**, a lo que se suma otro caracter, combinación o palabras para activar uno de las operaciones.+==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**.
  
-===Comandos Generales===+Ten en cuenta que ciertas aplicaciones de terminal podrían requerir un panel no menor a cierta dimensión dada para poder funcionar.
  
-|**Ctrl+b**,''?'' |Ayuda de los atajos de Tmux | +==Cerrar Paneles== 
-|**Ctrl+b**,''c'' |Crea una nueva ventana de sesión Terminal. | +Cierra los programas del //[[#terminologia de tmux|panel activo]]// (si lo hubiesey al retornar a la shellintroduce el comando ''exit''. La subdivisión de paneles se eliminará hasta volver una //ventana// (de panel únicoclaro está). 
-|**Ctrl+b**,''n'' |Activa la la Ventana siguiente | +====Uso Avanzado====
-|**Ctrl+b**,''p'' |Activa la Ventana previa | +
-|**Ctrl+b**,''&'' |Mata (fuerza el cierre) la ventana actual | +
-|**Ctrl+b**,''l'' |Se mueve la próxima ventana seleccionado | +
-|**Ctrl+b**,'','' |Renombra la ventana actual | +
-|**Ctrl+b**,''d'' |**__Cierra Tmux__** |+
  
-==Manejo básico de paneles==+=== ¿Cómo salir de la sesión de tmux sin matar el servidor? ===
  
-|**Ctrl+b**,''%'' |Divide la ventana actual verticalmente. | +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 sesionesse puede anclar (esto esdisponerla para usar en ella el teclado como dispositivo de entrada).
-|**Ctrl+b**,''"'' |Divide la ventana actual horizontalmente. | +
-|**Ctrl+b**,''o'' |Nos deplaza hacia el próximo panel. | +
-|**Ctrl+b**,''q'' |Muestra los números de panelesEn este momento podremos tipear el número correspondiente para desplazarnos a él. | +
-|**Ctrl+b**,''{''  |Mueve el panel actual a la izquierda. | +
-|**Ctrl+b**,''}'' |Mueve el panel actual a la derecha. |+
  
-==Redimensionado de paneles== +Si bien recomendamos siempre guardar tus trabajos en los medios que texto-plano.xyz pone a tu disposiciónesto te permitirá opcionalmente **dejar tu sesión activa en el servidor con un trabajo para continuarla luego** (podrás desconectarte y retomar donde estabas).
-|**Ctrl+b**, ''resize-pane'' |Achica el panel actual (por defecto) | +
-|**Ctrl+b**''resize-pane'' ''20'' |Cambia el tamaño del panel actual achicándolo 20 celdas | +
-|**Ctrl+b**, ''resize-pane'' ''-U'' |Cambia el tamaño del panel actual hacia arriba | +
-|**Ctrl+b**, ''resize-pane'' ''-U 20'' |Cambia el tamaño del panel actual hacia arriba 20 celdas | +
-|**Ctrl+b**, ''resize-pane'' ''-L'' |Cambia el tamaño del panel actual hacia la izq | +
-|**Ctrl+b**, ''resize-pane'' ''-L 20'' |Cambia el tamaño del panel actual hacia la izq 20 celdas | +
-|**Ctrl+b**, ''resize-pane'' ''-R'' |Cambia el tamaño del panel actual hacia la der | +
-|**Ctrl+b**, ''resize-pane'' ''-R 20'' |Cambia el tamaño del panel actual hacia der 20 celdas | +
-|**Ctrl+b**, ''resize-pane'' ''-t 2 20'' |Cambia el tamaño del panel identificado como 2 achicándolo 20 celdas | +
-|**Ctrl+b**, ''resize-pane'' ''-t -L 20'' |Cambia el tamaño del panel id2 a la izq 20 celdas |+
  
 +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? ===
 +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:
  
-=== ¿Cómo abro una nueva ventana? ===+<code bash> 
 +tmux ls 
 +</code>
  
-Todas las operaciones de tmux se realizan con la combinación de teclas **Ctrl+b**, siendo ésta la predeterminada, aunque con su archivo de configuración es posible cambiarla. Mantienes presionada la **tecla Ctrl** mientras presionas la **tecla b**, sueltas ambas y presionas la tecla que realiza la función que deseas.+Se te presentará un listado que guarda el siguiente formato:
  
-En este caso debes presionar ''Ctrl+b'' seguido de ''c''+<code> 
 +0: 1 ksh (created Mon Jul 12 17:49:23 2021) 
 +1: 1 ksh (created Mon Jul 12 17:50:34 2021) 
 +</code>
  
-=== ¿Cómo me muevo entre ventanas? ===+>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'').
  
-Es notorio que, en caso de seguir con la configuración predeterminada, en la barra de estado nos aparecerán la información que necesitamos, que en este caso son los índices de las ventanas. Hay distintas formas de poder movernos entre ventanas, las cuales dependerán de cada usuario, hábito y contexto. Primero que nadavamos a presionar el prefijo de tmux ''Ctrl+b'' seguido de ''c'' para poder crear una nueva ventana. Notaremos que se ha incrementado a ''1'' (en caso de que sea la segunda ventanaya que se cuenta desde ''0'') seguido de dos puntos y el nombre del programa, que mayormente es la shell de usuario.+En este caso, si deseas acceder nuevamente la sesión ''1'', deberás //[[#terminologia de tmux|conectar]]// el multiplexor a ella mediante:
  
-Para desplazarte presiona ''Ctrl+b'' y usa las teclas ''RePág'' y ''AvPág''.+<code bash> 
 +tmux attach -t 1 
 +</code>
  
-También puedes moverte hacia la derecha con ''Ctrl+b'' seguido de ''n''. Para moverte hacia la izquierda presiona ''Ctrl+b'' seguido de ''p''. 
  
-Otra opción es seleccionarla de un listado con ''Ctrl+b'' seguido de ''w''.+=== ¿Cómo muevo una ventana de lugar? ===
  
-O en caso de conocer directamente el índice de la ventana, se puede presionar ''Ctrl+b'' seguido de una comilla simple (**'**)+Esto es un poco más complejo pero se hace así:
  
-=== ¿Le puedo cambiar el nombre a una ventana? ===+Primero: **Ctrl+b** seguido de **:**.
  
-Sí, se puede con ''Ctrl+b'' seguido de '',''.+Segundo (escribimos):
  
-=== ¿Cómo cierro una ventana? ===+<code bash> 
 +swap-window -s [número de la ventana] -t [posición que queremos] 
 +</code>
  
-Con **Ctrl+b** seguido de **&** (te va a preguntar si estás seguro/a).+===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.
  
-=== ¿Cómo muevo una ventana de lugar? ===+Crea un [[permisos_de_archivo_y_directorio#permiso_de_ejecucion|fichero ejecutable]] ''~/bin/[[tmux_start]]''. Luego genera un [[bash#alias|alias]]:
  
-Esto es un poco más complejo pero se hace así:+‎<code bash> 
 +‎alias tp='mosh --ssh="ssh -p 22 -i llave_tp_fulana.key" fulana@texto-plano.xyz tmux_start' 
 +</code>
  
-Primero: **Ctrl+b** seguido de **:**+Ahora, para ingresar a texto-plano.xyz
  
-Segundo (escribimos):+‎===Configuración de Tmux=== 
 +El fichero de configuración opcional de Tmux es ''~/.[[tmux.conf]]''
 +====Comandos de Tmux====
  
-<file bash> +Como has visto, casi todos los comandos de Tmux se activan con el atajo **Ctrl+b**, a lo que se suma otro caracter, combinación o palabras para activar uno de las operaciones.
-swap-window -s [número de la ventana] -t [posición que queremos] +
-</file>+
  
-=== ¿Cómo salir de la sesión de tmux sin matar el servidor? ===+==Comandos Generales==
  
-Al presionar ''Ctrl+b'' seguido de ''d'' saldremos de la sesión, aunque, como el servidor de tmux está todavía encendido, no está perdida, por lo que si algún proceso en ejecución sigue activo, no morirá al concluir esta operación.+|**Ctrl+b**,''?'' |Ayuda de los atajos de Tmux | 
 +|**Ctrl+b**,''t'' |Presenta la hora :) | 
 +|**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__) |
  
-=== ¿Cómo recupero una sesión de tmux? ===+==Ventanas=
 +|**Ctrl+b**,''c'' |Crea una ventana nueva en la //Sesión//. | 
 +|**Ctrl+b**,''n'' |Presenta en pantalla la Ventana siguiente | 
 +|**Ctrl+b**,''p'' |Presenta en pantalla la Ventana previa | 
 +|**Ctrl+b**,''w''|Presenta en pantalla el listado abarcativo de ventanas/paneles| 
 +|**Ctrl+b**,''<nowiki>'</nowiki>'' //nro. de ventana// | Te desplaza al nro. de ventana | 
 +|**Ctrl+b**,''&'' |Fuerza el cierre (mata los procesos) de la ventana actual (solicitará confirmación) | 
 +|**Ctrl+b**,''l'' |Se mueve a la próxima ventana seleccionado | 
 +|**Ctrl+b**,'','' |Renombra la ventana actual |
  
-Primero, es necesario saber cómo se llama la o las sesiones (ya que es posible tener varias). Al principio 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. Para poder ver una lista de las sesiones, es necesario ejecutar el siguiente comando en la shell de nuestro sistema.+==Manejo de paneles==
  
-<file bash> +|**Ctrl+b**,''%'' |Divide la ventana actual en paneles verticales. | 
-tmux ls +|**Ctrl+b**,''"'' |Divide la ventana actual paneles horizontales. | 
-</file>+|**Ctrl+b**,''o'' |Activa el panel siguiente. | 
 +|**Ctrl+b**,''q'' |Presenta los //números de panel//. Introduciendo el número desplazará al panel indicado. | 
 +|**Ctrl+b**,''{''  |Desplaza el panel actual a la izquierda. | 
 +|**Ctrl+b**,''}'' |Desplaza el panel actual a la derecha. |
  
-Esto nos mostrará una salida con el siguiente formato:+==Redimensionado de paneles== 
 +|**Ctrl+b**,**:** ''resize-pane'' |Achica el panel actual (por defecto) | 
 +|**Ctrl+b**,**:** ''resize-pane'' ''20'' |Cambia el tamaño del panel actual achicándolo 20 celdas | 
 +|**Ctrl+b**,**:** ''resize-pane'' ''-U'' |Cambia el tamaño del panel actual hacia arriba | 
 +|**Ctrl+b**,**:** ''resize-pane'' ''-U 20'' |Cambia el tamaño del panel actual hacia arriba 20 celdas | 
 +|**Ctrl+b**,**:** ''resize-pane'' ''-L'' |Cambia el tamaño del panel actual hacia la izq | 
 +|**Ctrl+b**,**:** ''resize-pane'' ''-L 20'' |Cambia el tamaño del panel actual hacia la izq 20 celdas | 
 +|**Ctrl+b**,**:** ''resize-pane'' ''-R'' |Cambia el tamaño del panel actual hacia la der | 
 +|**Ctrl+b**,**:** ''resize-pane'' ''-R 20'' |Cambia el tamaño del panel actual hacia der 20 celdas | 
 +|**Ctrl+b**,**:** ''resize-pane'' ''-t 2 20'' |Cambia el tamaño del panel identificado como 2 achicándolo 20 celdas | 
 +|**Ctrl+b**,**:** ''resize-pane'' ''-t -L 20'' |Cambia el tamaño del panel id2 a la izq 20 celdas |
  
-<code> 
-0: 1 windows (created Mon Jul 12 17:49:23 2021) 
-1: 1 windows (created Mon Jul 12 17:50:34 2021) 
-</code> 
  
-O mejor dicho: ''[nombre de la sesión]'': ''[número de ventanas]'' (''fecha de creación''). 
  
-Por lo tanosi deseas acceder nuevamente a la sesión ''1''introduce lo siguiente:+==== Terminología de Tmux==== 
 + 
 +^ Término ^ Traducción ^ Significado ^ 
 +|**//Session//** | //Sesión// | Grupos de una o más ventanas juntas | 
 +|**//Session name//** | //Nombre de la sesión// | El nombre de la sesiónque por defecto es un número empezando desde cero | 
 +|**//Window//** | //Ventana// |Grupos de uno o más paneles juntos, enlazados una o más sesiones | 
 +|**//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 | 
 +|**//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 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ónpresentado en en una ventana | 
 +|**//Active pane//** | //Panel activo// |El panel en la ventana actual que contiiene el cursor para escribir; uno por ventana | 
 +|**//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
  
-<file bash> 
-tmux attach -t 1 
-</file> 
  
-=== Terminología === 
  
-  * **//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; 
-  * **//Window//** ("//Ventana//"): Grupos de uno o más paneles juntos, enlazados a una o más sesiones; 
-  * **//Pane//** ("//Panel//"): Contiene una terminal y un programa en ejecución, mostrada en una ventana; 
-  * **//Active pane//** ("//Panel activo//"): El panel en la ventana actual que se puede escribir; uno por ventana; 
-  * **//Current window//** ("//Ventana actual//"): La ventana actual en la sesión adjuntada que se puede escribir; uno por sesión; 
-  * **//Last window//** ("Última ventana"): La ventana anterior; 
-  * **//Window list//** ("//Lista de ventanas//"): La lista 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 layout//** ("//Diseño de ventana//": El tamaño y posición de los paneles en una ventana; 
-  * **//Prefix//** (**Prefijo**): El prefijo de tmux para iniciar la ejecución de comandos, siendo éste por defecto ''CTRL'' más ''b'' 
  
-Más información: https://github.com/tmux/tmux/wiki/Getting-Started#basic-concepts 
  
 ==== Gestor de Paquetes tpm ==== ==== Gestor de Paquetes tpm ====
Línea 182: Línea 202:
 Eso recargaría la configuración de tmux en ejecución. Eso recargaría la configuración de tmux en ejecución.
  
-Más información: https://github.com/tmux-plugins/tpm+Más información: [[https://github.com/tmux-plugins/tpm]]
  
 === tmux-themepack === === tmux-themepack ===
  • tmux.1713893037.txt.gz
  • Última modificación: 2024/04/23 17:23
  • por peron