GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo verificar si está en sesión de pantalla o no en Linux

Esta breve guía explica cómo comprobar si estás en Pantalla sesión o no en Linux. Como habrás notado, cuando lanzas un Tmux sesión, obviamente verá los detalles de la sesión, como el nombre SHELL actual, el nombre de host y la fecha y hora actuales, en la barra de estado en la parte inferior, como se muestra en la imagen a continuación.

Detalles de la sesión de Tmux

Pero no verá esos detalles cuando esté dentro de las sesiones de Pantalla. Así es como se ve la sesión de pantalla en mi sistema Ubuntu:

Sesión de pantalla

¿Puedes ver la diferencia? La sesión de pantalla y la sesión normal se verán exactamente iguales. Ejecutemos el comando "screen -ls" para obtener una lista de las sesiones de pantalla en ejecución.

$ screen -ls

Salida de muestra:

Listar sesiones de pantalla

¿Ver? Estoy dentro de la sesión de Pantalla, pero parece una sesión normal. No hay ninguna indicación en la barra de estado en la parte inferior. ¿Cómo sabe si está trabajando dentro de una sesión de Pantalla o no? Eso es lo que vamos a averiguar ahora.

Compruebe si está en sesión de pantalla o no en Linux

Hay un par de formas de verificar si estamos en sesión de pantalla. Aquí he dado tres métodos.

Método 1:usar el comando "eco"

Para verificar si está en la sesión de Pantalla o no, simplemente ejecute el siguiente comando:

$ echo $STY

Si está dentro de la sesión de Pantalla, verá un resultado como el siguiente.

18704.pts-0.ostechnix

Esta es otra forma de verificar si está en una sesión de pantalla:

$ echo $TERM

Verá el término "pantalla" en la salida.

Salida de muestra:

screen.xterm-256color

Compruebe si está en sesión de pantalla en Linux

Si no hubo sesiones de pantalla en ejecución, no verá nada para el primer comando. Y para el segundo comando, no habrá el término "pantalla" en la salida. Simplemente salga o desconéctese de la sesión de pantalla y ejecute los comandos anteriores nuevamente. Verá una salida como la siguiente.

Comprobar sesiones de pantalla

¿Ver? No estamos dentro de la sesión de Pantalla.

Los dos comandos anteriores funcionarán solo si está en la sesión de pantalla en ejecución en su sistema local. No funcionará si inició la sesión de Screen en el sistema local y luego accedió a algún otro sistema en la red a través de SSH.

En ese caso, puede usar el segundo método que se indica a continuación.

Método 2:uso de la tecla de prefijo de pantalla

Para comprobar si estamos en sesión de Pantalla o no, basta con pulsar Ctrl+a y luego Ctrl+t llaves. Esto mostrará la hora y el nombre del host si está en la sesión de Pantalla.

Echa un vistazo a la siguiente demostración.

Compruebe si está en una sesión de pantalla usando la tecla de prefijo de pantalla

Como en el resultado anterior,

  • Primero, comencé una sesión de Pantalla y presioné las teclas Ctrl+a y Ctrl+t para verificar si estoy en la sesión de Pantalla.
  • Luego me desconecté de la sesión de Pantalla presionando Ctrl+a y d .
  • Y finalmente volví a conectarme a la sesión de Pantalla y presioné Ctrl+a y Ctrl+t para verificar nuevamente si estoy en la sesión de Pantalla.

Este método funcionará incluso si tiene SSH en otro lugar.

Método 3:usar el comando Subtítulo

Si no le gusta presionar las teclas cada vez, puede agregar el siguiente código en su ~/.screenrc expediente. Si este archivo no está disponible, simplemente créelo.

$ nano ~/.screenrc

Agrega el código:

caption always "%{= kc}Screen session on %H (system load: %l)%-28=%{= .m}%D %d.%m.%Y %0c"

Guarde y cierre el archivo.

De ahora en adelante, cada vez que inicie una sesión de Pantalla, verá una pequeña barra de notificación (que incluye el nombre de host, la hora y la fecha, la carga del sistema, etc.) en la parte inferior de la ventana de la Terminal, como se muestra a continuación.

Screen session on ubuntuserver (system load: 0.00 0.00 0.00)        Sat 22.02.2020 12:37

Muestra los detalles de la sesión de la pantalla en la parte inferior de la ventana de la Terminal usando el comando Caption

Esta barra de notificación desaparecerá después de salir de la sesión de Pantalla.

Método 4:establezca diferentes indicaciones de Bash para las sesiones de pantalla

Esta es otra forma más de hacer que las sesiones de pantalla sean fácilmente reconocibles agregando algunas líneas de código en ~/.bashrc expediente. En realidad, este no es el método recomendado . Puede causar muchos problemas innecesarios si otros shells como zsh heredan su shell actual. Esto es sólo para fines educativos solamente. ¡Úsalo bajo tu propio riesgo!

Primero, haga una copia de seguridad de su ~/.bashrc actual archivo:

$ cp ~/.bashrc ~/.bashrc.bak

Simplemente configure un nombre de solicitud de Bash diferente para las sesiones normales y de pantalla como desee, como se muestra a continuación. Por ejemplo, he agregado las siguientes líneas en mi ~/.bashrc archivo.

if [ -z $STY ]
then
        PS1="This is normal session:~$ "
else
        PS1="This is Screen session:~$ "
fi

Cierra la sesión y vuelve a iniciarla. El nombre de tu terminal cambiará según tu configuración mientras cambias entre sesiones normales y de pantalla.

Establezca diferentes avisos de Bash para las sesiones de pantalla

Nuevamente, no es una buena práctica cambiar el nombre del indicador de Bash. En su lugar, utilice cualquiera de los métodos anteriores para comprobar si está en la sesión de pantalla o no.

Lectura relacionada:

  • Cómo personalizar Bash Prompt en Linux

Espero que esto ayude.


Linux
  1. ¿Cómo saber qué distribución de Linux está utilizando?

  2. Cómo verificar el historial de inicio de sesión de Linux

  3. Cómo encontrar qué Shell está utilizando en Linux

  4. ¿Cómo detener un proceso de pantalla en Linux?

  5. ¿Cómo verificar si el kernel de Linux está habilitado para Retpoline o no?

Cómo usar GNU Screen para administrar sesiones de terminal en Linux

Cómo usar la pantalla de Linux

Cómo comprobar la versión de Linux

Cómo iniciar automáticamente la sesión de pantalla en Linux al iniciar sesión

Cómo verificar el espacio de intercambio en Linux

Cómo encontrar qué versión de Linux está ejecutando