.dsy:it. Pages (4): « 1 2 3 [4]
Show 150 posts per page

.dsy:it. (http://www.dsy.it/forum/)
- Sistemi operativi I (http://www.dsy.it/forum/forumdisplay.php?forumid=269)
-- Esame di laboratorio (Giugno 2007) - Domande (http://www.dsy.it/forum/showthread.php?threadid=31182)


Posted by Spr1gg4N on 16-09-2009 11:35:

Originally posted by mark
ne approfitto per dire la mia anche se in ritardo di due anni :D

find / -type f -perm +111
trova tutti e solo i file che hanno il bit di esecuzione settato

find / -type f -perm -111
trova tutti i file che hanno il bit di esecuzione settato indifferentemente dagli altri bit rw

in definitiva col segno + vengono ricercati --x--x--x mentre col -qualsiasi configurazione va bene, basta che siano settati i parametri x


scusa mi potresti spiegare un secondo l'utilizzo di -perm? cioè, ho capito che controlla i permessi ma perchè proprio 111 per il bit di esecuzione? e se per esempio volessi trovare i file che NON hanno il bit di esecuzione settato?

thx ^^


Posted by mark on 16-09-2009 11:56:

alcolare per ogni utente lo spazio occupato sul sitema

code:
# ut=$(cat /etc/passwd | cut -d : -f 1); for i in $ut; do find / -type f -user $i -exec ls -l {} \; | awk '{somma += $5} END {print somma}'; done


la cosa interessante è che la variabile somma IMHO si setta a zero ogni volta automaticamente

__________________
Non ti perdere di coraggio se ti tocca lavorare molto e raccogliere poco.....


Posted by mark on 16-09-2009 12:05:

Originally posted by Spr1gg4N
scusa mi potresti spiegare un secondo l'utilizzo di -perm? cioè, ho capito che controlla i permessi ma perchè proprio 111 per il bit di esecuzione? e se per esempio volessi trovare i file che NON hanno il bit di esecuzione settato?

thx ^^


ho seguito la tabella postata in qualche pagina dietro

code:
r w x --- r w x --- r w x 4 2 1 --- 4 2 1 --- 4 2 1


come vedi al permesso x corrisponde 1 etc...

prova con -perm -555 e poi con -perm +555

noterai che nel primo caso troverà tutti i file con r-xr-wr-x settati ma indifferentemente se w è settato o meno.
Nel secondo caso ti troverà solo i file con r-xr-wr-x settati evitando quelli che hanno impostato anche il bit w.

__________________
Non ti perdere di coraggio se ti tocca lavorare molto e raccogliere poco.....


Posted by kirka85 on 16-09-2009 12:55:

Ciao, siete risucita risolvere questo:

"Verifcare qual'e il valore di ritorno di una pipe, anche in caso
che qualcuno dei "filtri" fallisca"

ciaooooooooooooooooooooooooooo

__________________
:bubble:


Posted by mark on 16-09-2009 13:01:

a me viene in mente solo echo $? (by Martignoni)

0 = tutto bene
!= 0 problemi di qualche natura

ciao

__________________
Non ti perdere di coraggio se ti tocca lavorare molto e raccogliere poco.....


Posted by kirka85 on 16-09-2009 13:08:

ma in questo caso funziona solo sull'ultimo comando credo... o no?

__________________
:bubble:


Posted by mark on 16-09-2009 13:09:

eh si

__________________
Non ti perdere di coraggio se ti tocca lavorare molto e raccogliere poco.....


Posted by Spr1gg4N on 16-09-2009 15:45:

Originally posted by mark
alcolare per ogni utente lo spazio occupato sul sitema

code:
# ut=$(cat /etc/passwd | cut -d : -f 1); for i in $ut; do find / -type f -user $i -exec ls -l {} \; | awk '{somma += $5} END {print somma}'; done


la cosa interessante è che la variabile somma IMHO si setta a zero ogni volta automaticamente


ah ok grazie mille :D

Un'ultima cosa: qualcuno di voi ha per caso provato l'esercizio sul kernel della pressione del tasto F8??
Io ho seguito le istruzioni in questo post (a pagina 2 mi sembra)....ma sembra non funzionare ?_?
ho seguito tutto alla lettera, ricompilato, shutdown e poi avviato di nuovo ma nulla.


Posted by mark on 16-09-2009 16:26:

in pagina 2 ?

__________________
Non ti perdere di coraggio se ti tocca lavorare molto e raccogliere poco.....


Posted by Spr1gg4N on 16-09-2009 17:08:

Originally posted by mark
in pagina 2 ?


no mi sono sbagliato scusa, eccolo qui:
http://www.dsy.it/forum/showthread.php?threadid=31283


Posted by MarcoVigna17 on 16-09-2009 17:30:

dopo aver letto 31 pagine di post in 2 giorni, solo una cosa non mi è chiara, e visto che mi conosco, sicuro mi capita quell'esercizio di shell:
copiare un ramo mantenendo inalterati i permessi, qual è la soluzione definitiva? cp -p /alb1/* /alb2 ???


Posted by xSharKMaNx on 16-09-2009 18:23:

Originally posted by MarcoVigna17
dopo aver letto 31 pagine di post in 2 giorni, solo una cosa non mi è chiara, e visto che mi conosco, sicuro mi capita quell'esercizio di shell:
copiare un ramo mantenendo inalterati i permessi, qual è la soluzione definitiva? cp -p /alb1/* /alb2 ???


si è corretta

code:
cp -p /dir_origine/* /dir_destinazione


Puoi testare due file con il comando stat!

__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)

I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)


Posted by MarcoVigna17 on 16-09-2009 18:35:

e per copiare la struttura ma nn i file l'unica soluzione senza impazzire in script allucinanti è copiare tutto e poi eliminare i file nell'albero creato?


Posted by xSharKMaNx on 16-09-2009 18:46:

Originally posted by MarcoVigna17
e per copiare la struttura ma nn i file l'unica soluzione senza impazzire in script allucinanti è copiare tutto e poi eliminare i file nell'albero creato?



code:
#/bin/sh cpdir -p /directoryA /directoryB for file in $(find /directoryB -type f); do rm $file done

__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)

I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)


Posted by MarcoVigna17 on 16-09-2009 18:51:

grazie...non sono scaramantico, ma venerdì mi dovrò toccare tanto le palle mentre mi dà l'esercizio della shell ho idea


Posted by Spr1gg4N on 16-09-2009 18:57:

nessun suggerimento per l'esercizio del kernel? (tasto F8)


Posted by xSharKMaNx on 16-09-2009 18:58:

dai Marco non essere così pessimista :) speriamo solo che ci siano esercizi abbordabili! poi comunque i comandi son sempre quelli.

Una cosa invece che mi lascia un attimo perplesso è tale differenza:

Cercare il file con dimensione maggiore:

code:
find / -type f | xargs ls -s | sort -nr | head -1


code:
find / -type f | xargs du | sort -nr | head -1


entrambe le righe sono corrette, ma a differenza di "ls -s" e "du" il du prende un altro file comunque delle stesse dimensioni.

__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)

I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)


Posted by xSharKMaNx on 16-09-2009 19:00:

Originally posted by Spr1gg4N
nessun suggerimento per l'esercizio del kernel? (tasto F8)


ti riporto una risposta di quel 3D:


controlla di aver fatto giusta la punteggiatura. a me molti errori di compilazione erano su quello.

__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)

I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)


Posted by Spr1gg4N on 16-09-2009 19:41:

l'ho scritto correttamente....a te funziona?


Posted by Shaper on 16-09-2009 20:15:

Vi segnalo una cosa, di cui forse si era già parlato in precedenza.
Considerando questo script per trovare tutti i file con dimensione dispari

code:
#!/bin/sh find / -type f | xargs ls -l | tr -s “ “ “ “ | while read FILE; do NOME=$(echo $FILE | cut –d “ “ -f 9) DIM=$(echo $FILE | cut –d “ “ -f 5) tmp=$(expr $DIM % 2) if [ $tmp -ne 0 ] ; then echo "$NOME -> $DIM" fi done exit 0


se lo mando in esecuzione con l'immagine minx3-full.qcow funziona senza problemi; se invece uso l'immagine perEsame mi da, per ogni iterazione del for, l'errore
[ : syntax error
expr : syntax error

Gran brutta roba, dal momento che quella che useremo dopodomani sarà probabilmente l'immagine perEsame...

Dite che se durante l'esame scrivo lo script così e non mi va me lo tengono comunque buono? (dal momento che, concettualmente, è giusto)

__________________
Eidolon64|Blog


Posted by Spr1gg4N on 16-09-2009 20:20:

mi pare strano che funzioni....secondo me la condizione dell'if non è corretta:
dovresti mettere $tmp (e non solo tmp) per prendere il valore; per sicurezza poi scrivi "$tmp" così nel caso in cui la variabile tmp sia vuota non dovrebbe dare errore


Posted by Shaper on 16-09-2009 20:22:

Originally posted by Spr1gg4N
mi pare strano che funzioni....secondo me la condizione dell'if non è corretta:
dovresti mettere $tmp (e non solo tmp) per prendere il valore; per sicurezza poi scrivi "$tmp" così nel caso in cui la variabile tmp sia vuota non dovrebbe dare errore


Scusa, ho sbagliato io a trascrivere! :D
Adesso edito il post

__________________
Eidolon64|Blog


Posted by Spr1gg4N on 16-09-2009 20:49:

Originally posted by Shaper
Scusa, ho sbagliato io a trascrivere! :D
Adesso edito il post


ah nello script hai scritto $tmp? mmmm allora potrebbe essere un problema :D


Posted by Shaper on 16-09-2009 21:03:

Originally posted by Spr1gg4N
ah nello script hai scritto $tmp? mmmm allora potrebbe essere un problema :D


eh sì!:look:

__________________
Eidolon64|Blog


Posted by mark on 16-09-2009 22:04:

Originally posted by xSharKMaNx
dai Marco non essere così pessimista :) speriamo solo che ci siano esercizi abbordabili! poi comunque i comandi son sempre quelli.

Una cosa invece che mi lascia un attimo perplesso è tale differenza:

Cercare il file con dimensione maggiore:

code:
find / -type f | xargs ls -s | sort -nr | head -1


code:
find / -type f | xargs du | sort -nr | head -1


entrambe le righe sono corrette, ma a differenza di "ls -s" e "du" il du prende un altro file comunque delle stesse dimensioni.



find / -type f -exec ls -l {} \; | sort +4 -n | tail -1

__________________
Non ti perdere di coraggio se ti tocca lavorare molto e raccogliere poco.....


Posted by kirka85 on 17-09-2009 08:58:

Originally posted by MarcoVigna17
e per copiare la struttura ma nn i file l'unica soluzione senza impazzire in script allucinanti è copiare tutto e poi eliminare i file nell'albero creato?


potrebbe andar bene questa sol?

#!/bin/sh
for ITEM in $( find /dirA -type d ) ; do
mkdir /dirB/$ITEM
done

__________________
:bubble:


Posted by mark on 17-09-2009 09:29:

io faccio così ma solo perchè mi sembra più chiaro

code:
#!/bin/sh dirA=$1 dirB=$2 find /dirA -type d | sort > miatmp while read l do mkdir -p /dirB/$l done < miatmp rm miatmp



uso il file temporaneo per evitare eventuali Out of space

__________________
Non ti perdere di coraggio se ti tocca lavorare molto e raccogliere poco.....


Posted by xSharKMaNx on 17-09-2009 11:32:

Originally posted by Shaper

code:
#!/bin/sh find / -type f | xargs ls -l | tr -s “ “ “ “ | while read FILE; do NOME=$(echo $FILE | cut –d “ “ -f 9) DIM=$(echo $FILE | cut –d “ “ -f 5) tmp=$(expr $DIM % 2) if [ $tmp -ne 0 ] ; then echo "$NOME -> $DIM" fi done exit 0




prova a dimensionare DIM prima della find: DIM=0
oppure prova a mettere le doppie apici "$DIM"

Ciao

__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)

I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)


Posted by mark on 17-09-2009 11:46:

Originally posted by xSharKMaNx
prova a dimensionare DIM prima della find: DIM=0
oppure prova a mettere le doppie apici "$DIM"

Ciao


ho provato con awk

code:
find / -type f -exec ls -l {} \; | awk '{$5 % 2}{print}'

__________________
Non ti perdere di coraggio se ti tocca lavorare molto e raccogliere poco.....


Posted by ociofe on 17-09-2009 15:29:

Trovare tutti i file modificati di venerdi'??
qualcuno è capace di risolverlo??


Posted by MarcoVigna17 on 17-09-2009 15:31:

per la partizione, ho letto da qualche parte che bisogna far attenzione al campo CYL, ma sinceramente nn ci ho capito molto in base a cosa...qualcuno sa come fare?


Posted by kirka85 on 17-09-2009 15:35:

for ITEM in $( find $1 -type f ); do
DATAMOD=$( echo $ITEM | xargs stat -Mtime | tr -s ' ' ' ' | cut -d ' ' -f 1)

if test $DATAMOD = "Fri" ; then
echo $ITEM
fi

done

A me è venuto in mente così..se trovate di meglio
ciao

__________________
:bubble:


Posted by mark on 17-09-2009 15:37:

Originally posted by MarcoVigna17
per la partizione, ho letto da qualche parte che bisogna far attenzione al campo CYL, ma sinceramente nn ci ho capito molto in base a cosa...qualcuno sa come fare?



credo che settando nell'ultima colonna a destra il valore in KB non si dovrebbero avere problemi, in quanto Cyl Head e Sec vengono calcolati auomaticamente in base a tale valore

Prova ad inserire nell'ultima colonna
10000
20000
30000

ciao

p.s
addirittura digitando solo i valori in KB, il campo head della prima partizione viene impostato ad 1 automaticamente per il settore di boot; se lo fai a mano magari ti dimentichi

__________________
Non ti perdere di coraggio se ti tocca lavorare molto e raccogliere poco.....


Posted by kirka85 on 17-09-2009 15:46:

ma voi per le partizioni metterete i valori in KB esattemente o moltiplicate solo per 1000?

altrimenti ho bisogno della calcolatrice... ahah possiamo usare quella del pc?

__________________
:bubble:


Posted by MarcoVigna17 on 17-09-2009 17:36:

ultima domanda poi giuro che la smetto:
se chiede di usare un archivio tar.gz, come devo fare? so usare .tar e .ar, ma con .gz non so niente e il manuale non è che mi abbia aiutato poi molto


Posted by xSharKMaNx on 17-09-2009 18:16:

Originally posted by ociofe
Trovare tutti i file modificati di venerdi'??
qualcuno è capace di risolverlo??


code:
#!/bin/sh find / -type f | while read line do Giorno=$(stat -Mtime $line |awk '{$1 print $1}') if [ "$Giorno" = "Fri" ]; then ls -l $line fi done

__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)

I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)


Posted by xSharKMaNx on 17-09-2009 18:21:

@Marco: Per la partizione leggi il primo messaggio di questo 3D:

http://www.dsy.it/forum/showthread....&threadid=30276

@Kirka: Da quello che ho letto in questo 3D che tu inserisca la dim. corretta o che tu moltipli x 1000 credo non cambia differenza

@Marco:

code:
1.Creare archivi # tar -cvf nome_archivio.tar nome_cartella_da_comprimere 2.Estrarre archivi # tar -xvf archivio.tar 3.Elencare il contenuto ( … senza estrarre i file dell’archivio ) # tar -tf archivio.tar Questo è il significato delle opzioni usate c: crea un archivio f: specifica un file da estrarre o da creare x: estrae un archivio t: permette di mostrare il contenuto degli archivi v: dà in output maggiori informazioni sui file


code:
1.Comprimere archivi con gzip (.tgz o tar.gz) # tar -czvf nome_archivio.tgz nome_cartella_da_archiviare 2.Comprimere archivi con bzip2 (.tar.bz2) # tar -cjvf nome_archivio.bz2 nome_cartella_da_archiviare 3.Decomprimere archivi creati con gzip (.tgz o tar.gz) # tar -xvfz ./nome_archivio.tgz 4.Decomprimere archivi creati con bzip2 (.tar.bz2) # tar -xjvf ./nome_archivio.tar.bz2 5.Listare il contenuto degli archivi compressi # tar -ztf nome_archivio.tar.gz


Ciao

__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)

I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)


Posted by kirka85 on 17-09-2009 19:03:

il comando dovrebbe essere proprio gzip
es.
ls | gzip -cv > archivio.gz

__________________
:bubble:


Posted by xSharKMaNx on 17-09-2009 19:24:

La stringa:

code:
grep too long - truncated


Può essere eliminata dall'output con: 2>/dev/null.
Ma la domanda che mi pongo è: il dato "letto" della riga estratta viene considerato oppure no ?

__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)

I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)


Posted by kirka85 on 17-09-2009 19:46:

bella domanda

__________________
:bubble:


Posted by mark on 17-09-2009 19:50:

Originally posted by xSharKMaNx
La stringa:

code:
grep too long - truncated


Può essere eliminata dall'output con: 2>/dev/null.
Ma la domanda che mi pongo è: il dato "letto" della riga estratta viene considerato oppure no ?



http://www.koders.com/c/fid26E74331...AFF.aspx?s=tree

si direbbe che superata la capacità dello stack venga segnalato l'errore in quanto grep continua a leggere caratteri sino allo \n, se non lo trova segnala errore, almeno credo.
Poi dovrebbe continuare col carattere successivo altrimenti non avrebbe molto senso IMHO.

Direi che è ora di riposarsi per affrontare domani con lucidità

__________________
Non ti perdere di coraggio se ti tocca lavorare molto e raccogliere poco.....


Posted by xSharKMaNx on 17-09-2009 20:04:

Originally posted by mark
Direi che è ora di riposarsi per affrontare domani con lucidità


Pienament d'accordo!
Ragazzi, ci si vede domani in Comelico

__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)

I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)


Posted by Shaper on 17-09-2009 20:05:

Originally posted by xSharKMaNx
Pienament d'accordo!
Ragazzi, ci si vede domani in Comelico


In bocca al lupo a tutti quanti e, comunque vada, grazie a tutti quelli che hanno tenuto vivo questo thread! :D

__________________
Eidolon64|Blog


Posted by mark on 17-09-2009 20:07:

[QUOTE]Originally posted by Shaper
In bocca al lupo a tutti quanti e, comunque vada, grazie a tutti quelli che hanno tenuto vivo questo thread! :D [/QUOTE


e ovviamente...........CREPI!!! :D]

__________________
Non ti perdere di coraggio se ti tocca lavorare molto e raccogliere poco.....


Posted by kirka85 on 17-09-2009 20:24:

crepi il lupo, a domani

__________________
:bubble:


Posted by xSharKMaNx on 18-09-2009 13:59:

andata: 24
Grazie a tutti ed in bocca al lupo a chi dovrà farlo :)

__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)

I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)


Posted by mark on 18-09-2009 14:20:

ringrazio anche io per tutti i vari suggerimenti trovati qua e là.

In bocca al lupo a chi lo deve ancora dare :)

__________________
Non ti perdere di coraggio se ti tocca lavorare molto e raccogliere poco.....


Posted by Spr1gg4N on 18-09-2009 14:25:

mi accodo anche io ai ringraziamenti: è andata bene anche grazie al dsy ^_^


Posted by Alessio on 18-09-2009 14:46:

esame passato!!!! Un Grazie di cuore a tutti voi!!! Senza questo thread molto probabilmente il laboratorio non lo avrei mai passato!!!!!! Grazie!!!!


Posted by Dazan on 18-09-2009 16:28:

c'è qualche anima pia che ha una racccolta degli esercizi di shell risolti?


Posted by brain on 18-09-2009 17:36:

28...:D.... una sudata pazzesca,ma soprattutto per la parte orale....

allora,per quanto riguarda gli esercizi di lab:
1-script: trovare tutti i file che cominciano per 'l',archiviarli in un archivio ar e comprimere il tutto utilizzando gzip
2-kernel: modificare la modalità di allocazione della memoria da first fit a best fit

1-codice(a memoria,quindi testatelo!!):
find / -type f -name "l*" | xargs ar cr archivio.ar
gzip -9 archivio.ar

con il -9 si sta dicendo a gzip di comprimere il file piu che puo anche se ci mette piu tempo (se si utilizzasse -1 invece si dice a gzip di compattare il file nel minor tempo possibile,ma la compressione non è ottimale, il -5 ovviamente è una via di mezzo)

2- sono andato in usr/src/servers/pm/alloc.c
sono andato nella funzione alloc_mem e ho fatto un for e 2 if in modo da selezionare lo spazio opportuno....non credo proprio che avrebbe funzionato,ma come ragionamento c'ero.....non potevo testarlo per evitare di combinare danni....cmq al prof è bastato e quindi mi ha dato 27...


per quanto ri guarda il thread,ringrazio tutti coloro che hanno posto quesiti e soluzioni.senza tutti questi esercizi non sarei mai riuscito a passare questo esame!!!!!
in bocca al lupo a tutti quanti!!!!!!
:D

__________________
:wall:


Posted by Shaper on 18-09-2009 17:39:

Passato anch'io gente! :D
Ovviamente grazie a tutti voi, senza questo thread non ce l'avrei mai fatta.

Come es di shell mi ha chiesto di contare tutti i file che hanno il nome composto da un numero dispari di lettere.
Non era molto difficile: basta usare wc con l'opzione -c. Il prof quando mi ha dato l'esercizio mi ha detto di considerare solo il nome del file e non il path. Io non sapevo come farlo, dal momento che il find restituisce il path e al momento non sapevo come estrarre l'ultimo elemento con cut, ma alla fine non mi ha detto nulla e gli è andato bene così.

Per il kernel dovevo stampare un messaggio ogni volta che veniva creato un file il cui nome iniza per x. La syscall da modificare è in /usr/src/servers/fs/open.c (do_creat, credo), ma più in là non sono riuscito ad arrivare...

In totale 26.

Monga è molto bravo: è gentile e ti mette a tuo agio e ti da una mano se vede che sai dove mettere le mani..

L'unica cosa è l'organizzazione! Sono arrivato lì alle 9:30 e sono uscito alle 15:30 :shock:
Ma è tanto difficile dividere preventivamente in turni, dato che gli iscritti li conoscono già? Che ci vuole a far venire metà gente alle 9:30 e metà, metti dopo mezzogiorno??
Oltretutto nell'aula gamma, che è una specie di squallidissimo bunker anti-atomico, senza finestre e senza nemmeno posto per sedersi. 6 ore in piedi non fanno certo bene alla concentrazione pre-esame!

Vabbè, è andato e questo è l'importante, ancora grazie a tutti (anche a n3o, che in pratica ho visto che ha fatto "nascere" questo thread!) :D

__________________
Eidolon64|Blog


Posted by MarcoVigna17 on 18-09-2009 19:32:

il culo di cui parlavo ieri c'è stato...

es di shell:sommare la grandezza dei file che iniziano per 'v'
kernel:modifica del kernel per stampare un messaggio alla pressione di F8...totale 30 e verbalizzato un 29 (e a quello prima aveva regalato un punticino per arrivare al 30 ma va beh, mi va benissimo lo stesso)

cmq esame lungo si, anche perchè c'era solo monga, però lui è bravo e ti aiuta (nei limiti del possibile ovviamente)

e anche per questo esame, grazie 1000 dsy!!!


Posted by Spr1gg4N on 18-09-2009 19:37:

Originally posted by MarcoVigna17
(e a quello prima aveva regalato un punticino per arrivare al 30 ma va beh, mi va benissimo lo stesso)

a quello di prima ha "regalato" un punticino perchè ha preso un 30+2 nella parte teoria e aveva cmq sia fatto anche la parte di kernel (non funzionava ma la modifica era corretta e lì sul momento neanche il prof trovava l'errore) :D


Posted by kirka85 on 19-09-2009 09:14:

grazie a tutti quelli che hanno collaborato a questo thread !

__________________
:bubble:


Posted by xSharKMaNx on 19-09-2009 10:29:

Originally posted by Dazan
c'è qualche anima pia che ha una racccolta degli esercizi di shell risolti?


Lunedì mattina posto nella Sezione Filez :)

__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)

I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)


Posted by Dazan on 24-09-2009 15:52:

Originally posted by xSharKMaNx
Lunedì mattina posto nella Sezione Filez :)


grazie 3000!


Posted by Dazan on 24-09-2009 16:42:

chi mi risolve questo esercizio?

calcolare la somma dei pid


Posted by xSharKMaNx on 24-09-2009 18:37:

Originally posted by Dazan
chi mi risolve questo esercizio?

calcolare la somma dei pid


ps -alx | awk '{SUM += $4} END {print SUM}'

Controlla con ps -alx se il PID si trova all 4 colonna altrimenti cambia il numero alla riga di comando ;)

__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)

I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)


Posted by Dazan on 24-09-2009 18:41:

ottimo.. awk che comando è?


Posted by xSharKMaNx on 24-09-2009 19:04:

Originally posted by Dazan
ottimo.. awk che comando è?


Come hai notato con awk ho sostituito il classico for o while; qualora non conoscevo awk dovevo eseguire un codice del genere:

code:
ps -alx | tr -s ' ' ' ' | cut -d ' ' -f 4 | while read line; do tmp=$(expr $tmp + $line) done | echo $tmp


awk in pratica ti lavora sulle colonne, puoi estrarre un intera colonna

code:
'awk {print $3}


Puoi effettuare una sommatoria su di una colonna, come prima, puoi anche inserire condizione al suo interno

Qui trovi un pò di spiegazioni:
http://www.pluto.it/files/journal/pj9809/awk.html

Io ho scoperto questo comando grazie a google per cui ;)

__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)

I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)


Posted by Dazan on 24-09-2009 19:24:

grazie mille !!! :D


Posted by Gospel on 12-02-2010 22:18:

Non so se è perchè era l'ultimo appello prima del nuovo corso, in cui forse qualcosa cambierà soprattutto proprio in laboratorio, però i professori sono davvero ma davvero molto disponibili. Basta dimostrare che le cose si sanno all'inizio.....poi ti aiutano in tutto e per tutto.
Non so con certezza il nome del ragazzo che sta con Monga (è un ricercatore?)...è molto che non guardavo sistemi operativi....ma dopo che gli ho mostrato subito un piccolo script corretto sintattitacamente, siamo andati avanti più di mezzora a fare prove su prove per farlo andare, anche lui non capiva perchè, ma voleva farlo andare.
Alla fine era perchè usavo la bash e non la shell...................................
Mi ha fatto passare in ogni caso.

__________________
Is it Defeat or Victory that Waits in the Dark?



I need to be myself
I can't be no one else
I'm feeling supersonic
Give me gin and tonic
You can have it all but how much do you want it?
You make me laugh
Give me your autograph
Can I ride with you in your B.M.W ?
You can sail with me in my yellow submarine




Posted by Guccio on 17-06-2010 22:10:

Unhappy

scusate raga in questo esercizio : Trovare l'utente col minor numero di file nel sistema

io ho fatto in questo modo:

#! /bin/sh

indice=0
listaCut=$(cut -f 3 -d : /etc/passwd)
for USER in $listaCut; do
cont[$[{indice}]=0
listaFind=$(find / -user "${USER}" -type -f)
indiceTemp=0
for FILE in listaFind; do
cont[${indice}]=$(expr ${indiceTemp} + 1)
done
cat /etc/passwd | grep "$USER"
echo "--------"
echo "$cont[${indice}]"
indice=$(expr ${indice} + 1)
done

L'ordinamento me lo volevo tenere per dopo, volevo vedere prima se funzionava

Ma l'output di minix è:

cont[0]=0: no such file or directory
./primo.sh: Out of space

Dove ho sbagliato?


Posted by lordghost on 18-06-2010 13:37:

credo che il problema sia questo:
listaFind=$(find / -user "${USER}" -type -f)

l'interprete cerca di scrivere tutti i file come:
listaFind=f1 f2 f3 f4..... f4097 --> overflow

perchè i parametri hanno un limite.

dovresti provare con il costrutto "find / | while read f; do ...$x... done;

__________________
My 3D blog: http://www.webgl.it


Posted by gennaro on 22-06-2010 10:30:

qualcuno riesce a risolvere questo esercizio ke è capitato ieri all'esame:

"trovare tutti i file modificati di venerdi' e fare la somma delle occupazioni"

sul dsy c'era un esercizio simile in cui chiedeva di trovare i soli file modificati di venerdi' (tra l'altro la soluzione proposta su questo forum non funzionava....) ma non si parlava di trovare poi la dimensione dei vari file...qualcuno riesce a risolverlo?


Posted by gennaro on 22-06-2010 10:31:

qualcuno riesce a risolvere questo esercizio ke è capitato ieri all'esame:

"trovare tutti i file modificati di venerdi' e fare la somma delle loro occupazioni"

sul dsy c'era un esercizio simile in cui chiedeva di trovare i soli file modificati di venerdi' (tra l'altro la soluzione proposta su questo forum non funzionava....) ma non si parlava di trovare poi la dimensione dei vari file...qualcuno riesce a risolverlo?


Posted by Deckard on 22-06-2010 18:57:

Buttata giù di fretta, ma dovrebbe essere corretta:

PHP:

find / -type f | (while read f; do
   if stat -Mtime $f | grep -s "^Fri"; then
      size=$(stat -size $f)
      n=$(expr $n + $size)
   fi
done; echo $n)

__________________
And all those moments will be lost in time, like tears in rain...


Posted by gennaro on 28-06-2010 21:35:

ok ho capito il concetto, ma state attenti perchè la soluzione proposta prima non funziona e neanche alcune altri esercizi vanno e fidatevi ma basta poco per essere segati all'esame...


Posted by Chobeat on 08-07-2010 11:19:

ma quindi quello dell'f8 come si risolve? ho aggiunto una voce nella tabella in dmp.c, ho aggiunto una funzione, l'ho aggiunta nei define ma non funge. cos'altro devo dirgli e sopratutto, come cazzo faccio a cercare in una serie di testi una parola? io facico uno script con find grep e cat ma è scomodissimo... non c'è altro modo?


Posted by -Oblivion- on 15-09-2010 12:04:

Salve gente, ho un problema con il ciclo while.
CI sto sbattendo la testa da 3 giorni e magari è una stupidata.

Quando ho un codice di questo tipo

PHP:

#!/bin/sh
pippo="topolino"
cat file.txt | while read I 
do 

pippo = "cane"
echo $pippo

done 

echo $pippo



( il comando antecedente al while è di esempio)

Il codice cosa fa ENTRA nel ciclo while stampa il contenuto di pippo ( ovvero cane), esce da ciclo while, stampa nuovamente il contenuto di pippo, ma invece di stampare cane, stampa TOPOLINO!!!!

In pratica (testato e ritestato) tutte le variabile utilizzate nel ciclo while, non vanno a sovrascrivere quelle fuori dal ciclo! E' assurdo.
Questo invece non avviene nei cicli for. Perchpè? Avete riscontrato anche voi?

__________________
Annunci Gratis : La nuova dimensione degli annuci online - Jabbi.it


Posted by Deckard on 15-09-2010 13:23:

Originally posted by -Oblivion-
In pratica (testato e ritestato) tutte le variabile utilizzate nel ciclo while, non vanno a sovrascrivere quelle fuori dal ciclo! E' assurdo.
Questo invece non avviene nei cicli for. Perchpè? Avete riscontrato anche voi?

Non è assurdo: ciò avviene perchè il while è in pipe con un altro comando; il while è un costrutto built-in, che viene eseguito all'interno dello stesso processo della shell. Tuttavia la pipe è un meccanismo di comunicazione tra processi e di conseguenza la shell deve fare eseguire il while su di un altro processo figlio di quello principale. Perciò le modifiche apportate ad una variabile all'interno del ciclo saranno visibili solo all'interno di esso.
Per aggirare ciò basta far stampare il valore delle variabile dallo stesso processo del while. Ciò è possibile racchiudendo tra parentesi tonde il while e la stampa della variabile. In questo modo:
PHP:

#!/bin/sh  
pippo="topolino"  
cat file.txt | (while read I   
do     
pippo = "cane"  
echo $pippo    
done     
echo $pippo)

__________________
And all those moments will be lost in time, like tears in rain...


Posted by -Oblivion- on 15-09-2010 13:55:

Ti ringrazio!! Mi hai risolto 3 giorni di scleri....



Solo per curiosità... come facevi a saperlo? :D

edit: Se ho 2 while di questo tipo, annidati.

Come posso portare fuori una variabile del while interno?

ES:
comando | while
do

comando | while
do

pippo="Ciao"

done
done

echo $pippo

__________________
Annunci Gratis : La nuova dimensione degli annuci online - Jabbi.it


Posted by Deckard on 15-09-2010 18:44:

Originally posted by -Oblivion-
Solo per curiosità... come facevi a saperlo? :D

Il "trucchetto" delle parentesi l'aveva detto Monga a lezione. La spiegazione del perché senza non funziona è l'unica plausibile che mi è venuta in mente.


edit: Se ho 2 while di questo tipo, annidati.

Come posso portare fuori una variabile del while interno?

A parte che gli es. di lab sono tutti risolvibili senza far uso di cicli annidati... direi che una soluzione semplice è copiare quella variabile in un file temporaneo: basta semplicemente un
PHP:

echo $pippo >> temp

e poi la recuperi con cat o tail -n 1 al max se hai già usato quel file. Altrimenti potresti giocare un po' con gli echo e le pipe.

__________________
And all those moments will be lost in time, like tears in rain...


Posted by Chobeat on 16-09-2010 14:36:

ma io son l'unico che usa

a=$(comando)
for i in $a
do
done

???

io lo trovo molto più comodo del while in pipe, anche se dopo che ho imparato awk, non lo uso quasi più.


Posted by -Oblivion- on 16-09-2010 14:39:

A usare for non mi fido perchè sui pc dell'uni è facile che vada in "Out of Space" .

Adesso do un occhio a awk

__________________
Annunci Gratis : La nuova dimensione degli annuci online - Jabbi.it


Posted by uLori on 04-01-2011 10:01:

ciao, vorrei capire cos'è di preciso awk, capendo come si usa si potrebero sostituire i cicli for e while? qualcuno saprebbe dirmi se c'è un manuale o qualcosa su cui ha imparato ad utilizzarlo?? grazie


Posted by xSharKMaNx on 04-01-2011 10:14:

Originally posted by uLori
ciao, vorrei capire cos'è di preciso awk, capendo come si usa si potrebero sostituire i cicli for e while? qualcuno saprebbe dirmi se c'è un manuale o qualcosa su cui ha imparato ad utilizzarlo?? grazie


awk ti semplifica la vita, io ho imparato ad utilizzarlo grazie ad esempi che trovi su google.

Se torni indietro di 1 o 2 pagine trovi degli esempi dove è stato utilizzato il comando awk

__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)

I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)


Posted by uLori on 05-01-2011 11:09:

qualcuno potrebbe spiegarmi la sintassi del while? perchè fin ora ho usato il for però in laboratorio spesso va in out of space e il prof lo calcola come errore...quindi devo impararmi il while per forza..solo che non c'è niente su cui studiare stò benedetto minx!!!!


Posted by xSharKMaNx on 05-01-2011 13:06:

Originally posted by uLori
qualcuno potrebbe spiegarmi la sintassi del while? perchè fin ora ho usato il for però in laboratorio spesso va in out of space e il prof lo calcola come errore...quindi devo impararmi il while per forza..solo che non c'è niente su cui studiare stò benedetto minx!!!!


Ciao,
il mio consiglio è prendere questo 3D, partire dal primo post e leggerteli tutti.

Solo così capisci come sono stati svolti gli esercizi, nella sezione filez trovi anche un file "shell.txt" dove ci sono tutti gli esercizi che si possono trovare al compito di lab.

Ciao

__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)

I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)


Posted by uLori on 05-01-2011 14:31:

ciao, il problema è che ho notato che gli esercizi che il prof assegna in laboratorio sono via via sempre più difficili. i primi di qualche anno fà si risolvono con una sola riga di codice, poi via via sempre più complicati e gli ultimi sono tosti... io è da giugno che ho passato l'orale di sisop ma ora sono bloccato da questo benedetto minix per la conclusione dell esame..

per esempio l'ultimo che mi ha dato è: Trovare l'occupazione di tutti i file modificati di lunedì.

il mio problema è che con il for andava in out of space :(


Posted by xSharKMaNx on 05-01-2011 15:08:

Originally posted by uLori
ciao, il problema è che ho notato che gli esercizi che il prof assegna in laboratorio sono via via sempre più difficili. i primi di qualche anno fà si risolvono con una sola riga di codice, poi via via sempre più complicati e gli ultimi sono tosti... io è da giugno che ho passato l'orale di sisop ma ora sono bloccato da questo benedetto minix per la conclusione dell esame..

per esempio l'ultimo che mi ha dato è: Trovare l'occupazione di tutti i file modificati di lunedì.

il mio problema è che con il for andava in out of space :(


code:
Trovare tutti i file modificati di venerdi' (sia un venerdi' particolare che di venerdi' in generale) #/usr/bin/sh find / -type f|while read line; do ; stat $line |awk '{if ($1 =="Mtime:" && $2 =="Fri") print "'${line}'" }' ; done;


code:
- Trovare tutti i file modificati di venerdì #!/bin/sh find / -type f |while read line do giorno=$(stat -Mtime $line |awk '{$1 print $1}') if [ "$giorno" = "Fri" ]; then ls -l $line fi done


Scarica questo file:
http://www.dsy.it/forum/showthread....&threadid=39121

Troverai tutto ciò che ti serve per sostenere l'esame di lab :)

__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)

I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)


Posted by uLori on 05-01-2011 15:19:

un altra cosa che mi era stata chiesta: contare quanti link simbolici ci sono che hanno un numero di caratteri pari nel nome.

per trovare i link simbolici penso si usi ls -F (che mette @ in fondo al nome di quelli che sono i link simbolici) e poi farei grep "@$"

mentre per contare i caratteri del nome penso si usi wc -c

però non sò, aspetto i vostri saggi consigli :)


Posted by xSharKMaNx on 05-01-2011 15:24:

Originally posted by uLori
un altra cosa che mi era stata chiesta: contare quanti link simbolici ci sono che hanno un numero di caratteri pari nel nome.

per trovare i link simbolici penso si usi ls -F (che mette @ in fondo al nome di quelli che sono i link simbolici) e poi farei grep "*@"

mentre per contare i caratteri del nome penso si usi wc -c

però non sò, aspetto i vostri saggi consigli :)


Ti ostini a non seguire il consiglio :)

code:
Trovare tutti i link simbolici presenti nel sistema. find / | while read line;do if test -h $line; then echo $line ok; fi; done


scarica il file shell.txt
Ciao ;)

__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)

I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)


Posted by uLori on 07-01-2011 17:47:

dopo giorni intensi di prove..continuo a non capire come si calcola il numero di caratteri del nome di un file..

per esempio contare i file che hanno un numero di caratteri pari nel nome

scusate per le 1000 domande :)


Posted by uLori on 08-01-2011 17:15:

raga scusate, ma non capisco dove questo codice trovi i link simbolici, l'esercizio cheideva Trovare tutti i link simbolici presenti nel sistema. e questo è la soluzione:

find / | while read line;do
if test -h $line; then
echo $line ok
fi
done

se qualcuno riesce a spiegarmelo...è l'unico modo per trovare i link simbolici??


Posted by xSharKMaNx on 10-01-2011 12:45:

Originally posted by uLori
raga scusate, ma non capisco dove questo codice trovi i link simbolici, l'esercizio cheideva Trovare tutti i link simbolici presenti nel sistema. e questo è la soluzione:

find / | while read line;do
if test -h $line; then
echo $line ok
fi
done

se qualcuno riesce a spiegarmelo...è l'unico modo per trovare i link simbolici??


Credo che puoi fare anche:

code:
1. find / -type f | xargs ls -lF | tr -s ' ' ' ' | cut -d ' ' -f 5,9 2. find / -type f | xargs ls -lF | tr -s ' ' ' ' | cut -d ' ' -f 5,9 | grep "\*$"


e vedi cosa ti da come risultato.

__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)

I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)


Posted by uLori on 10-01-2011 18:41:

facendo grep "\*$" restituisce i file flaggati come eseguibili...io avevo letto che era da fare il grep "\@$" per far restituire i file segnati con la @ che sono i link simbolici....solo che non esce nulla...


Posted by xSharKMaNx on 11-01-2011 08:24:

Originally posted by uLori
facendo grep "\*$" restituisce i file flaggati come eseguibili...io avevo letto che era da fare il grep "\@$" per far restituire i file segnati con la @ che sono i link simbolici....solo che non esce nulla...


prova cosi:

code:
find / -type l | xargs ls -lF | tr -s ' ' ' ' | cut -d ' ' -f 5,9 | grep "\@$"


1. find / = trova tutti i file del sistema
2. -type l = trova solo i link simbolici

3. xargs ls -lF = F (maiuscola)

indica il tipo di elemento terminandolo con un simbolo:
directory /
socket =
link simbolico @
eseguibile *

4. trs -s '''' = tronca gli spazi
cut -d '' -f 5,9 = ti prende le colonne da 5 a 9 se non erro ma puoi anche ometterlo se non ti serve

5. grep "\@$" = ti estrae soltanto i record che terminano con @

Smanetta con quella stringa, così dovresti ottenere il tuo risultato

__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)

I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)


Posted by Lion on 13-01-2011 13:32:

es. Come faccio a contare quanti file di manuale ci sono nel file system?

in realta' la domanda è, per cercare i file di manuale basta cercare i file in /usr/man ?

grazie.


Posted by uLori on 13-01-2011 14:50:

era la domanda di un esercizio di monga?? aspetto anche io la soluzione :)


Posted by Lion on 13-01-2011 15:03:

si, e' una domanda di monga.

io farei così :
find /usr/man -type f | xargs wc -l

tu non hai nessuna idea?
a proposito dei file link il grep con "\@$" mi va in errore!


Posted by uLori on 13-01-2011 15:10:

ciao, allora stavo facendo prove anche io e pure a me è venuto da fare find /usr/man -type f | xargs wc -l
però teoricamente questo ci restituisce le linee contenute in ogni file...non la quantita di file della cartella...


per i trovari i link simbolici i metodi sono 2:

1- find / -type l
2- find / -type f | xargs ls -F | grep "\@$"

a me facendo questi 2 comandi esce lo stesso risultato..che è un file solo: /var/log


Posted by Lion on 13-01-2011 15:31:

ciao,
grazie per i file simbolici.
io mi incasinavo con tr e non veniva fuori nulla!

per il resto boh.. io domani ho la prova di laboratorio quindi... speriamo in una domanda facile.


Posted by uLori on 13-01-2011 15:33:

già pure io ci sarò domani, speriamo!! a te che link simbolici escono??

quella di contare i file in una cartella proprio non saprei come fare..


Posted by Lion on 13-01-2011 15:40:

io ho appena provato ma con:
find / -type l ho:
/usr/local/bin/slogin
/usr/local/bin/screen
/usr/local/man/cat1/slogin.1
/home/symlnfile2
/var/log

con :
find / -type f | xargs ls -lF | grep "\@$"
il sistema si impalla completamente, nn mi da nemmeno il prompt #


... rimani in linea che vedo come fare l'latro e ti scrivo.
ciao


Posted by uLori on 13-01-2011 15:44:

allora usiamo find / -type l :) comunque fare ls -F mette alla fine delle directory \ alla fine degli eseguibili * e alla fine dei link simbolici @

così infatti se devi cercare gli eseguibili fai ls -F | grep "\*$"


su internet ho trovato il modo anche se contorto e mai visto prima, di contare i file dentro una cartella:

find /usr/man | ls -l . | egrep -c '^-'


Posted by Lion on 13-01-2011 15:59:

cavoli contorto davvero..

hai provato a farlo?

ti da lo stesso rislutato di find /usr/man -type f | xargs wc -l ?


Posted by uLori on 13-01-2011 16:02:

nono fare wc -l restituisce per ogni file della cartella la quantità di linee..invece l'altro funzione..restituisce un numero solo che è la quantità di file della cartella...


Posted by uLori on 13-01-2011 16:09:

un altro esercizio che non sono mai riuscito a fare è: trovare tutti i file che hanno il nome composto da numero di caratteri pari.


Posted by Lion on 13-01-2011 16:57:

uLori, scusa ma mi si sta fondendo quel poco di cervello che mi rimane e non che ne avessi tanto...
ci provo e se scopro qualcosa ti scrivo.
ciao


Posted by Lion on 13-01-2011 17:14:

una domanda tecnica...
mi dite dove e' il laboratorio della prova di domani?


Posted by uLori on 13-01-2011 17:29:

comelico...di fronte alla segreteria dall altra parte del cortile scendi c'è la porta aperta appena entrato nell edificio...sembre di scendere in uno scantinato


Posted by Lion on 14-01-2011 12:38:

chi ha fatto oggi la prova di laboratorio e' cosi' gentile da postare le domande.


Posted by uLori on 14-01-2011 16:04:

passato finalmente!

la mia era: trovare l'occupazione di memoria totale dei processi con pid dispari


Posted by Lion on 14-01-2011 17:31:

complimenti!
hai finito tutto l'esame?


Posted by uLori on 15-01-2011 08:57:

sisi finito tutto :)

comunque a me è stato dato un esercizio relativamente semplice, ho sentito esercizi di altri che non avrei saputo nemmeno da dove iniziare


Posted by Magio on 16-01-2011 00:19:

sommare la dimensione dei file .c contenenti numero di parole dispari


Posted by Magio on 16-01-2011 00:20:

dimenticavo l'intestazione, questo è l'esercizio che mi è capitato, ringrazio tutti per questo thread, grazie a voi l'ho passato!!!


Posted by Joy88 on 11-02-2011 12:38:

Aggiungo la mia domanda di stamattina:

Contare quanti file di manuale (file cioè con estensione .1, .2, .3 ... .7) ci sono all'interno del File System.

code:
find / -type f -name '*.[1-7]'


:)
Io ho poi ordinato il risultato in base all'estensione, ma era una cosa in più!

Manca solo l'orale e poi ho finito gli esami!! :shock:
:)
In bocca al lupo a tutti!!!
:D:D

__________________
"Amor, ch’a nullo amato amar perdona, mi prese del costui piacer sì forte che, come vedi, ancor non m’abbandona."

*Dante*


Posted by AndyB on 12-02-2011 12:07:

Il mio esercizio era:

trovare l'occupazione di memoria totale dei processi con pid dispari.

code:
ps -axl | awk '{if (($4%2) != 0) SUM+=$7} END {print SUM}'


$4 = PID del processo
$7 = SIZE del processo


Posted by pintu on 10-07-2011 13:32:

Penso che senza questo 3d non avrei ai passato l'esame di laboratorio! Per futura memoria posto l'esercizio che mi è stato dato:

Shell Script
Trovare l'occupazione totale dei file che sono stati modificati l'ultima volta di venerdi.

#!/bin/sh
SOMMA=0
SIZE=0
find / -type f | while read line; do
Day=$(stat -Mtime $line | cut -f 1)
if [ $Day = "Fri" ]; then
SIZE=$(echo $line | xargs du | cut -f 1)
SOMMA=$(expr $SOMMA + $SIZE)
fi
done
echo "Occupazione totale: $SOMMA"

Kernel
Fare in modo che ogni volta che viene creato un link simbolico venga stampato il nome del link.

Non sono riuscito a farlo, comunque la strada giusta è accedere al file system , e all'interno del file open.c andare a modifizare la funzione do_slink. Monga mi ha dato un punto per la buona volontà :D Totale 25!

Grazie ancora a tutti!


Posted by basslele on 11-07-2011 12:47:

Anche io posto l'esercizio che mi ha fatto fare.

Trovare il numero dei file che contengono la parola "copyright" e hanno il nome composto da un numero pari di caratteri

io ho fatto così:

#! /bin/sh

sum=0;
for file in $(find / -type f | xargs grep -l "copyright" | rev | cut -d / -f 1 | rev); do
numero=$(echo "$file" | wc -c )
if (expr $(expr $numero % 2) -eq 0); then
sum=expr($sum + 1)
fi
done
echo "numero file: $sum"


Posted by mauro21 on 05-09-2011 17:39:

Originally posted by basslele
Anche io posto l'esercizio che mi ha fatto fare.

Trovare il numero dei file che contengono la parola "copyright" e hanno il nome composto da un numero pari di caratteri

io ho fatto così:

#! /bin/sh

sum=0;
for file in $(find / -type f | xargs grep -l "copyright" | rev | cut -d / -f 1 | rev); do
numero=$(echo "$file" | wc -c )
if (expr $(expr $numero % 2) -eq 0); then
sum=expr($sum + 1)
fi
done
echo "numero file: $sum"


provandolo a fare mi viene una cosa molto simile (praticamente =), solo che prima di stampare l'ultima stringa con il risultato, mi stampa molte linee con scritto grep: line too long - truncated

io qui metto 2>/dev/null dopo la grep x "ovviare" al problema

come viene visto in sede d'esame???

questo errore mi esce anche con altri esercizi.


Posted by basslele on 06-09-2011 11:19:

Anche a me aveva dato questo tipo di problema prima dell'esame ma durante l'esame avevo ridotto la ricerca e Monga non mi ha detto nulla...

Cmq è molto disponibile e ti aiuta.


Posted by aPiso on 04-07-2012 12:06:

Originally posted by spriggan

kernerl -> stampare, quando viene lanciato un processo che necessita privilegi superiori, un messaggio a video con pi, uid, nome processo.


Questo qualcuno saprebbe farlo??


Posted by marcy88 on 14-01-2013 10:08:

Ringrazio tutti, senza questo post non sarei riuscito ad accendere manco minix.
Posto l'esercizio che mi è capitato.
-trovare la dimensione totale dei file .c e .h che contengono contemporaneamente le parole "include" e "define".

Grazie davvero a tutti :-))))


Posted by giuscri on 22-07-2015 13:31:

Necroposting in un necroforum.

Trovare la dimensione totale dei file .c e .h che contengono contemporaneamente le parole "include" e "define".

code:
COUNTER=0; for SIZE in $(find lab/ -type f 2> /dev/null |egrep "(\.c)|(\.h)$"|xargs egrep -l "include"|xargs egrep -l "define"|xargs du -b|sed -r "s/\s+/ /g"|cut -d " " -f 1); do COUNTER=$(( $COUNTER + $SIZE )); done; echo $COUNTER


Posted by giuscri on 22-07-2015 17:39:

Trovare il file piu' grande appartenente ad un certo utente.
code:
#!/usr/bin/sh # No user name provided ... _f(){ >&2 echo "[largestfilefor] No user provided."; exit 1; }; [[ -z $1 ]] && _f; # Else, ... USER=$1; FILES=$(find / -type f -user $USER 2> /dev/null); if [[ -z $FILES ]]; then >&2 echo "[largestfilefor] Found no file for the user $USER."; exit 1; fi; echo $(echo $FILES|xargs stat --format="%s %n" 2> /dev/null|sort -nr|head -n 1|cut -d " " -f 2);


Posted by giuscri on 22-07-2015 17:48:

Trovare il numero di link simbolici nel sistema.
code:
find / -type l 2> /dev/null|wc- l


Posted by giuscri on 22-07-2015 18:00:

trovare tutti i file che cominciano per 'l',archiviarli in un archivio ar e comprimere il tutto utilizzando gzip
code:
find / -type f 2> /dev/null|egrep "^.*/l[^/]*$"|xargs tar -czf useless.archive.tar.gz


All times are GMT. The time now is 05:28. Pages (4): « 1 2 3 [4]
Show all 571 posts from this thread on one page

Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.