GNU Screen - How to mod it

 :: GNU/Linux :: Desktop

Andare in basso

GNU Screen - How to mod it

Messaggio Da lostpassword il Sab Set 26, 2009 10:07 pm

Come specificato in un altro topic, ho intenzione di inserirvi in questo fantastico mondo, quello di GNU screen. Penso che la sezione sia adatta, se non dovesse essere, spostate pure ^^.
Cominciamo dicendo che screen è un programma che gestisce diverse sessioni di terminale contemporaneamente, quindi potremo avere aperti irc, msn, shell, musica, htop, insomma, quello che ci pare, in un unico programma, tutto da tastiera, senza l'uso del mouse. Questa è la caratteristica principale, ma arriviamo ai backticks, ossia quei codici in lingua araba tra ` e ` che ci permettono di controllare su screen molti dati, quali temperatura cpu, temperatura in città, RAM, up/down, memoria usata, data, ora, e molto ancora: tutto sta nel saper organizzarsi e saper utilizzare al meglio i programmi via terminale di Linux, niente di più.
Tutti i backticks andranno inseriti in ~/.screenrc, il file di configurazione di screen. Diamogli un'occhiata, soffermandoci sulle righe "caption string" e "hardstatus string": esse contengono i vari backticks da visualizzare e lo stile in cui devono esser visualizzati, i colori, le posizioni.

Dichiareremo un backtick all'interno del nostro file di configurazione con la seguente sintassi:
Codice:
backtick id ifespan autorefresh command [args]

id sta a indicare l'id del nostro backtick, che decideremo noi. Lifespan è un numero che identifica il numero di secondi di validità del backtick, dopo il quale il programma specificato verrà rieseguito, e autorefresh indica il numero di secondi che dovranno trascorrere per aggiornare l'output del backtick. Ad esempio, dobbiamo visualizzare la temperatura della CPU, ma questa cambierà, e impostando l'autorefresh a 2, ogni 2 secondi la temperatura sarà calcolata, e in caso di cambiamento, visualizzata ^^. Ogni backtick si usa nelle caption indicate prima, tramite il comando % seguito dall'id del backtick.

Cominciamo con qualcosa di semplice, visualizzare data e ora nella caption string, ossia la riga in cui sono indicati i nomi delle finestre aperte:
Codice:
%=[%{r}%d-%m-%Y %{w}%c:%s %{g}]

Basterà aggiungere il codice alla fine della riga. Vediamo come funziona:
%= : indica il posizionamento a fine riga(a destra)
%{r} : colore rosso
%d-%m-%Y : vi lascio immaginare
Il resto è facilmente comprensibile con le nozioni appena apprese.

Passiamo ora a qualcosa di più interessante, qualcosa che ci renderà fighi!(stronzata, xD).
Creiamo ad esempio un backtick che ci mostra il tipo di kernel, come sapete il comando è "uname -r", quindi la cosa è abbastanza semplice:
Codice:
backtick 1 0 0 uname -r

Inseriremo poi il backtick nell'hardstatus string in questo modo(in questo caso, colore rosso):
Codice:
[%{r}kernel: %1`]
Il carattere ` su sistemi *NIX based è Alt Gr+'.

Passiamo ora a qualcosa di più complesso, come il rilevamento della temperatura della cpu tramite il tool "sensors", e quindi l'uso di grep e awk.
Codice:
sudo apt-get lm-sensors
sensors detect
ragioniamo sull'output del comando sensors, vediamo che la parola CPU compare due volte, quella che ci interessa è:

Codice:
CPU Temp:    +61.0°C  (high = +80.0°C, hyst = +75.0°C)  sensor = diode

Come riuscire a catturare il solo +61.0°C ? La cosa è semplice, tramite grep prima isoliamo CPU, poi la riga con Temp, e come output avremo la linea precedente. Poi tramite awk, ci stampiamo il terzo argomento della linea di prima(1: CPU, 2: temp, 3: 61.0°C). Facciamo qualche test da terminale, alla fine dovremmo ottenere:
Codice:
echo -n `sensors | grep CPU | grep Temp | awk '{print $3}'`

Perfetto, ora creiamo il backtick:
Codice:
backtick 2 5 5 echo -n `sensors | grep CPU | grep Temp | awk '{print $3}'`
Il backtick si aggiornerà ogni 5 secondi ^^
Per visualizzarlo nell'hardstatus:
Codice:
[%{w}CPU Temp: %2`]

Bene, io vi ho dato le basi, ora sta a voi scovare i comandi della shell più nascosti per ottenere le informazioni più svariate e più utili da inserire nel nostro screen. Il mio, al momento(screen vecchio, ma la conf è la stessa) si presenta in questo modo:
https://redcdn.net/ihimizer/img197/3269/imghx.png

Divertitevi!
avatar
lostpassword

Messaggi : 95
Data d'iscrizione : 25.09.09
Località : Roma

Visualizza il profilo http://lostpassword.hellospace.net

Torna in alto Andare in basso

Re: GNU Screen - How to mod it

Messaggio Da !R~ il Sab Set 26, 2009 11:26 pm

Uh, davvero interessante. Credo sia arrivato il momento di provare screen Very Happy

!R~

Messaggi : 11
Data d'iscrizione : 24.09.09

Visualizza il profilo

Torna in alto Andare in basso

Re: GNU Screen - How to mod it

Messaggio Da floatman il Sab Set 26, 2009 11:34 pm

Bellina questa guida ^^
È interessante come tu riesca a trollare e produrre cose utili al mondo allo stesso momento...quasi come Gesù
avatar
floatman

Messaggi : 844
Data d'iscrizione : 14.09.09

Visualizza il profilo http://myville.altervista.org

Torna in alto Andare in basso

Re: GNU Screen - How to mod it

Messaggio Da lostpassword il Dom Set 27, 2009 11:18 am

È interessante come tu riesca a trollare e produrre cose utili al mondo allo stesso momento...quasi come Gesù
Mooooolto interessante ^^
avatar
lostpassword

Messaggi : 95
Data d'iscrizione : 25.09.09
Località : Roma

Visualizza il profilo http://lostpassword.hellospace.net

Torna in alto Andare in basso

Re: GNU Screen - How to mod it

Messaggio Da Slack il Dom Set 27, 2009 4:15 pm

Ho visto che da un po' di tempo sono molto usati questi tipi di tools.
Almeno c'è gente che ama il terminale Smile
avatar
Slack

Messaggi : 248
Data d'iscrizione : 14.09.09
Località : /home/slack

Visualizza il profilo http://linux.forumattivo.it

Torna in alto Andare in basso

Re: GNU Screen - How to mod it

Messaggio Da Contenuto sponsorizzato


Contenuto sponsorizzato


Torna in alto Andare in basso

Torna in alto

- Argomenti simili

 :: GNU/Linux :: Desktop

 
Permessi di questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum