GNU/Screen: differenze tra le versioni

si procede a pezzetti
mNessun oggetto della modifica
(si procede a pezzetti)
Riga 12: Riga 12:




== Configurazione ==
== Le basi ==
Superato il noioso messaggio di benvenuto (che rimuoveremo più avanti) ci si ritrova al solito prompt e nulla sembra cambiato, purtroppo il non mostrare da subito una barra di stato è una delle pecche di screen e la sua stessa configurazione è piuttosto ostica.
Superato il noioso messaggio di benvenuto (che rimuoveremo più avanti) ci si ritrova al solito prompt e nulla sembra cambiato, purtroppo il non mostrare da subito una barra di stato è una delle pecche di screen e la sua stessa configurazione è piuttosto ostica.


Riga 41: Riga 41:
  Ctrl-a c
  Ctrl-a c


<code>Ctrl-a</code> è l'attivatore e <code>'''c'''</code> la scorciatoia per il comando <code>screen</code>, perché all'interno della sessione ''screen'' apre una finestra, che di default prende il nome dalla variabile d'ambiente SHELL. <br>
<code>Ctrl-a</code> è l'attivatore e <code>'''c'''</code> la scorciatoia per il comando <code>screen</code>, perché all'interno della sessione, ''screen'' apre una finestra che di default prende il nome dalla variabile d'ambiente SHELL. <br>
Ora abbiamo due voci nella barra, la porzione blu indica la finestra attualmente in focus ed anche il suo aspetto "testuale" è diverso:
Ora abbiamo due voci nella barra, la porzione blu indica la finestra attualmente in focus ed anche il suo aspetto "testuale" è diverso:
  0$ bash  1-$* bash
  0$ bash  1-$* bash
Riga 53: Riga 53:




I comandi di uso comune hanno quasi tutti una scorciatoia ed è decisamente più comodo ma tutti sono comunque utilizzabili tramite il prompt, la manpage elenca tutte le scorciatoie predefinite e ogni singolo comando; leggetevelo con calma e, come vedremo più avanti, createvi nuove scorciatoie, anche sostituendo quelle predefinite che non ritenete utili. <br>
In questa guida ne verranno illustrate solo alcune con qualche consiglio ed esempio su come migliorare l'usabilità; alcuni comandi hanno due combinazioni per cui è piuttosto facile eliminarne una e associarla ad altro, fate attenzione perché sono tutte case-sensitive.
Una breve legenda con le eventuali combinazioni create e quindi presenti nel file di configurazione si ottiene con:
Ctrl-a ?
Ogni finestra è rinominabile a piacimento con:
Ctrl-a A
Al prompt dei comandi apparirà la scritta "Set window's title to: bash", basta cancellare il nome attuale e scrivere il desiderato.
E se vogliamo rinumerarla:
Ctrl-a :number
seguito da uno spazio e il nuovo numero.
Il metodo migliore per chiudere una finestra è terminare il processo in essa contenuto, '''solo''' in caso di problemi quali freeze o altro possiamo forzarne la chiusura (e uccidere il processo) con:
Ctrl-a k
Al prompt dei comandi apparirà il messaggio "Really kill this window [y/n]".
Visualizza data, hostname e carico del sistema (load average, quello solitamente mostrato dal comando uptime):
Ctrl-a t
Il messaggio apparirà in basso, sopra la statusbar, per alcuni secondi; per visualizzare l'ultimo messaggio di attività, qualunque esso sia, si usa:
Ctrl-a m
I messaggi di attività sono avvisi inviati da altre finestre in varie occasioni, se ad esempio abbiamo aptitude che lavora nella finestra zero e nel frattempo passiamo alla finestra uno per fare altro, quando aptitude finirà screen ci avvisa con "Activity in window %n", dove <code>''%n''</code> è sostituito dal numero della finestra. <br>
Il tempo di visualizzazione è impostato a 5 secondi ed è configurabile, possono sembrare pochi ma si scoprirà che talvolta sono anche troppi in quanto durante tale periodo il processo contenuto nella finestra corrente viene in un certo modo bloccato.
"Non mi piace, è complicato, mi sono impantanato e voglio uscire da questo casino!", ovvero come chiudere screen. <br>
La risposta è che è impossibile chiudere screen, non è stato concepito per essere terminato, perché usarlo altrimenti? ;) <br>
Ma se proprio non potete farne a meno:
Ctrl-a C-\
Questa è nuova, che diamine è quel "C-\"? Come dicevo prima ci sono alcuni comandi che hanno una doppia scorciatoia, solitamente per renderla più difficile da digitare per errore, in questo caso significa premere <code>Ctrl-a Ctrl-\</code> ma se volete davvero evitare brutte sorprese consiglio vivamente di eliminarla e usare il prompt quando occorre:
Ctrl-a :quit
Chiudere screen equivale ovviamente a chiudere tutte le finestre e terminare i processi della sessione, anche qui è consigliabile terminare i processi in modo pulito, almeno quelli importanti o che devono scrivere qualcosa su disco. In alternativa, terminato l'ultimo processo e chiusa l'ultima finestra terminerà anche screen e al prompt apparirà "[screen is terminating]".
Ma passiamo alle cose serie. screen deve restare attivo e insieme a lui tutto ciò che contiene, ma abbiamo bisogno di fare il logout (locale o via SSH), riavviare X, chiudere il terminale o altre operazioni esotiche (tranne riavviare la macchina); questa operazione si chiama ''detach'', ovvero stacchiamo screen da quello che è di fatto il suo contenitore, xterm o tty che sia:
Ctrl-a d
E per riattaccarlo digitiamo al prompt bash:
$ screen -r
Nel caso avessimo più di una sessione staccata andrà specificata quale si vuole. Il precedente comando mostrerà quelle disponibili:
<pre>
$ screen -r
There are several suitable screens on:
        4322.pts-17.jackinthebox        (15/10/2011 10:06:17)  (Detached)
        4088.pts-15.jackinthebox        (15/10/2011 10:00:17)  (Detached)
        4656.tty        (08/10/2011 01:00:48)  (Attached)
        1981.fugu      (07/10/2011 20:45:07)  (Attached)
Type "screen [-d] -r [pid.]tty.host" to resume one of them.
</pre>
L'argomento può essere l'intera stringa o parte di essa, per cui tutte e tre le seguenti combinazioni andranno bene:
$ screen -r 4322.pts-17.jackinthebox
$ screen -r 4322
$ screen -r pts-17
Ma abbiamo altre due stringe curiose, quelle sono le sessioni che uso abitualmente. Per personalizzarne il nome basterà avviare screen con:
$ screen -S fugu
e l'attach avverrà allo stesso modo:
$ screen -r fugu
Se invece volessimo attaccare in un altro terminale o tty una sessione già attaccata useremo:
$ screen -x
Questo può essere utile se ci si collega da un'altra macchina o si vuole condividere la sessione con un altro utente, sebbene per quest'ultima ipotesi ci siano dei comandi appositi.
Utilizzando <code>Ctrl-a</code> per screen non sarà più possibile usare tale combinazione in bash per andare ad inizio riga (beginning-of-line) o in Vim o altrove; in realtà non è usabile direttamente ma con:
Ctrl-a a
Il che, a seconda delle esigenze potrebbe essere scomodo, per cui possiamo eventualmente modificare l'attivatore ad esempio con un tasto nelle vicinanze come '''q''' oppure  '''s''' che sono associati al flow control e non ci interessa assolutamente avere, a patto che non interferisca con altre applicazioni. A scelta si può avviare screen con tale opzione:
$ screen -e ^Ss
o inserire <code>'''escape ^Ss'''</code> nel file di configurazione.
== Configurazione ==




271

contributi