GNU/Screen: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
m
versioni compatibili
m (versioni compatibili)
 
(8 versioni intermedie di 3 utenti non mostrate)
Riga 1: Riga 1:
{{Versioni compatibili}}
{{Versioni compatibili|Wheezy|Jessie|Testing_2016|Unstable_2016}}
== Introduzione ==
== Introduzione ==
<code>GNU/Screen</code> è un multiplatore di terminale che esegue tanti "schermi" separati su un unico terminale, per questa ragione è paragonabile all'uso delle aree di lavoro (workspace) di un ambiente grafico e quindi possiamo considerarlo in un certo qual modo un Window Manager per applicazioni testuali e ncurses.
<code>GNU/Screen</code> è un multiplatore di terminale che esegue tanti "schermi" separati su un unico terminale, per questa ragione è paragonabile all'uso delle aree di lavoro (workspace) di un ambiente grafico e quindi possiamo considerarlo in un certo qual modo un Window Manager per applicazioni testuali e ncurses.
Riga 6: Riga 6:


== Installazione ==
== Installazione ==
Come sempre Debian rende tutto molto semplice:
Come sempre il sistema [[APT]] di Debian rende tutto molto semplice. Con [[privilegi di amministrazione]] è sufficiente:
<pre># aptitude install screen</pre>
<pre># apt-get install screen</pre>


== Utilizzo ==
== Utilizzo ==
<code>GNU/Screen</code> ha due tipi di utilizzo, tramite interfaccia e tramite riga di comando; premesso che visivamente la differenza è minima si può affermare che la prima modalità risulta prevalentemente utile in tutti quei casi dove è richiesta interazione con l'utente, mentre la seconda dove ciò non è vero, per esempio nell'esecuzione di script o di servizi come [[Cron|CRON]].
<code>GNU/Screen</code> ha due tipi di utilizzo, tramite interfaccia e tramite riga di comando; premesso che visivamente la differenza è minima si può affermare che la prima modalità risulta prevalentemente utile in tutti quei casi dove è richiesta interazione con l'utente, mentre la seconda dove ciò non è vero, per esempio nell'esecuzione di script o di servizi come [[Cron|Cron]].
Concretamente screen una volta avviato non fa altro che duplicare la schermata del terminale, quindi da un punto di vista visivo, ad eccezione del messaggio iniziale, non si noterà alcunché di differente rispetto al classico terminale. Ciò nonostante tutti gli eventuali comandi ed operazioni generiche eseguiti apparterranno esclusivamente al suddetto duplicato del terminale, "lasciando dunque libero" quello di base.<br/>
Concretamente screen una volta avviato non fa altro che duplicare la schermata del terminale, quindi da un punto di vista visivo, ad eccezione del messaggio iniziale, non si noterà alcunché di differente rispetto al classico terminale. Ciò nonostante tutti gli eventuali comandi ed operazioni generiche eseguiti apparterranno esclusivamente al suddetto duplicato del terminale, "lasciando dunque libero" quello di base.<br/>
Questo fatto in congiunzione con la possibilità di "abbandonare" il duplicato senza che questo comporti la terminazione di tutte le operazioni in corso permette di eseguire comodamente più operazioni in parallelo, basta infatti creare tanti duplicati quanti ne servono.<br/>
Questo fatto in congiunzione con la possibilità di "abbandonare" il duplicato senza che questo comporti la terminazione di tutte le operazioni in corso permette di eseguire comodamente più operazioni in parallelo, basta infatti creare tanti duplicati quanti ne servono.<br/>
Riga 28: Riga 28:
<pre>Ctrl-a :</pre>
<pre>Ctrl-a :</pre>


Il cursore si sposterà al fondo dove appariranno i due punti, questo è il prompt dei comandi, per intenderci è simile alla modalità comando di [[Vim Cheat Sheet | Vim]]; da qui possiamo impartire vari comandi che al momento non abbiamo nel file di configurazione o, in altri casi, che vogliamo solo per la sessione in corso.
Il cursore si sposterà al fondo dove appariranno i due punti, questo è il prompt dei comandi, per intenderci è simile alla modalità comando di [[Vim Cheat Sheet|Vim]]; da qui possiamo impartire vari comandi che al momento non abbiamo nel file di configurazione o, in altri casi, che vogliamo solo per la sessione in corso.


A questo punto, subito dopo i due punti, scriviamo:
A questo punto, subito dopo i due punti, scriviamo:
Riga 34: Riga 34:


e premiamo Invio. <br>
e premiamo Invio. <br>
Ora abbiamo una barra di stato, configuriamola in modo da avere un riscontro visivo delle finestre, questa volta dal prompt [[bash]] digitiamo:
Ora abbiamo una barra di stato, configuriamola in modo da avere un riscontro visivo delle finestre, questa volta dal [[prompt]] [[Bash]] digitiamo:
<pre>$ screen -X hardstatus string "$(man screen | grep %-L)"</pre>
<pre>$ screen -X hardstatus string "$(man screen | grep %-L)"</pre>


Riga 103: Riga 103:
* logout (locale o via [[SSH]]) dell'utente;
* logout (locale o via [[SSH]]) dell'utente;
* riavvio di X o chiusura del terminale (se si dispone di un ambiente grafico);
* riavvio di X o chiusura del terminale (se si dispone di un ambiente grafico);
* altre operazioni esotiche eccettuato il riavvio della macchina;
* altre operazioni esotiche eccettuato il riavvio della macchina.
Tutto ciò è reso possibile grazie alla funzione di ''detach'', ovvero la possibilità di "staccare" GNU/Screen da quello che è di fatto il suo contenitore, xterm o tty che sia:
Tutto ciò è reso possibile grazie alla funzione di ''detach'', ovvero la possibilità di "staccare" GNU/Screen da quello che è di fatto il suo contenitore, Xterm o tty che sia:
<pre>Ctrl-a d</pre>
<pre>Ctrl-a d</pre>


Riga 138: Riga 138:
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.
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.
{{Warningbox|Prestare cautela nell'eseguire all'interno di sessioni screen l'utilizzo dell'opzione "-x".}}
{{Warningbox|Prestare cautela nell'eseguire all'interno di sessioni screen l'utilizzo dell'opzione "-x".}}
La variabile d'ambiente '''STY''' permette di verificare se Screen è in esecuzione. Se ad esempio lo si volesse avviare al login è possibile inserire nel file <code>~/.bashrc</code> quanto segue:
<pre>
if [ -z "$STY" ]; then
  screen -R
fi
</pre>
Che significa: se già esiste una sessione attaccala, altrimenti creane una.


==== Escape ====
==== Escape ====
Riga 260: Riga 268:
Nel caso in cui GNU/Screen debba essere richiamato all'interno di script o per l'utilizzo in congiunzione con CRON è necessario usare <code>eval</code>; per esempio:
Nel caso in cui GNU/Screen debba essere richiamato all'interno di script o per l'utilizzo in congiunzione con CRON è necessario usare <code>eval</code>; per esempio:
<pre>
<pre>
$ screen -X eval 'stuff comando "parametri \015"'
$ screen -X eval 'stuff comando "parametri \012"'
$ screen -X eval 'stuff ./mio_script.sh "parametri_script \015"'
$ screen -X eval 'stuff ./mio_script.sh "parametri_script \012"'
</pre>
</pre>


Riga 305: Riga 313:
  deflogin on
  deflogin on


# abilito il monitoraggio di attività delle finestre
# abilito il monitoraggio di attività delle finestre  
(i messaggi di attività spiegati al capitolo 3.1.2: Scorciatoie e messaggi)
# (i messaggi di attività spiegati al capitolo 3.1.2: Scorciatoie e messaggi)
  defmonitor on
  defmonitor on


Riga 423: Riga 431:
  bind T screen -t rTorr 7 rtorrent
  bind T screen -t rTorr 7 rtorrent
  bind V screen 5 vim
  bind V screen 5 vim
  bind W screen w3m http://it.search.yahoo.com
  bind W screen w3m https://www.google.com


# automatizzo certe operazioni all'apertura di screen, consideratelo come il file di startup di un DE/WM
# automatizzo certe operazioni all'apertura di screen, consideratelo come il file di startup di un DE/WM
Riga 443: Riga 451:


== Risorse ==
== Risorse ==
* http://dotfiles.org/.screenrc
* http://www.softpanorama.org/Utilities/Screen/screenrc_examples.shtml
* http://aperiodic.net/screen/
* http://aperiodic.net/screen/


{{Autori|Autore=[[Utente:Skizzhg|skizzhg]] ven 14 ott 2011, 19.34.46, CEST}}
{{Autori
|Autore=[[Utente:Skizzhg|skizzhg]] ven 14 ott 2011, 19.34.46, CEST
}}


[[Categoria:Shell]]
[[Categoria:Shell]]
[[Categoria:Window Manager]]
[[Categoria:Window Manager]]
3 581

contributi

Menu di navigazione