REFERENCIA RÁPIDA DE GNU SCREEN
Sesiones, ventanas, divisiones, modo copia y compartir
Gestión de Sesiones
Crear y Listar Sesiones
screen # new unnamed session
screen -S work # new session named "work"
screen -ls # list all sessions
screen -list # same as -ls
Comandos de Sesión
| screen -S name | Iniciar nueva sesión con nombre |
| screen -r name | Reconectar a sesión desconectada |
| screen -x name | Conectar a sesión ya activa (compartir) |
| screen -d name | Desconectar sesión remota |
| screen -d -r name | Desconectar en otro lugar, reconectar aquí |
| screen -D -RR | Forzar desconexión y reconexión (agresivo) |
| screen -ls | Listar todas las sesiones con PIDs |
| screen -wipe | Limpiar sesiones muertas |
Ventanas
Básicos de Ventanas
| Ctrl-a c | Crear nueva ventana |
| Ctrl-a n | Siguiente ventana |
| Ctrl-a p | Ventana anterior |
| Ctrl-a 0-9 | Cambiar a ventana por número |
| Ctrl-a " | Listar todas las ventanas (interactivo) |
| Ctrl-a ' | Cambiar a ventana por nombre/número |
| Ctrl-a A | Renombrar la ventana actual |
| Ctrl-a k | Cerrar la ventana actual |
Gestión de Ventanas
| Ctrl-a w | Mostrar lista de ventanas en la barra de estado |
| Ctrl-a Ctrl-a | Alternar entre las últimas dos ventanas |
| Ctrl-a N | Mostrar número y nombre de la ventana |
| exit / Ctrl-d | Cerrar ventana (salir del shell) |
División y Regiones
Comandos de División
| Ctrl-a S | Dividir horizontalmente (arriba/abajo) |
| Ctrl-a | | Dividir verticalmente (izquierda/derecha) |
| Ctrl-a Tab | Mover foco a la siguiente región |
| Ctrl-a X | Cerrar la región actual |
| Ctrl-a Q | Cerrar todas las regiones excepto la actual |
Flujo de Trabajo con Regiones
Ctrl-a S # split horizontal
Ctrl-a Tab # move to new region
Ctrl-a c # create window in region
Ctrl-a :resize 20 # set region to 20 lines
Modo Copia
Desplazamiento y Copia
| Ctrl-a [ | Entrar al modo copia/desplazamiento |
| Space | Iniciar/terminar selección (en modo copia) |
| Enter | Copiar selección y salir del modo copia |
| Ctrl-a ] | Pegar texto copiado |
| h/j/k/l | Mover cursor (teclas vi en modo copia) |
| Ctrl-u / Ctrl-d | Desplazar arriba/abajo media página |
| / or ? | Buscar hacia adelante/atrás |
| Esc | Salir del modo copia |
Flujo de Trabajo de Copia
Ctrl-a [ # enter copy mode
Space # mark start (navigate first)
Space # mark end + copy (navigate first)
Ctrl-a ] # paste into current window
Desconectar y Reconectar
Desconectar
| Ctrl-a d | Desconectar la sesión actual |
| Ctrl-a D D | Desconectar y cerrar sesión |
| Ctrl-a z | Suspender screen (como Ctrl-Z) |
| screen -d PID | Desconectar remotamente la sesión por PID |
Reconectar
screen -r # reattach (if only one session)
screen -r work # reattach by name
screen -r 12345 # reattach by PID
screen -d -r work # steal session from other terminal
Flujos de Trabajo Persistentes
# Start long-running task, detach, reconnect later
screen -S build
make -j4 all # start build
Ctrl-a d # detach, go home
screen -r build # reattach later
Compartir
Modo Multiusuario
# Host enables multiuser
Ctrl-a :multiuser on
Ctrl-a :acladd alice # grant access to user alice
# Alice attaches
screen -x hostuser/sessionname
Control de Acceso
| :multiuser on | Habilitar modo multiusuario |
| :acladd user | Otorgar acceso completo al usuario |
| :aclchg user -w '#' | Hacer al usuario de solo lectura (todas las ventanas) |
| :acldel user | Eliminar acceso del usuario |
| screen -x user/sess | Conectar a la sesión compartida |
Configuración
Esenciales de ~/.screenrc
startup_message off # skip splash screen
defscrollback 10000 # scrollback buffer lines
hardstatus alwayslastline
hardstatus string '%{gk}%H %{wk}%?%-Lw%?%{bw}%n*%f %t%{wk}%?%+Lw%?'
shell -$SHELL # use login shell
Configuraciones Útiles
| startup_message off | Suprimir mensaje de inicio |
| defscrollback N | Establecer búfer de desplazamiento (predeterminado 100) |
| escape ^Bb | Cambiar tecla prefijo a Ctrl-b |
| shelltitle '$ |bash' | Establecer títulos de ventana automáticamente |
| caption always '%n %t' | Mostrar siempre el pie con info de ventana |
| autodetach on | Desconectar automáticamente en colgada (predeterminado) |
| vbell on | Usar campana visual en lugar de audible |
Patrones Comunes
Configuración de Desarrollo
# Auto-create windows in .screenrc
screen -t editor 0 vim
screen -t server 1 python -m http.server
screen -t shell 2 bash
select 0 # start on editor window
Registro y Monitoreo
Ctrl-a H # toggle logging to screenlog.N
Ctrl-a M # monitor window for activity
Ctrl-a _ # monitor window for silence
Referencia Rápida
| Ctrl-a ? | Mostrar todos los atajos de teclado |
| Ctrl-a :help | Ayuda integrada |
| Ctrl-a :source file | Cargar archivo de configuración |
| Ctrl-a :screen cmd | Ejecutar comando en nueva ventana |
| Ctrl-a :quit | Cerrar todas las ventanas y salir de la sesión |