Comment attribuer un nom à un écran? [fermé]

471

J'utilise l' screenoutil multiplexeur sur le shell de commande et ouvre beaucoup d'écrans. J'oublie ensuite quel ID de processus est associé à quelle tâche.

Je voudrais définir un nom pour un écran mais je ne trouve pas d'option dans la page de manuel.

Actuellement, la liste des écrans ressemble à ceci:

There are screens on:
    5422.pts-1.aws1 (Detached)
    5448.pts-1.aws1 (Detached)
    5027.pts-1.aws1 (Detached)
3 Sockets in /var/run/screen/S-sb.

Et je voudrais voir quelque chose comme ça:

There are screens on:
    5422.logCleanWorker (Detached)
    5448.overNightLongTask(Detached)
    5027.databaseOverNightLongTask (Detached)
3 Sockets in /var/run/screen/S-sb.

Comment puis-je faire ceci?

spankmaster79
la source
4
la question ressemble plus à demander "comment renommer les sessions existantes" plutôt que "comment démarrer de nouvelles sessions avec un nom". Dans ce contexte, la réponse actuellement choisie n'est pas vraiment appropriée. La bonne réponse devrait plutôt être celle donnée par user164176- stackoverflow.com/a/3309696/636762
Rakib
Les noms de vos sessions d'écran suggèrent que vous créez une nouvelle session d'écran pour une seule tâche (peut-être une seule commande). Screen prend en charge plusieurs fenêtres , vous pouvez donc exécuter toutes ces tâches en une seule session d'écran.
Melebius
3
Peut-il être migré vers SuperUser (ou vers un autre site StackExchange)? De toute évidence, il est très utile à beaucoup de gens, bien qu'il soit hors de portée de ce site particulier.
Patrick Sanan
1
si vous trouvez une option sur ce site pour le déplacer là avec toute l'histoire, alors je serais d'accord pour le déplacer
spankmaster79

Réponses:

652

Pour démarrer une nouvelle session

screen -S your_session_name

Pour renommer une session existante

Ctrl+ a, nom de :session YOUR_SESSION_NAMEEnter

Vous devez être à l'intérieur de la session

user164176
la source
14
Il s'agit de la solution appropriée car elle se concentre sur le changement de nom de la session existante plutôt que sur la création d'une nouvelle.
thanos.a
4
Une brève note sur la C-a :syntaxe .... "Toutes les commandes d'écran sont préfixées par une touche d'échappement, par défaut C-a(c'est Control-a, parfois écrit ^a). Pour envoyer un littéral C-aaux programmes à l'écran, utilisez C-a a. Ceci est utile lorsque vous travaillez avec l'écran dans l'écran. Par exemple C-a a n, déplacer l'écran vers une nouvelle fenêtre sur l'écran dans l'écran. " (ref: aperiodic.net/screen/quick_reference )
Nate Ritter
Très appréciée. Même si je sais que vous pouvez commencer par un nom, je commence souvent sans nommer, puis j'aimerais pouvoir le faire plus tard. Merci!
Ketzak
2
d'accord après l'avoir regardé quelques années plus tard: D
spankmaster79
Puis-je lier le C-a :sessionname NEWNAMEà quelque chose de plus rapide à taper? J'ai essayé bind $ sessionnamemais maintenant, quand C-a $ça ne me demande pas un nouveau nom. Est-ce possible d'une manière ou d'une autre?
andreas-h
592

Pour créer un nouvel écran avec le nom foo, utilisez

screen -S foo

Ensuite, pour le rattacher, exécutez

screen -r foo  # or use -x, as in
screen -x foo  # for "Multi display mode" (see the man page)
miedwar
la source
16
Dans votre solution, vous expliquez comment en créer de nouveaux avec des noms corrects plutôt que de changer les noms existants. Il n'y a personne qui veuille mettre fin à la session s'il est possible de la conserver.
thanos.a
10
Faites défiler jusqu'à la réponse de user164176 pour voir comment renommer les sessions existantes.
jlh
1
la question ressemble plus à demander "comment renommer les sessions existantes" plutôt que "comment démarrer de nouvelles sessions avec un nom". Dans ce contexte, la réponse actuellement choisie n'est pas vraiment appropriée. La bonne réponse choisie devrait plutôt être celle donnée par user164176- stackoverflow.com/a/3309696/636762 ci
Rakib
J'ai recherché "ubuntu créer un nouvel écran avec le nom" sur google et c'était le premier résultat. Exactement ce que je cherchais :) merci
Skylord123
Pour renommer une session: Ctrl + a,: sessionname YOUR_SESSION_NAME Entrez.
Slake
51

Comme déjà indiqué, screen -S SESSIONTITLEfonctionne pour démarrer une session avec un titre ( SESSIONTITLE), mais si vous démarrez une session et décidez plus tard de changer son titre. Cela peut être accompli en utilisant les raccourcis clavier par défaut:

Ctrl+ a,A

Ce qui invite:

Set windows title to:SESSIONTITLE

Modifiez SESSIONTITLEen reculant et en tapant le titre souhaité. Pour confirmer le changement de nom et répertorier tous les titres.

Ctrl+ a,"

E4Y
la source
40
Vous traitez les termes session et fenêtre comme interchangeables lorsqu'ils ne le sont pas. Ctrl+a, Ane définit pas le nom de la session ( SESSIONNAME), il définit uniquement le titre de la fenêtre actuelle . Les titres des fenêtres d'une session n'apparaissent pas dans la liste des sessions lorsque vous y êtes interrogé screen -list. La question demande comment définir le nom de la session .
StvnW
5
utile mais il change le titre de la fenêtre actuelle, pas le nom de la session.
Znik
13

L'écran le plus simple pour utiliser le nom

screen -S 'name' 'application'
  • Ctrl+ a, d= quitter et laisser l'application ouverte

Revenir à l'écran:

screen -r 'name'

par exemple en utilisant lynx avec écran

Créer un écran:

screen -S lynx lynx

Ctrl+ a, d= sortie

plus tard, vous pourrez revenir avec:

screen -r lynx
OneOFPunx
la source
18
Trois problèmes avec cela. Tout d'abord, plusieurs personnes l'ont déjà posté. Deuxièmement, vous lui dites des trucs de base sur l'utilisation de l'écran qu'il connaît déjà. Troisièmement, vous n'avez pas réellement répondu à la question, car il a demandé comment nommer une session d'écran déjà existante.
Steely Dan
0

Je suis un débutant en matière d'écran, mais je le trouve extrêmement utile lors de la restauration de connexions perdues. Votre question a déjà été répondue mais cette information peut servir d'add-on - j'utilise putty avec putty connection manager et nomme mes écrans - "tab1", "tab2", etc. - quant à moi la vue d'ensemble du 8-10 onglets est plus important que chaque nom d'onglet individuel. J'utilise le 8e onglet pour me connecter à db, le 7e pour afficher les journaux, etc. Donc, quand je veux rattacher mes écrans, j'ai écrit un simple wrapper qui dit:

#!/bin/bash
screen -d -r tab$1

où le premier argument est le numéro de tabulation.

Saurabh Hirani
la source
1
Cela pourrait être mieux fait en tant que fonction bash.
Paul Price