C'è un modo per assegnare un nome particolare a una sessione schermo unix? Ad esempio, supponiamo che sto eseguendo lo stesso programma più volte, ognuna con parametri diversi e voglio dire quale è quale.
C'è un modo per assegnare un nome particolare a una sessione schermo unix? Ad esempio, supponiamo che sto eseguendo lo stesso programma più volte, ognuna con parametri diversi e voglio dire quale è quale.
Risposte:
È possibile nominare una sessione all'avvio con l' -S name
opzione. Dall'interno di una schermata corrente, è possibile modificarlo digitando CTRL-a, :sessionname name
. È possibile visualizzare le sessioni dello schermo in esecuzione con screen -ls
e connettersi a uno per nome con screen -xS name
.
All'interno di una singola sessione dello schermo, puoi anche assegnare un nome a ciascuna finestra. Fallo digitando CTRL-a, A
quindi il nome desiderato. È possibile visualizzare un elenco interattivo di finestre con nome digitando CTRL-a, "
e selezionare quello a cui si desidera passare da tale elenco.
La denominazione di schermate e terminali all'interno di schermate è davvero utile per ricordare cosa sono e perché li hai iniziati in primo luogo.
:sessionname NEWNAME
), ma è "generalmente scoraggiato". La $STY
variabile d'ambiente fa ancora riferimento al nome originale. Vedi il screen
manuale: gnu.org/software/screen/manual/html_node/Session-Name.html
Ci sono due concetti qui, e non sono sicuro di quello che hai in mente:
C-a c
crea una finestra, C-a n
e C-a p
passare alla finestra successiva / precedente, e così via.-r
o -R
) crea una nuova sessione.Windows ha titoli, che possono essere impostati tramite l' -t
opzione della riga di comando, l' C-a A
associazione dei tasti, il title
comando o la \ek
sequenza di escape. Vedi la risposta di Shellter per maggiori dettagli.
Le sessioni possono avere nomi. In genere si imposta il nome sulla riga di comando con l' -S
opzione; se non si specifica un nome, lo schermo ne crea uno. Se utilizzi più sessioni dello schermo, in genere daresti loro nomi di sessione diversi. È possibile elencare la sessione dello schermo in esecuzione con screen -ls
; la prima parola su ogni riga di sessione è 12345.sessionname
dove 12345 è l'ID del processo dello schermo. Utilizzare screen -r sessionname
o screen -r 12345
per riprendere una sessione indicata tramite il nome o l'ID processo.
Ah ... Schermo, mi riporta indietro ;-)
Per una finestra
-t name
sets the title (a.k.a.) for the default shell or specified program.
See also the "shelltitle" .screenrc command.
Per le sessioni multiple avviate dal tuo .screenrc
screen -t top 2 nice top
screen -t ....
Ecco un link a una copia online della pagina man per lo schermo.
Modifica: aggiunto
Per modificare il nome delle schermate correnti, creare uno strumento di script shell come
cat scrnTitle.sh
#/bin/bash
echo -ne '\ek${0}\e\\'
Non testato, non ho uno schermo disponibile sul sistema su cui sto lavorando.
screen
almeno 25 anni. Mi riporta indietro, perché ora è un caso d'uso speciale che mi porterebbe screen
. Normalmente continuo ad aprire X-Terms
, ma ricordo quando sembrava impossibile correre X
su un PC 486 ;-) Saluti!
Le risposte sopra ti dicono già come nominare una schermata quando la avvii. Sottolineano inoltre che uno schermo non può essere rinominato dopo che è stato avviato. È possibile impostare il titolo della finestra ma il nome utilizzato per allegare allo schermo rimane pid.pty.host.
Tuttavia, per ottenere un effetto utile ho scoperto che l'uso dell'alias funziona piuttosto bene. Se dimentico di nominare una schermata o mi ritrovo in una sessione con un gruppo di schermate che sono diventate naturalmente schermate per compiti particolari, ho semplicemente impostato un alias per il comando da associare a loro.
esempio:
alias goncompile='screen -r 2354'
Emettere il comando alias da solo ti ricorderà quali schermate hai e il comando che hai impostato per collegarle.
Utilizzare unalias
per rimuoverli.