PDA

View Full Version : [SHELL]Comando particolare...


Frank1962
17-07-2008, 12:25
esiste la possibilità, in shell, di poter avviare una sorta di refresh continuo a un comando della shell?
Per esempio, una cosa topo >comando ls che mi aggiorni continuamente nella shell il contenuto della directory, un pò come fa il top che refresha continuamente in shelle l'utilizzo delle risorse.

ciao e grazie

ilsensine
17-07-2008, 12:41
while true; do ls; sleep 2; done

Frank1962
17-07-2008, 12:50
while true; do ls; sleep 2; done
per forza con il while? ...così però si comporta che mi mette in coda l'aggiornamento e la shell si allunga; non è proprio come un comando top....

ilsensine
17-07-2008, 12:55
E' esattamente come il comando top. Ristampa tutto ogni tot secondi.
top usa le ncurses per il refresh della schermata, che un comando generico non può usare. Possiamo però fare questo:

while true; do clear; ls; sleep 2; done

o ancora meglio (se installi il pacchetto inotify-tools o come si chiama sulla tua distribuzione):

while true; do clear; ls; inotifywait -e move -e create -e delete . > /dev/null 2>&1; done

Frank1962
17-07-2008, 12:58
il clear alla fine mi basta e avanza ma, giusto per curiosità, che cos'ha di meglio l'utilizzo del inotifywait?

ilsensine
17-07-2008, 13:01
Ristampa il contenuto solo quando è stato modificato qualcosa.

vampirodolce1
17-07-2008, 13:18
watch ls
watch ls -l
watch comando

eventualmente:
watch --interval=1 ls

solo root puo' impostare intervalli di refresh < 1.

ilsensine
17-07-2008, 13:33
watch ls

toh non lo conoscevo...

vampirodolce1
17-07-2008, 13:42
E' comodissimo ad esempio per vedere i pacchetti che vengono droppati dal firewall:
watch --interval=1 iptables -L -v --line-numbers

o per monitorare lo stato delle connessioni:
watch netstat -atupn
watch 'netstat -atupn|grep -i established'

Frank1962
17-07-2008, 14:49
eccolo! mi sembrava che c'era .....era da tanti anni che non lo usavo (e che non aprivo una shell), adesso me lo hai ricordato di nuovo! :D

con il grep però non lavora molto bene :(

ilsensine
17-07-2008, 14:58
con il grep però non lavora molto bene :(
watch "ls | grep xxx"
dov'è il problema?

Frank1962
17-07-2008, 15:27
watch "ls | grep xxx"
dov'è il problema?
esempio:

watch ps aux <-- ok

watch ps aux | grep init <--- non fà vedere nulla

ps: da putty, ma penso sia lo stesso se "dal vivo" :D

vampirodolce1
17-07-2008, 15:30
Racchiudi il comando fra apici:
watch 'ps aux | grep init'

Frank1962
18-07-2008, 10:17
Racchiudi il comando fra apici:
watch 'ps aux | grep init'
perfetto! ti/vi ringrazio! ;)