LINUX

15 comandos de pantalla de Linux para manejar sesiones de terminal

Ejemplos de comandos de pantalla de Linux

GNU screen o screen es un terminal multiplexor. Con esto, puede ejecutar cualquier cantidad de aplicaciones basadas en consola, shells de comandos interactivos, aplicaciones basadas en cursos, etc. Puede usar la pantalla para continuar ejecutando el programa después de cerrar accidentalmente la terminal o incluso después de cerrar la sesión más tarde. reanude desde donde quiera que esté.

Un ejemplo práctico es cuando ejecuta una tarea en una máquina Linux remota donde tiene una sesión ssh. Muchas veces has visto que esta sesión ssh terminó y ya no puedes trabajar. Aquí es donde entra en juego la utilidad de pantalla para ayudar a reanudar las sesiones.

¿Cómo funciona la pantalla?

Cuando se llama a screen, crea una sola ventana con un shell (o el comando especificado) y luego se aparta para que pueda usar el programa como lo haría normalmente. Luego, en cualquier momento, puede crear nuevas ventanas (de pantalla completa) con otros programas en ellas (incluidos múltiples shells), eliminar la ventana actual, ver una lista de ventanas activas, copiar texto entre ventanas, cambiar entre ventanas, etc. .

La pantalla gestiona un sesión que consta de uno o más ventanas cada uno contiene un shell u otro programa. Además, la pantalla puede dividir una pantalla de terminal en varias regiones, cada uno mostrando el contenido de una ventana. Todas las ventanas ejecutan sus programas de forma completamente independiente entre sí. Los programas continúan ejecutándose cuando su ventana no está visible en ese momento e incluso cuando la sesión de pantalla completa está desconectada del terminal del usuario. Esto es básicamente para evitar el tiempo de espera involuntario de la sesión ssh.

Ahora veamos cómo usar esta utilidad en Linux.

1) Invocar nuevas ventanas

Si el comando de pantalla aún no está presente en su sistema, puede instalarlo con el siguiente comando.

en Debian

# apt-get install screen

En Centos

# yum install screen

Puede iniciar la pantalla simplemente escribiendo pantalla en el símbolo del sistema. Este comando de pantalla abrirá una nueva ventana en la pantalla.

# screen

Puede abrir una nueva ventana dentro de la pantalla y también darle un nombre a la ventana, por ejemplo arriba. Se crea una sesión con identificado por ese nombre. El nombre se puede utilizar para adjuntar de nuevo en una etapa posterior.

# screen -S aloft

Tenga en cuenta que puede hacer todo su trabajo como lo haría en el entorno CLI normal.

2) Listar todos los procesos en la pantalla

Dado que podemos abrir nuevas ventanas en la pantalla, es posible mostrar las pantallas actualmente abiertas, incluidas las que se ejecutan en segundo plano. Esto mostrará una lista de todas las sesiones de pantalla existentes.

# screen -ls
There is a screen on:
 10437.aloft (Attached)
1 Socket in /var/run/screen/S-root.

3) Comando de pantalla principal

Es posible operar con la pantalla usando algunos comandos. Enumeraremos los principales comandos más útiles a continuación.

  • Ctrl-a seguido por c: crear una nueva ventana
  • Ctrl-a seguido por w: muestra la lista de todas las ventanas actualmente abiertas
  • Ctrl-a seguido por A: cambiar el nombre de las ventanas actuales. El nombre aparecerá cuando liste la lista de ventanas con las que se abrió Ctrl-a seguido por w.
  • Ctrl-a seguido por n: ir a las siguientes ventanas
  • Ctrl-a seguido por p: ir a las ventanas anteriores
  • Ctrl-a seguido de Ctrl-a: volver a las últimas ventanas utilizadas.
  • Ctrl-a seguido de un número del 0 al X: acceder a la ventana núm. X.
  • Ctrl-a seguido por ": elija a qué ventanas pasar.
  • Ctrl-a seguido por k: cerrar las ventanas actuales (matar)
  • Ctrl-a seguido por S: divide las ventanas actuales horizontalmente. Para cambiar entre ventanas, proceda Ctrl-a seguido por Tab.
  • Ctrl-a seguido por |: divide las ventanas actuales verticalmente
  • Ctrl-a seguido por d: desconectar una sesión de pantalla sin detenerla
  • Ctrl-a seguido por r: Vuelva a adjuntar una sesión de pantalla desconectada
  • Ctrl-a seguido por [: start the copy mode
  • Ctrl-a followed by ]: Pegar el texto copiado

4) Parámetro de la pantalla de visualización

Puede enumerar todos los parámetros de la pantalla para obtener ayuda. Para hacer esto, escriba Ctrl-a seguido del personaje ?. Mostrará una lista de todos los comandos.

5) Sesión de desapego

La mejor ventaja del comando de pantalla es la capacidad de desconectar una sesión de pantalla. Puede iniciar una sesión de pantalla en una computadora de oficina, desconectar la sesión de la terminal local, ir a casa, iniciar sesión en nuestra computadora de oficina remota y volver a conectar la sesión de pantalla a nuestra terminal de computadora remota en casa. Durante el intervalo, todos los trabajos en su computadora de escritorio continuaron ejecutándose. Esta característica se usa para evitar la pérdida de datos que ocurre repentinamente durante una conexión ssh rota.

Para entender mejor de lo que estamos hablando, pongamos un ejemplo. Lanzamos un proceso de instalación.

Ahora despegaremos la pantalla con Ctrl-a seguido por d. Podemos verificar con el siguiente comando.

# screen -ls
There is a screen on:
 12449.win (Detached)
1 Socket in /var/run/screen/S-root.

Es posible separar la pantalla con screen -d comando seguido de la identificación de la pantalla o el nombre de la pantalla. Significa que tendrá que abrir otra ventana o consola para desconectar la sesión si la consola actual tiene un proceso en curso. Primero debe enumerar la pantalla adjunta actualmente.

# screen -ls
There is a screen on:
 13686.win200 (Attached)
1 Socket in /var/run/screen/S-root.

Ahora, en una nueva terminal, ingrese el siguiente comando.

# screen -d 13686

o puedes usar el nombre

# screen -d win200

Tendrá una salida como la siguiente que indica que la pantalla se ha desconectado.

[remote detached from 13686.win200]

6) Vuelva a adjuntar una sesión

Después de quitar la pantalla, es posible volver a colocarla con el comando. Normalmente, su sesión de pantalla aún se está ejecutando, por lo que todos sus procesos no se detienen. Antes de volver a adjuntar una sesión, debe enumerar la sesión como se indicó anteriormente y luego elegir la sesión para volver a adjuntarla.

# screen -r 13686

o puedes usar

# screen -r win200

Puede ver que después de volver a conectar la sesión, las ventanas muestran el final del proceso que se está completando. Significa que puede trabajar en ssh y desconectar una sesión que volverá a adjuntar en casa para continuar su proceso de trabajo sin perder nada.

7) Crea un nuevo caparazón interactivo

Si tiene trabajo que hacer y no quiere perderlo, es posible crear un nuevo shell interactivo. Puede tener fácilmente varios shells interactivos (numerados del 0 al X) abiertos en una ventana de terminal. Cuando inicie una nueva sesión, estará conectado cáscara 0.

Para hacer esto, necesita crear nuevas ventanas en ventanas existentes con Ctrl-a seguido por c. Tendrás algo como a continuación.

Puedes ver pantalla 3 en la parte superior de la captura de pantalla indicando que estamos en la tercera pantalla. En la parte inferior también podemos ver 3

8) Cambiar entre ventanas de pantalla

Cuando tenga varias ventanas de pantalla abiertas, para alternar entre cada ventana, presione Control-a seguido por space o número de caso. Por ejemplo, para cambiar al caparazón número 1, presione Control-a después 1. Por ejemplo, pasaremos a la primera pantalla.

La parte superior e inferior de la captura de pantalla muestran que estamos en la primera pantalla.

9) Ventanas divididas

Para obtener una vista global de su trabajo, es posible que deba dividir sus ventanas en lugar de tener varias ventanas. Ctrl-a seguido por S o | dividir la pantalla horizontal o verticalmente. Es posible repetir la operación sin límite. Para mover otras ventanas, utilice Ctrl-a seguido por Tab.

Cuando el cursor está en las ventanas inferiores, puede crear una nueva ventana (Ctrl-a seguido por c) o llamar a una ventana existente (Ctrl-a seguido de un número).

Para cerrar una ventana dividida, use Ctrl-a seguido por X (Tenga en cuenta que es el carácter en mayúscula).

10) Vuelva a conectarse a una sesión ssh desconectada

Cuando inicia sesión por primera vez,

  • gire la pantalla para iniciar una sesión de pantalla. Obtienes otro shell, ejecutas comandos en eso.
# screen -S remote_session
  • Cuando haya terminado, desconecte la sesión de pantalla, luego cierre la sesión de ssh
[detached from 20995.remote_session]
  • Puede enumerar todas las sesiones de pantalla primero
# screen -ls
There are screens on:
 20995.remote_session (Detached)
 14331.daby (Attached)
 14134.mom (Detached)
3 Sockets in /var/run/screen/S-root.
  • Vuelva a conectarse a la sesión de pantalla y continúe con su trabajo
# screen -d -r remote_ression

El comando de pantalla es el más utilizado para la sesión ssh porque le ayuda a continuar su trabajo después de una desconexión sin perder los procesos en ejecución actuales.

11) Desplácese hacia arriba en las ventanas de la pantalla

Debido a que la pantalla se hace cargo de la administración de sus programas remotos, no puede usar las funciones de desplazamiento del emulador de terminal mientras ejecuta la pantalla. Debe utilizar comandos de pantalla para acceder al búfer de rebobinado.

  • Usar Ctrl-a seguido por escape
  • seguir adelante Up y Down teclas de flecha o PgUp y PgDn para recorrer la salida anterior.

Puedes ver dónde está mi cursor en la captura de pantalla. Cada terminal virtual tiene su propio búfer de desplazamiento hacia atrás.

12) Ver el dueño de cada sesión de pantalla

los screen -ls o screen -list los comandos solo le muestran sus propias sesiones de pantalla, incluso para root. Hasta donde yo sé, es igual de bueno para la pantalla.

Si desea ver qué sesiones de pantalla se iniciaron por qué usuarios buscan en cada directorio de usuarios /var/run/screen/.

# ls -lR /var/run/screen
/var/run/screen:
total 0
drwx------ 2 patrick patrick 60 Jun 17 20:47 S-patrick
drwx------ 2 root root 100 Jun 17 19:39 S-root

/var/run/screen/S-patrick:
total 0
srwx------ 1 patrick patrick 0 Jun 17 20:47 21941.pat_session

/var/run/screen/S-root:
total 0
srw------- 1 root root 0 Jun 9 16:45 14134.mom
srwx------ 1 root root 0 Jun 9 01:07 14331.daby
srwx------ 1 root root 0 Jun 17 20:46 20995.remote_session

13) Compartir una sesión de pantalla con una sola cuenta

Puede hacer que dos personas inicien sesión en la misma cuenta desde ubicaciones remotas. Pueden compartir fácilmente una sesión de pantalla (por lo que lo que uno escribe, el otro lo ve y viceversa). Para hacer esto:

  • Cree una sesión de pantalla llamada:
# screen -d -m -S share_session
  • Adjuntar a la sesión de pantalla desde la ventana de su terminal
# screen -x share_session
  • Haga que la otra persona (que haya iniciado sesión en la misma cuenta) también se una a la sesión de pantalla
# screen -x share_session

tendrá exactamente la misma salida que se muestra en la otra ubicación. Todo lo que aparece en tu terminal también aparecerá en el terminal del otro usuario.

14) Pantalla de bloqueo de sesión

Es posible bloquear la sesión de la pantalla sin bloquear su sesión habitual de usuario. Significa que puede dejar su computadora y estar seguro de que nadie vendrá por operaciones no autorizadas. Para hacer esto, use el comando Ctrl-a seguido por x (Tenga en cuenta que está en minúsculas).

Screen used by root <root> on centos-01.
Password:

15) Terminar la sesión de pantalla

Cuando haya terminado y quiera salir de la sesión de pantalla, puede usar el comando Ctrl-a seguido por k. Se le pedirá una confirmación.

También puede utilizar el comando de salida. Si desea guardar el proceso en curso, simplemente puede desconectar la sesión de pantalla antes de finalizar la sesión.

Conclusión

Screen Utility puede monitorear una ventana en busca de actividad o inactividad. Esto es excelente si está descargando archivos grandes, compilando o esperando la salida. En ese momento, si es necesario, incluso puede iniciar un proceso desde una computadora usando el comando de pantalla y separarlo cuando haya terminado.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar