¿Cómo asignar nombre a una pantalla? [cerrado]

471

Estoy usando la screenherramienta multiplexor en el shell de comandos y abro muchas pantallas. Luego olvido qué ID de proceso se asocia con qué tarea.

Me gustaría establecer un nombre para una pantalla, pero no puedo encontrar una opción en la página de manual.

Actualmente, enumerar las pantallas se ve así:

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.

Y me gustaría ver algo como esto:

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

¿Cómo puedo hacer esto?

spankmaster79
fuente
44
la pregunta se parece más a preguntar "cómo cambiar el nombre de las sesiones existentes" en lugar de "cómo iniciar nuevas sesiones con un nombre". En ese contexto, la respuesta elegida actualmente no es realmente apropiada. La respuesta correcta debería ser la dada por user164176: stackoverflow.com/a/3309696/636762
Rakib
Los nombres de sus sesiones de pantalla sugieren que cree una nueva sesión de pantalla para una sola tarea (quizás un solo comando). Screen admite varias ventanas , por lo que puede ejecutar todas estas tareas en una sola sesión de pantalla.
Melebius
3
¿Se puede migrar a SuperUser (o algún otro sitio de StackExchange)? Obviamente, es bastante útil para muchas personas, aunque está fuera del alcance de este sitio en particular.
Patrick Sanan el
1
si encuentra una opción en este sitio para moverla allí con toda la historia, entonces estaría de acuerdo en moverla
spankmaster79

Respuestas:

652

Para comenzar una nueva sesión

screen -S your_session_name

Para cambiar el nombre de una sesión existente

Ctrl+ a, nombre de :sesión YOUR_SESSION_NAMEEnter

Debes estar dentro de la sesión

usuario164176
fuente
14
Esta es la solución adecuada, ya que se centra en cambiar el nombre de la sesión existente en lugar de crear una nueva.
thanos.a
44
Una nota rápida sobre la C-a :sintaxis ... "Todos los comandos de la pantalla tienen como prefijo una tecla de escape, por defecto C-a(eso es Control-a, a veces escrito ^a). Para enviar un literal C-aa los programas en pantalla, use C-a a. Esto es útil cuando se trabaja con pantalla dentro de la pantalla. Por ejemplo C-a a n, moverá la pantalla a una nueva ventana en la pantalla dentro de la pantalla ". (ref: aperiodic.net/screen/quick_reference )
Nate Ritter
Muy apreciado. Aunque sé que puedes comenzar con un nombre, a menudo empiezo sin nombrar, luego desearía poder más tarde. ¡Gracias!
Ketzak
2
acordado después de mirarlo un par de años después: D
spankmaster79
¿Puedo vincular C-a :sessionname NEWNAMEa algo más rápido para escribir? Lo intenté bind $ sessionnamepero ahora cuando C-a $no me pide un nuevo nombre. ¿Es eso de alguna manera posible?
andreas-h
592

Para crear una nueva pantalla con el nombre foo, use

screen -S foo

Luego, para volver a colocarlo, ejecute

screen -r foo  # or use -x, as in
screen -x foo  # for "Multi display mode" (see the man page)
miedwar
fuente
16
En su solución, explica cómo crear nuevos con nombres correctos en lugar de cambiar los existentes. No hay ninguno que quiera terminar la sesión si es posible mantenerla.
thanos.a
10
Desplácese hacia abajo hasta la respuesta del usuario 164176 para ver cómo cambiar el nombre de las sesiones existentes.
jlh
1
la pregunta se parece más a preguntar "cómo cambiar el nombre de las sesiones existentes" en lugar de "cómo iniciar nuevas sesiones con un nombre". En ese contexto, la respuesta elegida actualmente no es realmente apropiada. La respuesta correcta elegida debería ser la dada por user164176: stackoverflow.com/a/3309696/636762 a continuación
Rakib
Busqué "ubuntu crea una nueva pantalla con nombre" en google y este fue el primer resultado. Exactamente lo que estaba buscando :) gracias
Skylord123
Para cambiar el nombre de una sesión: Ctrl + a,: sessionname YOUR_SESSION_NAME Enter.
Slake
51

Como ya se dijo, screen -S SESSIONTITLEfunciona para comenzar una sesión con un título (SESSIONTITLE ), pero si comienza una sesión y luego decide cambiar su título. Esto se puede lograr utilizando las asociaciones de teclas predeterminadas:

Ctrl+a,A

¿Qué indica:

Set windows title to:SESSIONTITLE

Cambio SESSIONTITLE retrocediendo y escribiendo el título deseado. Para confirmar el cambio de nombre y enumerar todos los títulos.

Ctrl+ a,"

E4Y
fuente
40
Está tratando los términos sesión y ventana como intercambiables cuando no lo son. Ctrl+a, Ano establece el nombre de la sesión ( SESSIONNAME), solo establece el título de la ventana actual . Los títulos de ventanas dentro de una sesión no aparecen en la lista de sesiones cuando se consulta con ellos screen -list. La pregunta pregunta cómo configurar el nombre de la sesión .
StvnW
55
útil pero cambia el título de la ventana actual, no el nombre de la sesión.
Znik
13

La forma más fácil de usar la pantalla con nombre

screen -S 'name' 'application'
  • Ctrl+ a, d= salir y dejar la aplicación abierta

Regresar a la pantalla:

screen -r 'name'

por ejemplo usando lince con pantalla

Crear pantalla:

screen -S lynx lynx

Ctrl+ a, d= salir

luego puedes regresar con:

screen -r lynx
OneOFPunx
fuente
18
Tres problemas con esto. Primero, varias personas ya han publicado esto. Segundo, le estás diciendo cosas básicas sobre el uso de la pantalla que ya sabe. Tercero, en realidad no respondiste la pregunta, ya que él preguntó cómo nombrar una sesión de pantalla ya existente.
Steely Dan
0

Soy un principiante en la pantalla, pero lo encuentro inmensamente útil al restaurar conexiones perdidas. Su pregunta ya ha sido respondida, pero esta información puede servir como complemento: uso masilla con el administrador de conexión de masilla y nombro mis pantallas: "tab1", "tab2", etc., en cuanto a mí, la imagen general del 8-10 pestañas es más importante que cada nombre de pestaña individual. Utilizo la octava pestaña para conectarme a db, la séptima para ver registros, etc. Entonces, cuando quiero volver a conectar mis pantallas, he escrito un contenedor simple que dice:

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

donde primer argumento es el número de tabulación.

Saurabh Hirani
fuente
1
Esto podría hacerse mejor como una función bash.
Paul Price