GNU/Linux >> Tutoriels Linux >  >> Linux

Comment vérifier si vous êtes en session d'écran ou pas sous Linux

Ce bref guide explique comment vérifier si vous êtes dans Screen session ou non sous Linux. Comme vous l'avez peut-être remarqué, lorsque vous lancez un Tmux session, vous verrez évidemment les détails de la session, tels que le nom SHELL actuel, le nom d'hôte et la date et l'heure actuelles, dans la barre d'état en bas, comme indiqué dans l'image ci-dessous.

Détails de la session Tmux

Mais vous ne verrez pas ces détails lorsque vous serez dans les sessions Screen. Voici à quoi ressemble la session screen sur mon système Ubuntu :

Séance d'écran

Pouvez-vous repérer la différence? La session d'écran et la session normale ressembleront exactement à la même chose. Exécutons la commande "screen -ls" pour lister les sessions d'écran en cours d'exécution.

$ screen -ls

Exemple de résultat :

Liste des sessions d'écran

Voir? Je suis dans la session Screen, mais cela ressemble à une session normale. Il n'y a aucune indication dans la barre d'état en bas. Comment savoir si vous travaillez dans une session Screen ou non ? C'est ce que nous allons découvrir maintenant.

Vérifiez si vous êtes en session d'écran ou pas sous Linux

Il existe plusieurs façons de vérifier si nous sommes en session Screen. Ici, j'ai donné trois méthodes.

Méthode 1 - Utilisation de la commande "echo"

Pour vérifier si vous êtes en session Screen ou non, exécutez simplement la commande suivante :

$ echo $STY

Si vous êtes dans la session Screen, vous verrez une sortie comme ci-dessous.

18704.pts-0.ostechnix

Voici une autre façon de vérifier si vous êtes en session Screen :

$ echo $TERM

Vous verrez le terme "écran" dans la sortie.

Exemple de résultat :

screen.xterm-256color

Vérifiez si vous êtes en session d'écran sous Linux

S'il n'y avait pas de sessions d'écran en cours d'exécution, vous ne verrez rien pour la première commande. Et pour la deuxième commande, il n'y aura pas le terme "écran" dans la sortie. Il suffit de quitter ou de se détacher de la session d'écran et d'exécuter à nouveau les commandes ci-dessus. Vous verrez une sortie comme ci-dessous.

Vérifier les sessions d'écran

Voir? Nous ne sommes pas dans la session Screen.

Les deux commandes ci-dessus ne fonctionneront que si vous êtes dans la session d'écran en cours d'exécution sur votre système local. Cela ne fonctionnera pas si vous démarrez la session Screen dans le système local, puis accédez à un autre système sur le réseau via SSH.

Dans ce cas, vous pouvez utiliser la deuxième méthode indiquée ci-dessous.

Méthode 2 - Utilisation de la touche de préfixe d'écran

Pour vérifier si nous sommes en session Screen ou non, appuyez simplement sur Ctrl+a puis Ctrl+t clés. Cela affichera l'heure et le nom de l'hôte si vous êtes en session Screen.

Jetez un œil à la démo suivante.

Vérifiez si vous êtes en session Screen à l'aide de la touche de préfixe Screen

Comme vous dans la sortie ci-dessus,

  • Tout d'abord, j'ai démarré une session Screen et j'ai appuyé sur les touches Ctrl+a et Ctrl+t pour vérifier si je suis en session Screen.
  • Ensuite, je me suis détaché de la session Screen en appuyant sur Ctrl+a et d .
  • Et enfin, je me suis reconnecté à la session Screen et j'ai appuyé sur Ctrl+a et Ctrl+t pour vérifier à nouveau si je suis en session Screen.

Cette méthode fonctionnera même si vous êtes connecté en SSH ailleurs.

Méthode 3 - Utilisation de la commande Légende

Si vous n'aimez pas appuyer sur les touches à chaque fois, vous pouvez ajouter le code suivant dans votre ~/.screenrc dossier. Si ce fichier n'est pas disponible, créez-le simplement.

$ nano ~/.screenrc

Ajoutez le code :

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

Enregistrez et fermez le fichier.

À partir de maintenant, chaque fois que vous lancez une session Screen, vous verrez une petite barre de notification (avec notamment le nom d'hôte, l'heure et la date, la charge du système, etc.) en bas de la fenêtre du terminal, comme indiqué ci-dessous.

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

Afficher les détails de la session d'écran au bas de la fenêtre du terminal à l'aide de la commande Légende

Cette barre de notification disparaîtra une fois que vous aurez quitté la session Screen.

Méthode 4 - Définir une invite Bash différente pour les sessions Screen

C'est encore une autre façon de rendre les sessions Screen facilement reconnaissables en ajoutant quelques lignes de code dans ~/.bashrc dossier. En fait, cette méthode n'est pas recommandée . Cela peut causer de nombreux problèmes inutiles si un autre shell comme zsh hérite de votre shell actuel. Ceci est juste à des fins éducatives uniquement. Utilisez-le à vos risques et périls !

Tout d'abord, sauvegardez votre ~/.bashrc actuel fichier :

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

Définissez simplement un nom d'invite Bash différent pour les sessions normales et Screen comme vous le souhaitez, comme ci-dessous. Par exemple, j'ai ajouté les lignes suivantes dans mon ~/.bashrc fichier.

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

Déconnectez-vous et reconnectez-vous. Le nom de l'invite de votre terminal changera en fonction de vos paramètres pendant que vous basculez entre les sessions normales et écran.

Définir une invite Bash différente pour les sessions Screen

Encore une fois, ce n'est pas une bonne pratique de changer le nom de l'invite Bash. Au lieu de cela, utilisez simplement l'une des méthodes précédentes pour vérifier si vous êtes en session Screen ou non.

Lire connexe :

  • Comment personnaliser l'invite Bash sous Linux

J'espère que cela vous aidera.


Linux
  1. Comment savoir quelle distribution Linux vous utilisez ?

  2. Comment vérifier l'historique de connexion Linux

  3. Comment trouver le shell que vous utilisez sous Linux

  4. Comment arrêter un processus d'écran sous Linux?

  5. Sous Linux, comment vérifier si un disque est fragmenté ?

Comment utiliser l'écran GNU pour gérer les sessions de terminal sous Linux

Comment utiliser l'écran Linux

Comment vérifier la version Linux

Comment démarrer automatiquement une session d'écran sous Linux lors de la connexion

Comment vérifier l'espace d'échange sous Linux

Comment trouver la version de Linux que vous utilisez