Strano comando.. spiegazioni?

Se avete problemi con l'installazione e la configurazione di Slackware postate qui. Non usate questo forum per argomenti generali... per quelli usate Gnu/Linux in genere.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware, se l'argomento è generale usate il forum Gnu/Linux in genere.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
Darkstar89
Packager
Packager
Messaggi: 372
Iscritto il: mer 17 dic 2008, 19:06
Nome Cognome: Francesco
Slackware: 13
Località: Sassari

Strano comando.. spiegazioni?

Messaggio da Darkstar89 »

Salve.. ultimamente stavo lavorando presso un call-center.. (che schifo!).. comunque almeno c'era Linux, qualche strana distribuzione modificata, ma basata su Slackware...
Spesso con la shell guardavo i file di avvio come rc.M ecc...
In uno (non ricordo quale), ho trovato:

grep MemFree: < /proc/meminfo | sed s/MemFree://|sed s/kb

Cosè?..

è utile per svuotare la ram come drop_cache?

Avatar utente
conraid
Staff
Staff
Messaggi: 13631
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: Strano comando.. spiegazioni?

Messaggio da conraid »

bah... non sembra terminato, quel sed finale è incompleto
e prima mostra semplicemente la MemFree, e quella ridirezione è inutile

Codice: Seleziona tutto

grep MemFree: /proc/meminfo | sed s/MemFree://
avrebbe prodotto lo stesso risultato

probabilmente l'ultimo sed toglie anche kb mostrando solo il valore numerico, così che in base a quello viene decisa un'operazione seguente, ma è solo una ipotesi

Avatar utente
robbybby
Linux 4.x
Linux 4.x
Messaggi: 1223
Iscritto il: sab 16 dic 2006, 10:48
Slackware: 13.1 / 64 bit
Kernel: 3.3.x
Desktop: KDE 4.4.5
Località: Fra Trantor e Terminus

Re: Strano comando.. spiegazioni?

Messaggio da robbybby »

grep serve per cercare del testo (delle espressioni regolari, per essere più precisi) all'interno di un file di testo, secondo un pattern che gli dai. Se cerchi con google, espressioni regolari, oppure regular expressions tutto ti sarà più chiaro.
Tanto per fare una prova, prova questo:

Codice: Seleziona tutto

dmesg | grep -i cpu 
/proc/meminfo è semplicemente un file virtuale che contiene aclune informazioni sullo stato del sistema.
Prova a leggerlo con:

Codice: Seleziona tutto

cat /proc/meminfo
sed serve invece per eleborare delle stringhe (prova con man sed, per saperne di più).
Quel comando cerca la stringa MemFree nel file /proc/meminfo e poi la dà in pasto a sed, per farne non so che, dato che non uso sed, e il tuo comando, sulmio sistema, mi dà un errore di sed.

@conraid: ci siamo incrociati :)

Dopo aver letto ilpost di Conraid aggiungo: quel comando mostra il contenuto della riga MemFree del file meminfo, dopo aver tolto la stringa MemFree: e kb (che dovrebbe essere kB, però).

Mario Vanoni
Iper Master
Iper Master
Messaggi: 3174
Iscritto il: lun 3 set 2007, 21:20
Nome Cognome: Mario Vanoni
Slackware: 12.2
Kernel: 3.0.4 statico
Desktop: fluxbox/seamonkey
Località: Cuasso al Monte (VA)

Re: Strano comando.. spiegazioni?

Messaggio da Mario Vanoni »

Darkstar89 ha scritto:Salve.. ultimamente stavo lavorando presso un call-center.. (che schifo!).. comunque almeno c'era Linux, qualche strana distribuzione modificata, ma basata su Slackware...
Spesso con la shell guardavo i file di avvio come rc.M ecc...
In uno (non ricordo quale), ho trovato:

grep MemFree: < /proc/meminfo | sed s/MemFree://|sed s/kb

Cosè?..

è utile per svuotare la ram come drop_cache?
grep MemFree: < /proc/meminfo | sed s/MemFree:// | sed s/kB//
come dice Corrado ritorna la sola cifra trovata,
sulla mia macchina e`
339732
con
grep MemFree: < /proc/meminfo | sed s/MemFree:// | sed s/kB// | sed 's/ //g'
diventa
339732
senza spazi a sinistra.

Se il comando finisce li`, nessuna azione, solo info,
se il valore e` "pipato" su altro ...

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6643
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: Strano comando.. spiegazioni?

Messaggio da targzeta »

E al solito io dico che fare una pipe tra grep e sed è sbagliato:

Codice: Seleziona tutto

sed -n /MemFree/'{s/MemFree: *\([0-9]*\).*/\1/;p}' /proc/meminfo
Emanuele
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Mario Vanoni
Iper Master
Iper Master
Messaggi: 3174
Iscritto il: lun 3 set 2007, 21:20
Nome Cognome: Mario Vanoni
Slackware: 12.2
Kernel: 3.0.4 statico
Desktop: fluxbox/seamonkey
Località: Cuasso al Monte (VA)

Re: Strano comando.. spiegazioni?

Messaggio da Mario Vanoni »

spina ha scritto:E al solito io dico che fare una pipe tra grep e sed è sbagliato:

Codice: Seleziona tutto

sed -n /MemFree/'{s/MemFree: *\([0-9]*\).*/\1/;p}' /proc/meminfo
Emanuele
Concordo al 100%, fa` vedere solo il numero richiesto.

Avatar utente
j0kers
Linux 2.x
Linux 2.x
Messaggi: 418
Iscritto il: dom 22 lug 2007, 1:31
Slackware: 13
Kernel: 2.6.32
Desktop: xfce4

Re: Strano comando.. spiegazioni?

Messaggio da j0kers »

Beh non poteva essere semplicemente cosi:

Codice: Seleziona tutto

grep MemFree /proc/meminfo | awk '{print $numero}'
Dove numero è la posizione del testo che si vuole stampare

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6643
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: Strano comando.. spiegazioni?

Messaggio da targzeta »

Offtopic:
j0kers ha scritto:Offtopic: Beh non poteva essere semplicemente cosi:

Codice: Seleziona tutto

grep MemFree /proc/meminfo | awk '{print $numero}'
Dove numero è la posizione del testo che si vuole stampare
Certo, ognuno fa quello che gli pare ma anche questo è brutto da vedere e a mio parere è anche più brutto che mettere grep in pipe con sed.
  • awk così come sed hanno come argomento il nome del file da processare, quindi non vedo perchè metterli in pipe con grep:

    Codice: Seleziona tutto

    awk '/MemFree/{print $2}' /proc/meminfo
  • la pipe consuma risorse poichè si devono avviare due processi e collegarli.
  • Tra sed e awk il secondo è più "pesante" e sinceramente lo trovo del tutto sprecato per fare questo misero lavoro.
Sia chiaro j0kers che ognuno poi fa quello che vuole, ma la mia impressione è che molti usano i comandi senza conoscerli, magari solo perchè l'hanno visto fare su internet.

Emanuele[/offtopic]
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
j0kers
Linux 2.x
Linux 2.x
Messaggi: 418
Iscritto il: dom 22 lug 2007, 1:31
Slackware: 13
Kernel: 2.6.32
Desktop: xfce4

Re: Strano comando.. spiegazioni?

Messaggio da j0kers »

Infatti poi è a piacere dell'utente.comunque come giustamente dici questo

Codice: Seleziona tutto

awk '/MemFree/{print $2}' /proc/meminfo
comando è molto più elegante di quello scritta in precedenza 8)

Rispondi