Est-il possible de donner un nom particulier à une session écran Unix? Par exemple, disons que j'exécute le même programme plusieurs fois, chacun avec des paramètres différents et que je veux dire lequel est lequel.
Est-il possible de donner un nom particulier à une session écran Unix? Par exemple, disons que j'exécute le même programme plusieurs fois, chacun avec des paramètres différents et que je veux dire lequel est lequel.
Réponses:
Vous pouvez nommer une session lorsque vous la démarrez avec l' -S name
option. À partir d'un écran en cours d'exécution, vous pouvez le modifier en tapant CTRL-a, :sessionname name
. Vous pouvez afficher les sessions d'écran en cours avec screen -ls
et vous connecter à l'une par leur nom avec screen -xS name
.
Dans une session d'écran unique, vous pouvez également nommer chaque fenêtre. Faites ceci en tapant CTRL-a, A
ensuite le nom que vous voulez. Vous pouvez afficher une liste interactive de fenêtres nommées en les saisissant CTRL-a, "
, puis sélectionner celle que vous souhaitez utiliser dans cette liste.
Nommer à la fois les écrans et les terminaux dans les écrans est vraiment utile pour se rappeler de ce qu’ils sont et de la raison pour laquelle vous les avez démarrés.
:sessionname NEWNAME
), mais il est "généralement déconseillé". La $STY
variable d'environnement fait toujours référence au nom d'origine. Voir le screen
manuel: gnu.org/software/screen/manual/html_node/Session-Name.html
Il y a deux concepts ici, et je ne suis pas sûr de savoir lequel vous avez en tête:
C-a c
crée une fenêtre C-a n
et C-a p
passe à la fenêtre suivante / précédente, etc.-r
ou -R
) crée une nouvelle session.Les titres de Windows peuvent être définis via l' -t
option de ligne de commande, la C-a A
liaison de clé, la title
commande ou la \ek
séquence d'échappement. Voir la réponse du shellter pour plus de détails.
Les sessions peuvent avoir des noms. Vous définissez généralement le nom sur la ligne de commande avec l' -S
option; si vous ne spécifiez pas de nom, l’écran en crée un. Si vous utilisez plusieurs sessions d'écran, vous leur donnerez généralement un nom différent. Vous pouvez lister la session d'écran en cours avec screen -ls
; le premier mot sur chaque ligne de session est 12345.sessionname
où 12345 est l'ID de processus d'écran. Utilisez screen -r sessionname
ou screen -r 12345
pour reprendre une session indiquée par son nom ou son ID de processus.
Ah ... Écran, ça me ramène ;-)
Pour une fenêtre
-t name
sets the title (a.k.a.) for the default shell or specified program.
See also the "shelltitle" .screenrc command.
Pour plusieurs sessions démarrées depuis votre .screenrc
screen -t top 2 nice top
screen -t ....
Voici un lien vers une copie en ligne de la page de manuel pour écran.
Edit: ajouté
Pour changer le nom de l'écran actuel, créez un outil de script shell comme
cat scrnTitle.sh
#/bin/bash
echo -ne '\ek${0}\e\\'
Non testé, je n'ai pas d'écran disponible sur le système sur lequel je travaille.
screen
au moins 25 ans. Me reprend, parce que maintenant c'est un cas d'utilisation spécial qui m'emmènerait screen
. Normalement, je continue à ouvrir X-Terms
, mais je me souviens quand il semblait impossible de fonctionner X
sur un PC 486 ;-) A la vôtre!
Les réponses ci-dessus vous indiquent déjà comment nommer un écran lorsque vous le démarrez. Ils soulignent également qu’un écran ne peut plus être renommé après son démarrage. Le titre de la fenêtre peut être défini, mais le nom utilisé pour attacher à l'écran reste pid.pty.host.
Cependant, pour obtenir un effet utile, j’ai constaté que l’utilisation d’alias fonctionnait plutôt bien. Si j'oublie de nommer un écran ou si je me trouve dans une session avec un groupe d'écrans en place qui sont naturellement devenus des écrans pour des tâches particulières, je définis simplement un alias pour que la commande s'y attache.
Exemple:
alias goncompile='screen -r 2354'
L’émission de la commande alias par elle-même vous rappellera les écrans que vous avez en place et la commande que vous avez définie pour les y associer.
Utilisez unalias
pour les enlever.