271
contributi
mNessun oggetto della modifica |
(si procede a pezzetti) |
||
Riga 12: | Riga 12: | ||
== | == 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 | <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 == | |||
contributi