GNU/Linux >> Tutoriales Linux >  >> Linux

15 comandos de pantalla de Linux para gestionar sesiones de terminal

La pantalla o pantalla GNU 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 screen para seguir ejecutando el programa después de cerrar accidentalmente la terminal, o incluso después de cerrar sesión y más tarde. reanudar donde quiera que estés.

Un ejemplo práctico es cuando está ejecutando una tarea en una máquina Linux remota en la que tiene una sesión ssh. Muchas veces ha visto que esta sesión ssh se termina y ya no puede trabajar. Aquí viene 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 de su camino 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 (incluyendo más shells), eliminar la ventana actual, ver una lista de las ventanas activas, copiar texto entre ventanas, cambiar entre ventanas, etc. .

Screen gestiona una sesión que consta de una o más ventanas cada uno contiene un shell u otro programa. Además, la pantalla puede dividir una pantalla de terminal en múltiples 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 práctico para evitar una sesión de tiempo de espera de ssh involuntario.

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 iniciará una nueva ventana dentro de la pantalla.

# screen

Puede iniciar una nueva ventana dentro de la pantalla y también le da un nombre a la ventana, por ejemplo en lo alto. Crea una sesión con identificado por ese nombre. El nombre se puede usar para volver a adjuntarlo en una etapa posterior.

# screen -S aloft

Tenga en cuenta que puede hacer todo su trabajo como si estuviera en el entorno CLI normal.

2) Listar todos los procesos de pantalla

Como podemos iniciar nuevas ventanas dentro de la pantalla, es posible mostrar las pantallas abiertas actualmente, incluidas las que se ejecutan en segundo plano. Enumerará 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 principal de pantalla

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

  • Ctrl-a  seguido de c :crear una nueva ventana
  • Ctrl-a  seguido de w :muestra la lista de todas las ventanas actualmente abiertas
  • Ctrl-a  seguido de A :cambia el nombre de las ventanas actuales. El nombre aparecerá cuando liste la lista de ventanas abiertas con Ctrl-a  seguido de w .
  • Ctrl-a  seguido de n :ir a las siguientes ventanas
  • Ctrl-a  seguido de 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:ir a la ventana n° X.
  • Ctrl-a  seguido de " :elija las ventanas a las que desea avanzar.
  • Ctrl-a  seguido de k :cerrar las ventanas actuales (matar)
  • Ctrl-a  seguido de S :divide las ventanas actuales horizontalmente. Para cambiar entre las ventanas, haga Ctrl-a  seguido de Tab .
  • Ctrl-a  seguido de | :dividir las ventanas actuales verticalmente
  • Ctrl-a  seguido de d :separar una sesión de pantalla sin detenerla
  • Ctrl-a  seguido de r :vuelva a adjuntar una sesión de pantalla desconectada
  • Ctrl-a  seguido de [ :iniciar el modo de copia
  • Ctrl-a  seguido de ] :pegue el texto copiado

4) Mostrar parámetro de pantalla

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

5) Separación de sesión

La mejor ventaja del comando de pantalla es la posibilidad de desconectar una sesión de pantalla. Puede iniciar una sesión de pantalla en una computadora en la oficina, desconectar la sesión de la terminal local, irse a casa, iniciar sesión en la computadora de nuestra oficina de forma remota y volver a conectar la sesión de pantalla a la terminal de la computadora de nuestra casa. Durante el tiempo intermedio, todos los trabajos en la computadora de su oficina continuaron ejecutándose. Esta función se usa para evitar la pérdida de datos que ocurre repentinamente durante la caída de la conexión ssh.

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

Ahora despegaremos la pantalla con Ctrl-a  seguido de 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 su nombre. Significa que deberá 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 actual.

# 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á un resultado como el siguiente que indica que la pantalla se desconectó.

[remote detached from 13686.win200]

6) Vuelva a adjuntar una sesión

Después de desconectar la pantalla, es posible volver a conectarla con el comando. Normalmente, su sesión de pantalla sigue funcionando, 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 completó. Significa que puede trabajar en ssh y desconectar una sesión que volverá a adjuntar en su casa para continuar su proceso de trabajo sin perder nada.

7) Crear un nuevo shell interactivo

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

Para hacer esto, debe crear nuevas ventanas dentro de las ventanas existentes con Ctrl-a  seguido de c . Tendrá algo como a continuación.

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

8) Cambiar entre ventanas de pantalla

Cuando haya abierto más de una ventana de pantalla, para cambiar entre cada ventana, presione Control-a seguido de space o el número de la concha. Por ejemplo, para cambiar al caparazón número 1, presione Control-a entonces 1 . Por ejemplo, nos moveremos en la primera pantalla.

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

9) Ventanas divididas

Para tener una vista global de su trabajo, puede necesitar dividir sus ventanas en lugar de tener varias ventanas. Ctrl-a  seguido de S o | divide tu pantalla horizontal o verticalmente. Es posible repetir la operación sin límite. Para mover otras ventanas, use Ctrl-a  seguido de Tab .

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

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

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

Cuando inicie sesión por primera vez,

  • ejecutar pantalla para iniciar una sesión de pantalla. Obtienes otro shell, ejecuta comandos en eso.
# screen -S remote_session
  • Cuando haya terminado, separe la sesión de la pantalla y luego cierre sesión en el ssh
[detached from 20995.remote_session]
  • Puede listar 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 su sesión de pantalla y continúe con su trabajo
# screen -d -r remote_ression

El comando de pantalla se usa más para la sesión ssh porque ayuda a continuar su trabajo después de una desconexión sin perder los procesos actuales en curso.

11) Desplazarse hacia arriba en las ventanas de la pantalla

Dado que la pantalla se hace cargo de la administración de sus programas remotos, no puede usar las funciones de desplazamiento de su emulador de terminal mientras ejecuta la pantalla. Debe utilizar los comandos de pantalla para acceder al búfer de desplazamiento hacia atrás.

  • Use Ctrl-a  seguido de escape
  • Presiona Up y Down teclas de flecha o PgUp y PgDn teclas para desplazarse por 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 propietario de cada sesión de pantalla

La screen -ls o screen -list los comandos solo le muestran sus propias sesiones de pantalla, incluso para root. Por lo que sé, eso es lo mejor que se puede hacer para la pantalla.

Si desea ver qué sesiones de pantalla han sido iniciadas por qué usuarios buscan en cada directorio de usuarios en /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 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 (entonces, lo que uno escribe, el otro lo ve y viceversa). Para hacer esto:

  • Cree una sesión de pantalla con nombre:
# screen -d -m -S share_session
  • Adjuntar a la sesión de pantalla en 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 adjunte 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 aparecerá en su terminal también aparecerá en el terminal del otro usuario.

14) Sesión de pantalla de bloqueo

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

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

15) Terminar sesión de pantalla

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

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

Conclusión

La utilidad de pantalla 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 algún proceso desde una computadora usando el comando de pantalla y separarlo cuando haya terminado.


Linux
  1. Una guía de la terminal de Linux para principiantes

  2. Mis 10 mejores atajos de terminal para Linux

  3. 5 usos del comando mv en la terminal de Linux

  4. Cómo usar el comando de pantalla de Linux

  5. ¿Comando equivalente de Linux para abrir comando en Mac/Windows?

Los 20 mejores comandos de terminal de Linux para probar un principiante

Ejemplos de comandos de pantalla para administrar múltiples sesiones de terminal

Instale el subsistema de Windows para Linux con un solo comando

Comando de pantalla en Linux explicado

Comando de historial en Linux:ver el historial de terminales de Linux

Ejemplos de comandos de pantalla:Obtener el control de la terminal Linux / Unix