> For the complete documentation index, see [llms.txt](https://juanbermudez.gitbook.io/aprendiendolinux/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://juanbermudez.gitbook.io/aprendiendolinux/comandos-basicos/utilidad/screen.md).

# screen

* [screen](https://manpages.debian.org/bookworm/screen/screen.1.en.html) - Gestor de pantalla con la emulación del terminal VT100/ANSI

Screen es un multiplexor de terminal que nos permite crear varias sesiones virtuales. En palabras sencillas nos permite ejecutar múltiples terminales dentro una una.

```bash
$ screen
```

Una vez al interior de `screen`, la combinación de teclas más importante es `Ctrl + a`. Con esta combinación más la tecla del comando, aprovechamos las opciones y capacidades de `screen`.

Aunque tiene una gran variedad de tajos, los siguientes son los más usados:

{% hint style="warning" %}
**Combinaciones**

Algunas requieren que la letra del comando sea mayúscula o minúscula.
{% endhint %}

| Comando screen | Descripción                                                                                                            |
| -------------- | ---------------------------------------------------------------------------------------------------------------------- |
| `"`            | Mostrar una lista de ventanas.                                                                                         |
| `w`            | Mostrar una lista de ventanas.                                                                                         |
| `0` - `9`      | Cambiar al número de ventana 0 - 9 (Siempre inicia en 0).                                                              |
| `A`            | Cambiar el nombre de la ventana actual.                                                                                |
| `C`            | Despeja la pantalla.                                                                                                   |
| `c`            | Crea una nueva ventana.                                                                                                |
| `K`            | Cierra la ventana, lo mismo que escribir `$ exit` dentro de ella.                                                      |
| `N`            | Mostrar el número y nombre de la ventana actual.                                                                       |
| `n`            | Cambiar a la siguiente ventana.                                                                                        |
| `p`            | Caminar a la ventana anterior.                                                                                         |
| `d`            | Desconecta la pantalla de la terminal.                                                                                 |
| `t`            | Mostrar información del sistema.                                                                                       |
| `\|`           | Divide en vertical la pantalla. (En este caso debes crear una nueva ventana en la división en blanco `Ctrl + a + c`)   |
| `s`            | Divide en horizontal la pantalla. (En este caso debes crear una nueva ventana en la división en blanco `Ctrl + a + c`) |
| `Tab`          | Se mueve entre divisiones.                                                                                             |
| `Q`            | Quita la división.                                                                                                     |
| `\`            | Mata todas las ventanas y termina la pantalla.                                                                         |
| `?`            | Mostrar atajos de teclado.                                                                                             |

Screen tiene la capacidad de ejecutar comandos y quedarse en segundo plano, de esta forma podríamos ejecutar un comando en una conexión remota, y si la conexión se pierde o nos desconectamos, el comando se sigue ejecutando sin interrupción.

Para salir de screen y que un comando se siga ejecutando usamos la combinación `Ctrl + a + d`, para volver a entrar ejecutamos `$ screen -r`. Si tenemos varias sesiones, podemos listarlas con `$ screen -ls`, veremos que se identifican con un ID, en ese caso podemos volver a la ventana con `$ screen -r ID`.

También podemos asignar un nombre a la sesión con `-S` y con `-t` a la ventana.

```bash
$ screen -S nombre_sesion
```

```bash
$ screen -t nombre_ventana
```

También puedes matar una sesión sin necesidad de entrar en ella.

```bash
$ screen -XS ID quit
```

O matarlas todas al mismo tiempo.

```bash
$ killall screen
```

{% hint style="info" %}
**Personalización**

Screen se puede personalizar, y lo puedes hacer editando el fichero `.screenrc` dentro del directorio principal del usuario. Este fichero normalmente no existe y debes crearlo. Si quiere que la personalización sea global, edite el fichero en `/etc/screenrc`.

Si no quiere ver el mensaje de bienvenida al iniciar `screen`, agregue esta línea de texto `startup_message off`.
{% endhint %}
