GNU/Linux >> Linux Esercitazione >  >> Linux

Come verificare se sei nella sessione dello schermo o meno in Linux

Questa breve guida spiega come verificare se sei in Schermo sessione o meno in Linux. Come avrai notato, quando avvii un Tmux sessione, vedrai ovviamente i dettagli della sessione, come il nome SHELL corrente, il nome host e la data e l'ora correnti, nella barra di stato in basso come mostrato nell'immagine sottostante.

Dettagli della sessione Tmux

Ma non vedrai tali dettagli quando sei all'interno delle sessioni di Screen. Ecco come appare la sessione dello schermo sul mio sistema Ubuntu:

Sessione schermo

Riesci a individuare la differenza? La sessione dello schermo e la sessione normale avranno esattamente lo stesso aspetto. Eseguiamo il comando "screen -ls" per elencare le sessioni dello schermo in esecuzione.

$ screen -ls

Risultato di esempio:

Elenca le sessioni dello schermo

Vedere? Sono all'interno della sessione Screen, ma sembra una sessione normale. Non vi è alcuna indicazione nella barra di stato in basso. Come fai a sapere se stai lavorando all'interno di una sessione Screen o meno? Questo è quello che scopriremo ora.

Verifica se sei in Screen Session o meno in Linux

Ci sono un paio di modi per verificare se siamo nella sessione dello schermo. Qui ho indicato tre metodi.

Metodo 1 - Utilizzo del comando "eco"

Per verificare se sei in sessione Screen o meno, esegui semplicemente il seguente comando:

$ echo $STY

Se sei all'interno della sessione Screen, vedrai un output come di seguito.

18704.pts-0.ostechnix

Ecco un altro modo per verificare se sei nella sessione Screen:

$ echo $TERM

Vedrai il termine "schermo" nell'output.

Risultato di esempio:

screen.xterm-256color

Controlla se sei nella sessione dello schermo in Linux

Se non c'erano sessioni dello schermo in esecuzione, non vedrai nulla per il primo comando. E per il secondo comando, non ci sarà il termine "schermo" nell'output. Basta uscire o staccare dalla sessione dello schermo ed eseguire nuovamente i comandi precedenti. Vedrai un output come di seguito.

Controlla le sessioni dello schermo

Vedere? Non siamo all'interno della sessione Screen.

I due comandi precedenti funzioneranno solo se sei nella sessione dello schermo in esecuzione sul tuo sistema locale. Non funzionerà se hai avviato la sessione Screen nel sistema locale e quindi accedi a qualche altro sistema sulla rete tramite SSH.

In tal caso, puoi utilizzare il secondo metodo indicato di seguito.

Metodo 2:utilizzo del tasto prefisso schermo

Per verificare se siamo in sessione Screen o meno, premi semplicemente Ctrl+a e poi Ctrl+t chiavi. Questo mostrerà l'ora e il nome host se sei nella sessione Screen.

Dai un'occhiata alla seguente demo.

Controlla se sei in una sessione Screen usando la chiave del prefisso Screen

Come nell'output sopra,

  • In primo luogo, ho avviato una sessione Screen e ho premuto i tasti Ctrl+a e Ctrl+t per verificare se sono nella sessione Screen.
  • Poi mi sono disconnesso dalla sessione Screen premendo Ctrl+a e d .
  • E alla fine mi sono ricollegato alla sessione Screen e ho premuto Ctrl+a e Ctrl+t per verificare di nuovo se sono nella sessione Screen.

Questo metodo funzionerà se lo sei anche se hai SSH da qualche altra parte.

Metodo 3:utilizzo del comando Didascalia

Se non ti piace premere i tasti ogni volta, puoi aggiungere il seguente codice nel tuo ~/.screenrc file. Se questo file non è disponibile, crealo.

$ nano ~/.screenrc

Aggiungi il codice:

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

Salva e chiudi il file.

D'ora in poi, ogni volta che avvierai una sessione Screen, vedrai una piccola barra di notifica (con inclusi nome host, ora e data, caricamento del sistema ecc.) nella parte inferiore della finestra del Terminale come mostrato di seguito.

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

Visualizza i dettagli della sessione dello schermo nella parte inferiore della finestra del terminale utilizzando il comando Didascalia

Questa barra di notifica scomparirà dopo l'uscita dalla sessione Screen.

Metodo 4:imposta un prompt Bash diverso per le sessioni Screen

Questo è un altro modo per rendere facilmente riconoscibili le sessioni Screen aggiungendo alcune righe di codice in ~/.bashrc file. In realtà questo non è un metodo consigliato . Potrebbe causare molti problemi inutili se un'altra shell come zsh eredita la tua shell corrente. Questo è solo a scopo educativo. Usalo a tuo rischio!

Innanzitutto, esegui il backup del tuo attuale ~/.bashrc file:

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

Basta impostare un nome del prompt Bash diverso per le sessioni normali e dello schermo come desideri di seguito. Ad esempio, ho aggiunto le seguenti righe nel mio ~/.bashrc file.

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

Esci e accedi nuovamente. Il nome del prompt del tuo terminale cambierà in base alle tue impostazioni mentre passi dalla sessione normale a quella dello schermo.

Imposta un prompt Bash diverso per le sessioni dello schermo

Ancora una volta, non è una buona pratica cambiare il nome del prompt di Bash. Invece, usa semplicemente uno dei metodi precedenti per verificare se sei nella sessione Screen o meno.

Lettura correlata:

  • Come personalizzare il prompt di Bash in Linux

Spero che questo aiuti.


Linux
  1. Come controllare la cronologia di accesso di Linux

  2. Come trovare quale shell stai usando su Linux

  3. Come fermare un processo dello schermo in Linux?

  4. In Linux, come si controlla se un disco è frammentato?

  5. Come verificare se il kernel Linux è abilitato o meno per Retpoline?

Come utilizzare GNU Screen per gestire le sessioni del terminale in Linux

Come utilizzare lo schermo Linux

Come controllare la versione di Linux

Come avviare automaticamente la sessione dello schermo su Linux durante l'accesso

Come controllare lo spazio di scambio in Linux

Come trovare la versione di Linux in esecuzione