Come assegnare un nome per uno schermo? [chiuso]


471

Sto usando lo screenstrumento multiplexer sulla shell dei comandi e apro molte schermate. Dimentico quindi quale ID processo è associato a quale attività.

Vorrei impostare un nome per uno schermo ma non riesco a trovare un'opzione nella manpage.

Attualmente, l'elenco delle schermate è simile al seguente:

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.

E vorrei vedere qualcosa del genere:

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

Come posso fare questo?


4
la domanda sembra più come se stesse chiedendo "come rinominare le sessioni esistenti" piuttosto che "come iniziare nuove sessioni con un nome". In tale contesto, la risposta attualmente scelta non è davvero appropriata. La risposta corretta dovrebbe piuttosto essere quella data da user164176- stackoverflow.com/a/3309696/636762
Rakib

I nomi delle sessioni dello schermo suggeriscono che è possibile creare una nuova sessione dello schermo per una singola attività (forse un singolo comando). Lo schermo supporta più finestre , quindi puoi eseguire tutte queste attività in una singola sessione dello schermo.
Melebio

3
Questo può essere migrato su SuperUser (o su qualche altro sito StackExchange)? Ovviamente è abbastanza utile per molte persone, anche se non rientra nell'ambito di questo particolare sito.
Patrick Sanan,

1
se trovi un'opzione su questo sito per spostarlo lì con tutta la cronologia, allora accetterei di spostarlo
spankmaster79

Risposte:


652

Per iniziare una nuova sessione

screen -S your_session_name

Per rinominare una sessione esistente

Ctrl+ a, nome :sessione YOUR_SESSION_NAMEEnter

Devi essere all'interno della sessione


14
Questa è la soluzione appropriata poiché si concentra sulla ridenominazione della sessione esistente piuttosto che sulla creazione di una nuova.
Grazie

4
Una breve nota sulla C-a :sintassi .... "Tutti i comandi su schermo sono preceduti da un tasto Esc, per impostazione predefinita C-a(ovvero Control-a, a volte scritto ^a). Per inviare un valore letterale C-aai programmi sullo schermo, utilizzare C-a a. Questo è utile quando si lavora con schermo all'interno dello schermo. Ad esempio, C-a a nlo schermo verrà spostato in una nuova finestra sullo schermo all'interno dello schermo. " (ref: aperiodic.net/screen/quick_reference )
Nate Ritter

Molto apprezzato. Anche se so che puoi iniziare con un nome, spesso inizio senza nominare, quindi vorrei poterlo fare in seguito. Grazie!
Ketzak,

2
concordato dopo averlo visto un paio di anni dopo: D
spankmaster79,

Posso associare C-a :sessionname NEWNAMEa qualcosa di più veloce da digitare? Ci ho provato bind $ sessionnamema ora quando C-a $non mi viene richiesto un nuovo nome. È in qualche modo possibile?
andreas-h

592

Per creare una nuova schermata con il nome foo, utilizzare

screen -S foo

Quindi per ricollegarlo, eseguire

screen -r foo  # or use -x, as in
screen -x foo  # for "Multi display mode" (see the man page)

16
Nella tua soluzione spieghi come crearne di nuovi con nomi corretti anziché modificare quelli esistenti. Non c'è nessuno che voglia terminare la sessione se è possibile mantenerla.
Grazie

10
Scorri verso il basso fino alla risposta di user164176 per vedere come rinominare le sessioni esistenti.
jlh

1
la domanda sembra più come se stesse chiedendo "come rinominare le sessioni esistenti" piuttosto che "come iniziare nuove sessioni con un nome". In tale contesto, la risposta attualmente scelta non è davvero appropriata. La risposta corretta scelta dovrebbe piuttosto essere quella data da user164176- stackoverflow.com/a/3309696/636762 sotto
Rakib

Ho cercato "Ubuntu creare una nuova schermata con il nome" su Google e questo è stato il primo risultato. Esattamente quello che stavo cercando :) grazie
Skylord123

Per rinominare una sessione: Ctrl + a,: sessionname YOUR_SESSION_NAME Invio.
Slake,

51

Come già detto, screen -S SESSIONTITLEfunziona per iniziare una sessione con un titolo ( SESSIONTITLE), ma se si avvia una sessione e successivamente si decide di cambiarne il titolo. Ciò può essere realizzato utilizzando i tasti di scelta rapida predefiniti:

Ctrl+ a,A

Quale richiede:

Set windows title to:SESSIONTITLE

Cambia SESSIONTITLEda backspacing e digitando il titolo desiderato. Per confermare la modifica del nome ed elencare tutti i titoli.

Ctrl+ a,"


40
Stai trattando i termini sessione e finestra come intercambiabili quando non lo sono. Ctrl+a, Anon imposta il nome della sessione ( SESSIONNAME), imposta solo il titolo della finestra corrente . I titoli delle finestre all'interno di una sessione non compaiono nella lista delle sessioni quando interrogato con screen -list. La domanda chiede come impostare il nome della sessione .
StvnW

5
utile ma cambia il titolo della finestra corrente, non il nome della sessione.
Znik,

13

Il modo più semplice usa lo schermo con il nome

screen -S 'name' 'application'
  • Ctrl+ a, d= esci e lascia aperta l'applicazione

Ritorna allo schermo:

screen -r 'name'

per esempio usando la lince con lo schermo

Crea schermata:

screen -S lynx lynx

Ctrl+ a, d= uscita

successivamente puoi tornare con:

screen -r lynx

18
Tre problemi con questo. Innanzitutto, diverse persone hanno già pubblicato questo. In secondo luogo, gli stai dicendo cose di base sull'utilizzo dello schermo che già conosce. Terzo, in realtà non hai risposto alla domanda, poiché ha chiesto come nominare una sessione di schermo già esistente.
Steely Dan,

0

Sono un principiante per lo schermo, ma lo trovo immensamente utile durante il ripristino delle connessioni perse. Alla tua domanda è già stata data una risposta, ma queste informazioni potrebbero servire da add-on - uso putty con putty connection manager e dai un nome alle mie schermate - "tab1", "tab2", ecc. - come per me l'immagine generale dell'8-10 le schede sono più importanti di ogni singolo nome di scheda. Uso l'ottava scheda per collegarmi a db, la settima per visualizzare i registri, ecc. Quindi quando voglio ricollegare i miei schermi ho scritto un semplice wrapper che dice:

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

dove primo argomento è il numero di scheda.


1
Questo potrebbe essere fatto meglio come funzione bash.
Paul Price,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.