Existe-t-il un moyen de donner un nom particulier à une session d'écran Unix? Par exemple, disons que j'exécute le même programme plusieurs fois, chacun avec des paramètres différents et je veux dire lequel est lequel.
Vous pouvez nommer une session lorsque vous la démarrez avec le -S name
option. Depuis 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 connectez-vous à l'un par son nom avec screen -xS name
.
Dans une même session d'écran, vous pouvez également nommer chaque fenêtre. Pour ce faire, tapez CTRL-a, A
puis le nom que vous voulez. Vous pouvez afficher une liste interactive des fenêtres nommées en tapant CTRL-a, "
, puis sélectionnez celui vers lequel vous souhaitez basculer dans cette liste.
Nommer les écrans et les terminaux dans les écrans est très utile pour se rappeler ce qu'ils sont et pourquoi vous les avez démarrés en premier lieu.
Il y a deux concepts ici, et je ne sais pas lequel vous avez en tête:
C-a c
Crée une fenêtre, C-a n
Et C-a p
Basculent vers la fenêtre suivante/précédente, etc.-r
Ou -R
) Crée une nouvelle session.Windows a des titres, qui peuvent être définis via l'option de ligne de commande -t
, La liaison de touche C-a A
, La commande title
ou la séquence d'échappement \ek
. Voir réponse du shellter pour plus de détails.
Les sessions peuvent avoir des noms. Vous devez généralement définir le nom sur la ligne de commande avec l'option -S
; 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 des noms de session différents. 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 à partir de votre .screenrc
screen -t top 2 Nice top
screen -t ....
Voici un lien vers une copie en ligne de la page de manuel pour l'écran.
Modifier: ajouté
Pour modifier le nom des écrans actuels, 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.
Lors de l'exécution de screen
:
Ctrl+a
(ou quelle que soit votre séquence d'échappement screen
) A
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 pas ê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 trouvé que l'utilisation de l'alias fonctionne plutôt bien. Si j'oublie de nommer un écran ou que je me retrouve dans une session avec un tas d'écrans qui sont naturellement devenus des écrans pour des tâches particulières, je définis simplement un alias pour la commande à y attacher.
exemple:
alias goncompile='screen -r 2354'
L'émission de la commande d'alias en elle-même vous rappellera les écrans que vous avez et la commande que vous avez configurée pour les attacher.
Utilisez unalias
pour les supprimer.