When people see things as beautiful,
ugliness is created.
When people see things as good,
evil is created.
fabio's blog
Unlimited Loop
Generate an infinite loop in the shell
while true ; do date ; sleep 5 ; done"Leggi Argomenti" template per script
Template per script che legge argomenti da riga di comando:
#!/bin/bash
# FUNCTIONS
function help () {
cat <<EOF
Command: `basename $0`
Syntax: `basename $0` [ -h ]
Description: Descrizione script
Options: -h help (questo help)
-a Opzione "A"
-b Opzione "B"
EOF
}
# VARIABILI
# OPZIONI
while getopts ha:b: var
do
case $var in
h) help; exit
;;
a) echo "Opzione "-a" con argomento $OPTARG";
;;
b) echo "Opzione "-b" con argomento $OPTARG";
esac
done
shift ` expr $OPTIND - 1 `fuser + proc
Path completo dell'eseguibile che sta occupando una determinata
porta con un determinato protocollo
cat /proc/`fuser -n $2 $1 | gawk \'{}{printf\"%s\\n\",$2}{}\'`/cmdline && echo -e \"\\n\"Whoix
Questo sulla mia Debian non gira ... mi sono permesso di modificarlo un po':
cat /proc/`fuser -n tcp 80|gawk {'print $2'}`/cmdline && echoFabio
passless users
Volete vedere quali utenti nel vostro sistema NON hanno una password?
cat /etc/passwd |cut -f1,2 -d:| grep -v :x |cut -f1 -d:Whoix
indice html per immagini
Questa riga di comando genera una pagina html con link a immagini senza troppi patemi d'animo e senza troppi drag&drop :)
In pratica genera un file html definito nella variabile FILE che contiene l'elenco
delle immagini jpg presenti nella directory corrente, aggiungendo come titolo la directory
in cui ci sono le immagini e la data della generazione del documento.
blinking@X-Treme:~/foto_marte > ls -Altr
total 1030
-rw-r--r-- 1 blinking users 210036 Dec 21 1999 Image001.jpg
-rw-r--r-- 1 blinking users 243192 Dec 21 1999 Image002.jpg
-rw-r--r-- 1 blinking users 230380 Dec 21 1999 Image003.jpg
-rw-r--r-- 1 blinking users 293860 Dec 21 1999 Image004.jpg
-rw-r--r-- 1 blinking users 67652 Dec 21 1999 Image005.jpg
export FILE=page.html;echo "<HTML><BR><TITLE>Index of `pwd` </TITLE> Content of directory `pwd`<BR><BR>" >$FILE; for d in *.jpg; do echo "<A HREF=\"$d\">"$d"<BR>">>$FILE;done;echo "</A> <BR>Page last modified on `date`<BR></HTML>">>$FILEkillall x openbsd
E` l'equivalente di killall PROC x openbsd visto che non c'e` si imposta la variabile PROC=nomeprocesso et voila`:
PROC=sleep ; for i in `find /proc -type d` ; do result=`cat $i/status 2> /dev/null` ; found=`echo $result | awk '{ print $1 }'` ; test $found = $PROC 2> /dev/null && echo $result | kill -$SIG `awk '{ print $2 }'` ; doneLorenzo Martignoni
cdrecord + bladeenc
Con il seguente comando si estrae l'immagine di un cd audio e si
ottengono 2 files: data.bin contenente i dati grezzi e toc contenente le
informazioni sullo spiazzamento e sulla durata delle singole tracce:
gianz@guybrush:cd-images$ cdrecord read-cd toc
...
gianz@guybrush:cd-images$ ls -l
total 476695
-rw------- 1 gianz users 486224256 Sep 1 23:25 data.bin
-rw------- 1 gianz users 1263 Sep 1 23:25 toc
la rigona di comando é questa:
gianz@guybrush:cd-images$ for i in `seq 1 \`grep -c TRACK toc\`` ; do dd if=data.bin skip=`grep -A 5 "Track $i"$ toc | grep data.bin | awk '{ print( $3); }' | awk -F : '{ print(int((($1*6000+$2*100+$3)*1764)/1024)); }'` count=`grep -A 5 "Track $i"$ toc | grep data.bin | awk '{ print( $4); }' | awk -F : '{ print(int((($1*6000+$2*100+$3)*1764)/1024)); }'` bs=1024 | sox -t .cdr - -t wav - | bladeenc STDIN track$i.mp3 ; donedopo un po' di tempo questo é ció che ottengo:
up & lower case
Pipe che restituisce caratteri maiuscoli da minuscoli
echo ciao |perl -e 'while (<>) { print uc }'Muovi tutti i file presenti in una dir da maiuscoli a minuscoli o viceversa ..
for i in `ls` ; do mv $i `echo $i |perl -e 'while(<>) { print lc ;}'` ; doneMuovi tutti i file presenti in una dir da maiuscoli a minuscoli o viceversaanche se contengono degli spazi (Thanks Nando) ..
for i in * ; do mv "$i" "`echo $i | perl -e 'while(<>) { print lc ;}'`" ; donelittle perl search engine
Motore di ricerca per piccoli alberi html ;-)
grep -ir 'pattern' path_dove_cercare/*html|awk --field-separator=":" {'print $1;'}|perl-e '$old=""; while() { if ($_ ne $old) {print "$_"} $old=$_;}'html strip tags
Legge tutti i files html contenuti in una directory [non scende
ricursivamente nelle sottodirectory] eliminandone i tag e li concatena in un
unico file ASCII conservando i commenti HTML.
cat *.htm |perl -e {'while () { s/<.*>//s; print }'} > output_text_fileIdem come sopra ma ricursivo ;-)
find . -iname "*.htm*" |perl -e {'while () { s/<.*>//s; print }'} > output_text_filekill + fuser
Il comando netstat (netstat -na --ip) ti rivela che hai una porta aperta (es. 515, lpd) e vuoi chiuderla?
kill -9 `fuser 515/tcp|awk {'print $2 '}`cat $i|sed
Leggi i files contenuti in una directory [in questo caso etc/bind/virtual]
e sostituisci ogni ricorrenza di 192.168.0.113 con 192.168.1.10 mettendo i
files nuovi in una directory con il nome del nuovo ip address.
for i in `ls` ;do cat $i|sed s/192.168.0.113/192.168.1.10/ > dir_192.168.1.10/$i;donekill
killa un processo ricavando l'id dal nome:
kill -9 `ps auxw |grep process_name |awk {'print $2'}`man to lp
Visualizza una manpage in Postscript, formatta a 2 pagine x A4 e manda in stampa sulla stampante lp:
man -t ls| mpage -2A| lpr -Plp
