tutorial para mac commands comandos tmux

mac - tmux para ubuntu



Crear una nueva sesión de tmux desde dentro de una sesión de tmux (6)

Cómo crear la secuencia de comandos

Este script verificará si existe una sesión. Si la sesión no existe, cree una sesión nueva y conéctela. Si la sesión existe, no pasa nada y nos apegamos a esa sesión. Siéntase libre de reemplazar `~ / desarrollo ''con el nombre del proyecto.

$ touch ~/development && chmod +x ~/development

# ~/development tmux has-session -t development if [ $? != 0 ] then tmux new-session -s development fi tmux attach -t development

Nueva sesión desde la terminal

Vamos a crear dos sesiones separadas, enumerarlas, adjuntarlas a una y luego desde el ciclo tmux a través de las sesiones.

tmux new -s name -d funciona desde dentro de tmux porque estamos creando una nueva sesión separada. De lo contrario, obtendrá un error de anidamiento.

$ tmux new -s development -d $ tmux new -s foo -d $ tmux ls > development: 1 windows (created Wed Jan 13 11:31:38 2016) [204x54] > foo: 1 windows (created Wed Jan 13 11:31:38 2016) [204x54] $ tmux attach -t $ tmux ls > development: 1 windows (created Wed Jan 13 11:31:38 2016) [204x54] (attached) > foo: 1 windows (created Wed Jan 13 11:31:38 2016) [204x54]

Nueva sesión desde dentro de tmux

Ahora estamos dentro o mejor conocidos como adjuntos a nuestra sesión objetivo. Si intentamos crear una nueva sesión mientras estamos conectados, se producirá un error de anidamiento.

$ tmux new -s bar > sessions should be nested with care, unset $TMUX to force

Para resolver esto, creamos una nueva sesión separada. p.ej,

$ tmux new -s bar -d $ tmux ls > development: 1 windows (created Wed Jan 13 11:31:38 2016) [204x54] (attached) > foo: 1 windows (created Wed Jan 13 11:31:38 2016) [204x54] > bar: 1 windows (created Wed Jan 13 17:19:35 2016) [204x54]

Sesiones de ciclo (interruptor)

  • Prefix ( sesión previa
  • Prefix ) próxima sesión

nota: Prefix es Ctrl-b por defecto. Puede vincular el Prefix a Ctrl-a y en Mac OSX puede cambiar el Bloqueo de mayúsculas a las system preferences > keyboard > modifier keys ctrl system preferences > keyboard > modifier keys

Adjuntar a una sesión usando el modo de comando mientras dentro de tmux

Intentar adjuntar a una sesión sin separarlo dará como resultado un error.

$ tmux attach -t development > sessions should be nested with care, unset $TMUX to force

En su lugar, use Prefix modo de comando : luego escriba attach -t session_name y attach -t session_name enter.

Estoy escribiendo un script de shell que crea / adjunta o cambia a una sesión dada, dependiendo de si uno está dentro de tmux y si la sesión existe.

Tengo todo funcionando bien excepto por el caso que requiere la creación de una nueva sesión de tmux desde una sesión de tmux.

Cuando mi script ejecuta tmux new-session -s name , obtengo el siguiente resultado:

las sesiones se deben anidar con cuidado, se ha eliminado $ TMUX para forzar

En realidad, no quiero anidar sesiones, mi objetivo es crear otra sesión separada y pasar a ella desde una sesión de tmux .

es posible?


La manera más rápida (suponiendo que use ctrl-b como su prefijo de comando) es:

ctrl-b :new

Para crear una nueva sesión, entonces

ctrl-b s

para seleccionar interactivamente y adjuntar a la sesión.


Puedes intentar unset TMUX primero, esto funciona para mí.


Todos los comandos que puede tmux new -s sessionName dentro de su terminal, como tmux new -s sessionName se pueden iniciar desde dentro de tmux presionando la tecla de activación (p. Ej .: ctrl-b ) y luego : luego, el comando sin la parte de inicio de tmux .

Como resultado, ctrl-b : seguido de new -s sessionName hará exactamente lo que quiera y le dará un nombre a su sesión. También cambia automáticamente a la nueva sesión.


Usar esto funciona para mí:

TMUX= tmux new-session -d -s name tmux switch-client -t name

El TMUX= en la primera línea es necesario para que tmux no arroje las sessions should be nested with care, unset $TMUX to force mensaje.


siguiendo los consejos del usuario2354696 utilizo los siguientes enlaces de teclas para crear una nueva sesión o "clonar" una sesión existente

bind-key N run-shell ''TMUX= tmux new-session -d /; switch-client -n'' bind-key C run-shell ''TMUX= tmux new-session -t $(tmux display-message -p #S) -s $(tmux display-message -p #S-clone) -d /; switch-client -n /; display-message "session #S cloned"''