Introduzione a GNU/Linux e alla Shell Bash - dei.unipd.itversacif/varia/linux-shell.pdf ·...
Embed Size (px)
Transcript of Introduzione a GNU/Linux e alla Shell Bash - dei.unipd.itversacif/varia/linux-shell.pdf ·...
Introduzione a GNU/Linux e alla Shell Bash(Corso di Reti di Calcolatori)
Francesco Versaci([email protected])
DEI Universit degli Studi di Padova
30 marzo 2010
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 1 / 52
Sommario
1 Introduzione a GNU/Linux
2 La shell BashGeneralitGestione Base dei Processi
3 ComandiComandi PrincipaliComandi Avanzati
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 2 / 52
Sommario
1 Introduzione a GNU/Linux
2 La shell BashGeneralitGestione Base dei Processi
3 ComandiComandi PrincipaliComandi Avanzati
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 3 / 52
Le Prime Generazioni di UNIX
5th Edition
6th Edition PWB 1.0
LSX1 BSD Mini Unix WollongongInterdata PWB 1.2 USG 1.0
2 BSD
Unix/TS 3.0
PWB 2.07th Edition
TS 4.0
8th Edition
32V
V7M
Ultrix-11
Xenix UniPlus+
9th Edition
3 BSD
2.8 BSD
2.9 BSD
4 BSD
4.1 BSD
4.2 BSD
4.3 BSDUltrix-32
CB Unix 1USG 2.0
CB Unix 2USG 3.0
CB Unix 3
Unix/TS++ PDP-11 Sys V
Unix/TS 1.0
System V.0
System V.2
System V.3
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 4 / 52
GNU/Linux
CaratteristicheSistema operativo UNIX-like ( POSIX)Scritto da zeroPotente e versatile nel gestire le retiSoftware libero (tipicamente sotto GPL)Modulare
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 5 / 52
Organizzazione Filesystem
GeneralitEverything is a file (dischi,terminali, scheda audio, . . . )Un unico albero su cui simontano i dispositivi
Caratteri e directory speciali/ Separatore directory
.nome A inizio nome indica unfile nascosto
La home directorydellutente
. La directory corrente.. La directory superiore
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 6 / 52
Filesystem Hierarchy Standard (FHS) 1/3
/ /bin
/boot
/dev/etc
/home
/lib
/media/mnt
/opt
/proc
/root/sbin
/tmp
/usr
/var
/usr/bin
/usr/include
/usr/lib
/usr/sbin
/usr/share
/usr/X11R6
/usr/local
/var/lib
/var/log
/var/mail
/var/www
/home/pino/home/gino
/home/nino
/home/lino
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 7 / 52
Filesystem Hierarchy Standard (FHS) 2/3
/ La directory radice/bin Eseguibili importanti per
lutente (es. cat, ls, cp)/sbin Eseguibili per root
(amministratore) (es.mount, ifconfig)
/dev Dispositivi (es., /dev/sda,/dev/null, /dev/audio)
/boot Kernel/etc File di configurazione/root Home dellamministratore/home Home degli utenti
/lib Librerie essenziali (pereseguibili in /bin e /sbin)
/media Montaggio dispositivirimovibili (DVD, chiavette,usb)
/mnt Montaggio altri filesystem/proc Informazioni su kernel e
processi/tmp File temporanei/usr Eseguibili e librerie non
essenziali/var Dati vari (DB, web), log,
posta
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 8 / 52
Filesystem Hierarchy Standard (FHS) 3/3
/usr/usr/bin Eseguibili per gli utenti/usr/sbin Eseguibili per
lamministratore/usr/lib Librerie/usr/share Plugin, manuali, . . ./usr/X11R6 LX Window System/usr/local Programmi installati
manualmente
/var/var/mail La posta degli utenti/var/log I log di sistema/var/lib Informazioni salvate dai
pacchetti/var/www Siti web ospitati
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 9 / 52
Utenti e Permessi
Utenti e GruppiAd ogni file viene associato unowner Il proprietario del file (es.
gino)group Un gruppo di
appartenenza (es. utenti)
Permessi possibile specificare permessidi lettura (r), scrittura (w) edesecuzione (x) per
Il proprietario del filePer utenti del gruppo diappartenenzaPer tutti gli altri
Esempio$ ls -l /dev/sd*brw-rw---- 1 root disk 8, 0 24 feb 15:29 /dev/sdabrw-rw---- 1 root disk 8, 1 24 feb 15:29 /dev/sda1brw-rw---- 1 root disk 8, 5 24 feb 15:29 /dev/sda5brw-rw---- 1 root disk 8, 6 24 feb 15:29 /dev/sda6
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 10 / 52
Demoni
Programmi che girano inbackground (es. sshd, postfix,syslogd, cron)Tipicamente server
Gestione dei Servizi# /etc/init.d/ssh statussshd is running.# /etc/init.d/ssh stopStopping OpenBSD Secure Shell server: sshd.# vim /etc/ssh/sshd_config# /etc/init.d/ssh startStarting OpenBSD Secure Shell server: sshd.
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 11 / 52
Sommario
1 Introduzione a GNU/Linux
2 La shell BashGeneralitGestione Base dei Processi
3 ComandiComandi PrincipaliComandi Avanzati
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 12 / 52
Cos una shell?
A che serve?Interagire col kernelGestire file e processi inmodo potente e veloceLanciare applicazioniAutomatizzare operazionifrequenti e/o complesse
Kernel(nucleo) es. Linux
Shell (guscio) eapplicazioni
es. Bash
Utente
Schema a cipolla di un sistemaoperativo
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 13 / 52
Bash La shell GNU
Caratteristiche principaliSegue lo standard POSIXDisponibile per molti sistemioperativiProgrammabile, personalizzabile
Login utentespongebob login: cescoPassword:[email protected]:~$ pwd/home/[email protected]:~$ logoutspongebob login:
Login rootspongebob login: rootPassword:spongebob:~# pwd/rootspongebob:~# logoutspongebob login:
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 14 / 52
Comandi
Sintassi generale$ nome-comando
Spiegazioneopzioni modificano lesecuzione del
programma--nome-opzione-o
argomenti obiettivi del comando, disolito nomi di file
AutocompletamentoPremere TAB semplifica molto la vita. . .
Esempi$ unameLinux$ uname --machinei686$ uname -mi686$ wc -l /etc/fstab12 /etc/fstab
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 15 / 52
Espansioni in linea di comando
Sostituzione comando$ dpkg -S which importimagemagick: /usr/bin/import
Espansione delle graffe$ touch {g,p,tr}ino$ lsgino pino trino
Caratteri jolly qualsiasi stringa (nulla inclusa)? carattere qualsiasi
[. . . ] carattere in intervallo[. . . ] carattere non in intervallo
Espansione di percorso$ ls ?inogino pino$ ls *inogino pino trino$ ls [a-m]inogino$ ls t*i*trino
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 16 / 52
Quoting
Caratteri usatibackslash per caratteri
singolivirgolette permettono di
indicare nomi con spazi,ma non bloccano lesostituzioni di comando
apici bloccano anche lesostituzioni comando
Esempi$ touch "sale e pepe"$ touch olio\ e\ acetoolio e aceto sale e pepe$ echo "$(ls)"olio e acetosale e pepe$ echo $(ls)$(ls)
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 17 / 52
Alias
Uso degli aliasPer velocizzare ladigitazione dicomandi frequentiPossono aggiugereopzioni di default aicomandiPossono essereaggirati col quoting
Esempi$ alias lc=ls --color=auto$ alias ll=ls -l$ alias mutt=mutt -y$ mutt #==> mutt -y$ mutt #==> mutt$ unalias ll
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 18 / 52
Variabili dambiente
A che servono?Per impostare opzioni per la shellPer impostare opzioni predefinite per alcuni programmi
Esempio$ echo $PATH/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games$ export PATH=~/mybin:$PATH$ echo $PATH/home/cesco/mybin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 19 / 52
File di configurazione
/.bashrcEseguito da shell non di loginQuello globale /etc/bash.bashrc
Esempioalias ls=ls --color=autoalias ll=ls -ctrlalias rm=rm -i. /etc/bash_completion
/.bash_profileEseguito da shell di login(no terminali)Quello globale /etc/profile
Esempio. ~/.bashrcPATH=~/bin:"${PATH}"umask 077
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 20 / 52
History
ArchivioNel file /.bash_historyvengono memorizzati gli ultimi$HISTSIZE comandi.
Combinazioni da tastierafrecce su/gi scorrono lhistoryCTRLR consente la ricerca
allindietroALT . Ripete argomento del
comando precedente
Esempio$ less /etc/fstab$ ...$ ...$ (reverse-i-search)fs: less /etc/fstab$ ls -l /etc/fstab-rw-r--r-- 1 root root 750 8 apr 2009 /etc/fstab
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 21 / 52
Sommario
1 Introduzione a GNU/Linux
2 La shell BashGeneralitGestione Base dei Processi
3 ComandiComandi PrincipaliComandi Avanzati
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 22 / 52
Esecuzioni in background
Diverse esecuzioniforeground esecuzione in primo
piano, blocca la shellbackground esecuzione in sfondo,
lascia libera la shell; si invocaaggiungendo il carattere & allafine del comando
Esempio$ firefox &[1] 7984$ ...$ $ ...[1]+ Done firefox
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 23 / 52
Cambiamento della modalit di esecuzione
Combinazioni da tastieraMentre un processo inesecuzione in foreground si pualterarne lesecuzione conCTRL\ si chiede al processo di
uscireCTRLC viene ucciso il
processoCTRLZ il processo viene
sospeso e restituita la shell
RiattivazionePer riattivare un processo:bg viene mandato in
backgroundfg viene mandato in
foreground
Esempio$ mc [1]+ Stopped mc$ vim [2]+ Stopped vim$ fg 1 # si riavvia mc
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 24 / 52
Canali di flusso dei processi
I 3 canali principalistdin canale di inputstdout canale di outputstderr canale per messaggi
derrore
Redirezione dei canali< nome-file reindirizza input
> nome-file reindirizza output
2> nome-file reindirizza stderr
>> nome-file aggiunge al file segi esistente
Esempio$ echo "6*7" > f.txt$ echo "10+3" >> f.txt$ cat f.txt6*710+3$ bc < f.txt4213$ cat /etc/shadow > p 2>&1$ # = cat /etc/shadow &> p$ cat pcat: /etc/shadow: Permission denied
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 25 / 52
Pipeline e sequenze
PipelineSi pu anche collegare lo stdoutdi un processo con lo stdin di unaltro, utilizzando il carattere | eformando una pipeline.
Esempio$ ps -e | grep bash7191 pts/3 00:00:00 bash8582 pts/5 00:00:00 bash8732 pts/5 00:00:00 bash
SequenzePer combinare comandi:com1 ; com2 com2
eseguito dopo com1com1 && com2 idem, ma solo
se com1 non ha datoerrori
Esempi$ sleep 20m; sudo halt
$ ./configure && make
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 26 / 52
Sommario
1 Introduzione a GNU/Linux
2 La shell BashGeneralitGestione Base dei Processi
3 ComandiComandi PrincipaliComandi Avanzati
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 27 / 52
echo e touch
echo
Stampa una stringa nellostdoutUtile negli script e nellesequenze di comandi
Esempio$ make && echo "Fatto..."
touch
Crea nuovi file vuotiCambia data di accesso omodifica di file esistenti
Esempi$ touch main.cc ; make
# mount -o remount,ro /# touch metouch: cannot touch me:Read-only file system# fsck /
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 28 / 52
cat e less
cat
Visualizza uno o pi file sullostdoutUtile per unire pi file (vedisplit)Visualizza su schermo filepiccoliPu essere usato anche perscrivere piccoli file
Esempi$ cat /etc/fstab$ cat >> TODO.txt
less
Visualizzatore di fileUsato dal man
/ Ricerca nel fileless -i Abilita ricerca
case-insentitive
Esempio$ dmesg | less
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 29 / 52
head e tail
head
Visualizza le prime righe di unfilehead -n Mostra le prime n
righe
Esempio$ find . | sort | head -3../.abook./.abook/addressbook
tail
Visualizza le ultime righe diun fileUtile per seguire file di log
tail -n Mostra le ultime n righetail -f Aspetta nuovi caratteri
dal file
Esempio# tail -f /var/log/messages$ tail -f wget-log
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 30 / 52
help, man e info
help
Aiuto sui comandi interni bash
man
Aiuto per programmi e comandiman -L en Richiede il manuale in
lingua inglese
Esempi$ help for$ man -L en vim$ gunzip -c bash.1.gz | groff -man > ~/bash-man.ps
info
Manuali in ipertestoSpesso pi completiNon molto usato
Segue il linkl (L minusc.) Torna indietro
/ Ricerca
Esempi$ info wget$ info find
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 31 / 52
pwd e cd
pwd
Stampa la directory correntepwd -P stampa directory
fisica, ignorando isymlinks
Esempio$ pwd/home/cesco/mp3$ pwd -P/store/audio/mp3
cd
Cambia directorycd torna alla home
cd - torna alla directoryprecedente
Esempio$ pwd/home/cesco/mp3$ cd /etc$ pwd/etc$ cd -/home/cesco/mp3
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 32 / 52
ls
Sintassi...Visualizza contenuto directory einformazioni filels -l visualizza anche
informazionils -R mostra ricorsivamente
sottodirectoryls -a mostra anche file
nascosti (.nomefile)ls -t ordina secondo orariols -r inverti ordine
...sintassils -d mostra directory senza
entrarcils -h human-readable,
dimensioni leggibili(es. 9,5M)
ls --color usa colori
Esempi$ touch {p,g,l}ino$ mkdir dir{1,2,3}$ ls -d */dir1/ dir2/ dir3/$ ls -ctrl ~/downloads
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 33 / 52
cp e mv
cp
Serve per copiare file o directorycp -R copia directory
ricorsivamentecp -p preserva attributicp -v elenca file durante la copiacp -u copia solo file pi recenti
mv
Sposta e/o rinomina filemv -v elenca file durante lo
spostamentomv -i chiede conferma prima
di una sovrascrittura
Esempi$ cp -v /media/usbdisk/*.jpg ~/foto$ mv vecchio-nome.jpg nuovo-nome.jpg
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 34 / 52
rm e ln
rm
Cancella file e directoryrm -R cancella
ricorsivamente lesottodirectory
rm -i chiede conferma aogni file
rm -f forza la rimozione
Esempio$ rm -R .[^.]*
ln
Crea link fra file, alias perraggiungerli da diversi percorsiln -s crea link simbolico (il pi
usato)ln -f cancella un eventuale link
gi esistente
Esempio$ ln -s /store/mp3 ~/mp3
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 35 / 52
chown e chmod
chown
Cambia proprietario e gruppo diun filechown -R Ricorsivo (si applica
ai contenuti delle directory)
chmod
Cambia i permessiOttale Permessi espressi in
base 8Mnemonico Per cambiare alcuni
permessi
Esempio# touch esempio; ls -l esempio-rw-r--r-- 1 root root 0 29 mar 15:47 esempio# chown cesco.cesco esempio; chmod 640 esempio# ls -l esempio-rw-r----- 1 cesco cesco 0 29 mar 15:47 esempio# chmod o+r esempio; ls -l esempio-rw-r--r-- 1 cesco cesco 0 29 mar 15:52 esempio
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 36 / 52
df e du
dfMostra spazio libero dei dispositivi
df -h human-readable
df -T mostra tipo dei filesystem
duMostra spazio usato da file
du -h human-readable
du -s non mostra filericorsivamente
Esempi$ df -ThFilesystem Type Dimens. Usati Disp. Uso% Montato su/dev/hda5 ext3 5,5G 2,1G 3,2G 40% //dev/hda6 ext3 3,7G 328M 3,4G 9% /home/dev/hda8 ext3 27G 2,1G 24G 9% /storetmpfs tmpfs 118M 0 118M 0% /dev/shm$ du -sh ~264M /home/cesco
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 37 / 52
ps e top
ps
Visualizza i processi attivips -u nome mostra processi di
nome
ps -e mostra tutti i processips ax mostra tutti i processi
con linea di comando
Esempio$ ps -u cesco
top
Programma grafico per gestire iprocessi attivi
? aiutos scegli tempi di
aggiornamentoF ordinau filtra per utentek manda segnaler cambia priorit
Esempio$ top
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 38 / 52
su e nice
su
Apri una shell come altroutente (root di default)su - Apri una shell di
login
Esempi$ su -Password:# su - postgres$ pgsql
nice
Avvia un comando con una certaprioritpriorit numero da -20 (max. priorit) a
20 (minimo)permessi solo root pu avviare a
priorit negativenice -n Avvia con priorit nrenice n PID Cambia priorit
Esempio$ nice -15 make# nice --10 xcdroast
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 39 / 52
kill e killall
kill
Manda un segnale a unprocessokill -s PID Invia segnale s
killall
Manda un segnale a tutti iprocessi con lo stesso nomekillall -s nome Invia
segnale s
Segnali15 Termina (default)
3 Quit9 Uccidi
19 Ferma18 Riattiva
Esempio$ ps -e | grep firefox4888 ? 00:06:29 firefox$ kill -15 4888$ killall -15 firefox
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 40 / 52
Sommario
1 Introduzione a GNU/Linux
2 La shell BashGeneralitGestione Base dei Processi
3 ComandiComandi PrincipaliComandi Avanzati
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 41 / 52
tar 1/2
SintassiCrea e gestisce archivi
tar -c Crea un archivio
tar -x Estrai un archivio
-f file Leggi/scrivi su fileanzich su stdin/out
Sintassi-z Archivio compresso con gzip
-v Elenca file (de)compressi
Esempi$ mkdir roba; touch roba/{p,g}ino$ tar -czf roba.tar.gz roba$ rm -R roba; tar -xvzf roba.tar.gzroba/roba/pinoroba/gino
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 42 / 52
tar 2/2
Sintassi-t Elenca i contenuti
-r Aggiungi a un archivio
-u Aggiorna un archivio
Sintassi-j Archivio compresso con bzip2
-p Preserva permessi
-h Segui i link simbolici
Esempi$ touch roba/{c,m}iao$ gunzip roba.tar.gz$ tar -rf roba.tar roba/?iao$ gzip roba.tar
$ tar -xjf pacchetto.tar.bz2
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 43 / 52
split
SintassiDivide un file in pezzi pi piccolisplit file pref Divide
file in prefaa, prefab,. . .
-b N Fa pezzi di N byte
UnionePer riunire i pezzi si usasemplicemente il cat:$ cat pref* > file
Esempi$ du -b filone10485760 filone$ split -b 3m filone p-$ du -b p-*3145728 p-aa3145728 p-ab3145728 p-ac1048576 p-ad$ cat p-* > unito$ du -b unito10485760 unito$ cmp filone unito
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 44 / 52
find 1/4
SintassiCerca dei file e ci fa qualcosa (default: stampa)find dir Cerca file in dir-name espr Cerca file per nome-iname espr Cerca file per nome ignorando
(maius/minus)cole-type f/d Cerca solo file/directory
Esempi$ find /store -iname *venez*.jpg/store/foto/varie/venezia-01.jpg$ find ~ -type d -name mutt*/home/cesco/dump/mutt-1.5.9
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 45 / 52
find 2/4
Sintassi-maxdepth n Scendi ricorsivamente fino al livello n-mindepth n Scendi ricorsivamente dal livello n-size dim Dimensione (maggi/min)ore di dim-ctime num File modificati da pi/meno di num giorni-perm Gestisci permessi dei file
Esempi$ find . -maxdepth 1 -size -3k./file-piccolo.est$ find . -ctime +30./oldfile.est./dir/vecchio.est
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 46 / 52
find 3/4
Sintassi-print0 Stampa separati da
carattere null (0x00)-delete Cancella i file-exec Esegui qualcosa per
ogni file
xargs
Prende nomi di file in stdin ecostruisce una riga di comandoxargs -0 Filename separati da
nullxargs -r Se stdin vuoto non
eseguire comando
Esempi$ find ~ -name *~ -delete$ find . -name *.eps -exec epstopdf {} \;$ find . -type f -perm 755 -print0 | xargs -0rchmod 644$ find . -type f -perm 755 -exec chmod 644 {} +
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 47 / 52
find 4/4
Sintassi( espr ) Raggruppa espressioni! espr Inverti espressione (NOT)espr1 espr2 AND delle espressioniespr1 -o espr2 OR delle espressioni
Esempi$ find . ! -iname *.jpg -ctime -7$ find . \( -name *.h -o -name *.cc \) -exec wc -l {} + | sort -n53 ./prog/sim-nonmax/punto.h69 ./prog/sim-nonmax/test2.cc92 ./prog/sim-sing/test.cc214 totale
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 48 / 52
grep 1/2
SintassiCerca del testo dentro i filegrep testo file Cerca testo in file-i Ignora maiuscole e minuscole-l Stampa solo i nomi dei file-Z Nomi file separati da null
Esempi$ find . -name *.txt -exec grep -i mucca {} +./farm.txt:Mucca, toro, vitello$ grep -lZ brutto * | xargs -0r rm
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 49 / 52
grep 2/2
Espressioni regolari(esp) Racchiude
espressione/$ Inizio/fine riga. Carattere qualunquee* da 0 a infinite e
e{n,m} e ripetuta da m an volte
e? e opzionale
Esempi$ D=/usr/share/dict/italian$ grep -E ^Lin $DLinus Linux$ grep -E ucca$ $DLucca mucca parrucca piluccastucca trucca zucca$ grep -E ^(vio)?.ino$ $DGino fino lino pino sino tino vino violino$ grep -E ^a.*b.*c.*d.* $Dabboccando abbracciando abbracciandola abbracciandolo abdicando
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 50 / 52
dd
SintassiCopia di tuttoif=file File di input (stdin di default)of=file File di output (stdout di default)bs=dim Dimensione blocchicount=c Numero blocchiskip=n Salta n blocchi dallinputseek=n Salta n blocchi dalloutput
Esempi$ dd if=/dev/sda of=usb.img bs=8M$ dd if=/dev/zero of=zero-file bs=1M count=10
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 51 / 52
Letture consigliate per approfondire. . .
Machtelt GarrelsIntroduzione a Linuxhttp://www.codex.altervista.org/introlinux.html
Brian Fox e Chet RameyManuale Bashman bash
Autori VariTutte le pagine manfind /usr/share/man -name *.[1-9].gz -execman -l {} \;
F. Versaci (DEI Univ. di Padova) Introduzione a GNU/Linux e alla Shell Bash Treviso 30 marzo 2010 52 / 52
http://www.codex.altervista.org/introlinux.html
Introduzione a GNU/LinuxLa shell BashGeneralitGestione Base dei Processi
ComandiComandi PrincipaliComandi Avanzati