Appunti presi durante il seminario di Santini

(a cura di uno studente)

man -t man >man.ps (fa vedere la pagina in postscrit di man)

Coreutils (pacchetto utilità di GNU)
	manipolazione file di testo

	- Shell scripting

< file (lettura da file)
> file (scrittura da file)
>> file (append a file)
2> file (standard error)
> & file (duplicazione file descriptor) 2 copie dello stesso output

meccanismo sostituzione
$()
$(()) sostituzione aritmetica
<()
> ()

/*
#/dev/tcp è della bash
	exec 3<>/dev/tcp/www.google.com/80
	echo -e "GET / HTTP/1.1\n\n" >&3
	cat <&3
*/
# FA UNA GET DELLA PAGINA DI GOOGLE

-> Tagliare (righe e campi)
-> Incollare
-> Trasformare e ordinare

--> students.silab.di.unimi.it/~ac815838

ssh silab
cd /user/ac8915838

--pythong.org

--LDAPSEARCH
	directory service

ldapsearch -x | less

ldapsearch -x | grep 'uid:\s*[[:alpha:]]+[[:digit:]]+'
	seleziona 2 alpha e poi digit!


ldapsearch -x | grep 'uid:\s*[[:alpha:]]+[[:digit:]]+' | cut -d : -f 2
	cut non posizionale

ldapsearch -x | grep 'uid:\s*[[:alpha:]]+[[:digit:]]+' | cut -b 6
	cut dal sesto byte in poi



// esempio while true; do echo ciao; done


read pippo
dojedejidjijfijri

echo $pippo
	-> dojedejidjijfijri



ldapsearch -x | grep 'uid:\s*[[:alpha:]]+[[:digit:]]+' | cut -b 6 | while read $line; do ls -d /users/$line/public_html 2>/dev/null; done | wc -l


ldapsearch -x | grep 'uid:\s*[[:alpha:]]+[[:digit:]]+' | wc -l #numero utenti




ldapsearch -x | grep 'uid:\s*[[:alpha:]]+[[:digit:]]+' | cut -b 6 | while read $line; do ls -l /users/$line/public_html/index.html 2>/dev/null; done | wc -l



ldapsearch -x | grep 'uid:\s*[[:alpha:]]+[[:digit:]]+' | cut -b 6 | while read $line; do stats /users/$line/public_html/index.html 2>/dev/null; done | wc -l




ldapsearch -x | grep 'uid:\s*[[:alpha:]]+[[:digit:]]+' | cut -b 6 | while read $line; do ls -lb /users/$line/public_html/index.html 2>/dev/null; done | wc -l | cut -d ' ' -f5



ldapsearch -x | grep 'uid:\s*[[:alpha:]]+[[:digit:]]+' | cut -b 6 | while read $line; do echo $line $(\ls -lb /users/$line/public_html/index.html 2>/dev/null | cut -d ' ' -f5 ); done


#un po' errato....
ldapsearch -x | grep 'uid:\s*[[:alpha:]]+[[:digit:]]+' | cut -b 6 | while read $line; do f=/users/$line/public_html/index.html 2>/dev/null; then  done | cut -d ' ' -f5 | grep -v ' 13$' | grep -v ' 636$'
 -> MANCA L'IF


ls -lb /users/*/public_html/index.* | tr -s ' ' | cut -d ' ' -f 3,5


ls -lb /users/*/public_html/index.* | tr -s ' ' | cut -d ' ' -f 3,5 | grep -v ' 636$' | grep -v ' 13$' | wc -l


!!!!!
ls -1 /users/*/public_html/index.* | while read f; do echo $(stat $f | grep SIZE: | cut -d: -f2  | cut -d ' ' -f2); done | grep -v ' 636$' | grep -v ' 13$' > elenco.txt

cut -d. -f2 | cut -d ' ' -f1 | sort| uniq -c | sort -nr
!!!!!!


utenti.txt
elenco.txt

cat elenco.txt | while read line; do echo $( echo $line | cut -d/ -f3) $(echo $line | cut -d ' ' -f3)


join <(sort utenti.txt) <( sort user_dim.txt)

echo <(sort utenti.txt) <( sort user_dim.txt)



join -v2 -a1 <(sort utenti.txt) <( sort user_dim.txt)
	-a1 (no corrispondenze)


--Shell si presta alla Metaprogrammazione
l *.txt
mv elenco.txt elenco.pippo


ls -1 *.txt | while read f; do echo mv $f $(echo $f| cut -d. -f1 ).pippo; done

ls -1 *.txt | while read f; do echo mv $f $(echo $f| cut -d. -f1 ).pippo; done | bash
l *pippo

Generare in maniera programmatica un programma, e chiedere alla shell l'esecuzione


	nl # numera le righe

pub/tgif/appuntishell.txt · Last modified: 2014/06/13 15:26 by atrent
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0