Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
MONITORAGGIO
PID TTY TIME CMD23228 pts/15 0:03 xdvi.bin
Leggenda: PID = Process Identity Number TTY = terminale TIME = tempo cpu CMD = cmnd. che ha generato il processo
Varianti: (-a) tutti i processi del terminale. (-f) full listing. (-u <name>) filtra processi dello user <name>.(-e) tutti i processi, anche non associati al terminale. (-l) long listing.
> tty --> output: nome terminale corrente.
> jobs --> mostra la lista dei job in esecuzione.
- Terminazione di un processo:
> Ctrl-c termina il processo in esecuzione sul terminale corrente.
> kill x -> con x un PID; termina il processo con quel PID. Andrea Mansi UNIUD (Last Update 20/06/2019)
- Processi in background:
> & -> i comandi seguiti da & danno luogo a un processo in background. Vengono eseguiti in parallelo in una sottoshell.
RISORSE> top e >htop --> Visualizzazione grafica dell'utilizzo risorse.> df --> controllo del disco. > du --> Spazio utilizzato dalla directory corrente, (-s dir) per lo spazio della dir. dir..-------------------------------------------------------------------------------------------------------------------------------------------------------------❖ OPERAZIONI SUI FILE & FILTRI:> touch <options> <file> --> aggiorna la proprietà "ultima modifica" del file alla data attuale.NB: Doppia utilità, se il file non esiste, viene creato!> cmp x y --> restituisce il primo byte ed il numero di linea in cui x e y differiscono. Se sono uguali non viene restituito alcun valore.> diff f1 f2 -> Restituisce la lista di cambiamenti da apportare a f1 per renderlo uguale a f2.> find <pathname> <expression> --> attraversa ricorsivamente le directory specificate in <pathnames> applicando le regole.di <expression> che può essere: 1. Opzione 2. Condizione 3. Azione. Esempio find: > find . -name '*.c' -print --> cerca ricorsivamente a partire dalla directory corrente (il punto) tutti i file con estensione c e li stampa a video. > find <path> -name <string> -exec <action> --> Esegue <action> su tutti i file di nome <string> contenuti nel <path> (ricorsivamente). > uniq file --> restituisce il contenuto di "file", sostituendo le linee adiacenti uguali con un'unica linea. - General Regular Expression Parser > grep --> restituisce solo le linee dell'input fornito che contengono un pattern specificato tramite espressione regolare o stringa fissata. Sintassi: grep [options] <pattern> <file> - (varianti: fgrep = grep -F, egrep = grep -E, etc..). - -i : ignora la distinzione fra lettere maiuscole e minuscole, - -l : fornisce la lista dei file che contengono il pattern/string, - -n : lelinee in output sono precedute dal numero di linea,
-v : vengono restituite solo le linee che non contengono il pattern/string,
-w : vengono restituite solo le linee che contengono il pattern/string come parola completa,
-x : vengono restituite solo le linee che coincidono esattamente con pattern/string.
Andrea Mansi UNIUD (Last Update 20/06/2019)
- Metacaratteri delle espressioni regolari:
- Esempi di utilizzo del comando grep:
> fgrep rossi /etc/passwd --> linee del file /etc/passwd che contengono la stringa “rossi”.
> egrep -nv ‘[agt]+’ relazione.txt --> linee del file relazione.txt che non contengono stringe composte dai caratteri a,g,t.
> grep -w print *.c --> linee di tutti i file con estensione c che contengono la parole intera print.
> ls -al . | grep ‘^d…....w.’ --> sottodirectory della dir. corrente che sono modificabili dagli utenti ordinari.
> ls -l | grep ‘^-‘ --> filtra le linee che iniziano con -
caratteri corrispondenti in string2). (es. tr 'abc' 'xyz' < file sostituisce 'a' con 'x', 'b' con 'y' e 'c' con 'z').caratteri inposizione corrispondente della stringa string2). Può leggere e scrivere solo dastandard input/output. by default. Percui tr e basta lascia scrivere su shell l’input.
Options:
- (-s) squeeze, rimuove i char. ripetuti. Esempio: “aabcca” --> “abca”
- (-c) Complemento, “non”.
- (-d) delete.
Esempi:
> tr a-z A-Z --> Converte le minuscole in maiuscole.
> tr -c A-Za-z0-9 ‘ ‘ --> Sostituisce tutti i caratteri non (opzione -c : complemento) alfanumerici con degli spazi.
> tr -d str --> Cancella i caratteri contenuti nella stringa str.
By default se non fornito di testo (con una pipeline ad es.) opera nel testo immesso da shell (Interrompibile con ctrl-D).
Stream Editor: sed
> sed <actions> <files> --> Permette di editare un testo passato da un comando ad un altro tramite pipeline.
info -> Se vi è più di un’azione, esse possono essere specificate sulla riga di comando
precedendo ognuna con l'opzione -e, oppure possono essere lette da un file esterno specificato sulla linea di comando con l'opzione -f. Se non viene specificato un indirizzo o un intervallo di indirizzi di linea su cui eseguire l'azione, quest'ultima viene applicata a tutte le linee in input. Gli indirizzi di linea si possono specificare come numeri o espressioni regolari.
Andrea Mansi UNIUD (Last Update 20/06/2019)
Esempi di SED:
s> sed 's/string1/string2/' file --> sta per sostituzione: ogni occorrenza di string1 verrà sostituita con string2.
NB: by default sed sostituisce solo la prima occorrenza per ciascuna riga. Per sostituire l'n-esima occorrenza si usi 's/string1/string2/n' dove n indica quante occorrenze sostituire per ciascuna riga. Usare al posto di n equivale a settare un valore infinito; sostituirà tutte le occorrenze. La combinazione tra 'n e g' permette di sostituire a partire dalla n-esima ripetizione.
‘s/string1/string2/3g’ignorerà la prima e la seconda occorrenza e sostituirà dalla 3 in poi.
> sed ‘3 s/string1/string2/’ file --> Esegue la sostituzione solo nella terza riga del file.
> sed ‘2,4 s/string1/string2/’ file --> Esegue la sostituzione solo nelle righe 2,3,4. (Range) $ per indicare l’ultima riga.
> sed ‘nd’ file --> elimina l’n-esima riga del file.
> sed ‘$d’ file --> elimina l’ultima riga del file.
> sed ‘x,yd’ file --> ellimina le righe dall’x-esima alla riga numero y.
> sed ‘/pattern/d’ --> elimina le righe contenenti il pattern.
> sed 3q /etc/passwd --> Stesso effetto del precedente: in questo caso sed esce dopo aver elaborato la 3’ riga.
> sed y/abc/ABC/ f1 --> sostituisce i caratteri a con A, b con B, c con C-q (by default dallo stdin, se manca f1).- Cut & PasteIl comando cut è utile ad
estrarre colonne specifiche dalle linee di testo ricevute in input. Esempio:
cut -d: -f1 /etc/passwd
--> estrae la prima colonna di ogni linea del file specificato. -d: indica che il separatore tra le colonne non è più il valore default (ovvero space 'tab') ma i due punti ':'.Opzioni cut:
(-b list)
(-c list) (-d DELIM): seleziona solo quella lista di bytes sel. solo quella lista di caratteri Utilizza il carattere specificato in DELIM come "field delimiter" invece che <tab> (che è il default)(-f LIST)
(-s) seleziona solo questi field (esempio: -f3 solo il terzo field "colonna") non printa le linee senza delimitatori.
Esempi di utilizzo di cut:
cat /etc/passwd | cut -d: -f3 | sort -n
--> estrae e printa il 3° campo di ogni riga (ogni user-ID) dal file passwd in ordine crescente
date | tr -s ' ' | cut -d' ' -f4
--> estrae l'anno dalla data (output data: "gio 5 feb 2010 15:32:56")<p>)(tr -s` ` comprime eventuali spazi multipli tra gio e 5 ad esempio).> paste file1 file2 --> combina le righe corrispondenti di due file, inserendo un delimitatore fra di esse(default delim: <tab>).</p>
<hr>
<p>❖ INODE & LINK SIMBOLICI</p>
<p>In Unix, ad ogni file corrisponde un numero di inode, che è l’indice in un array memorizzato su disco. Ogni elemento dell’array contiene le informazioni relative al file. Le directory sono tabelle che associano nomi di files a numeri di inode.</p>
<p>> ln f2 f2_new --> Creazione di 1 link hard, il file f2_new ha lo stesso inode di f2.</p>
<p>> ln -s g1 g1_new --> Creazione di 1 link simbolico, g1_new è un file di testo che contiene il pathname di g1.</p>
<p>Andrea Mansi UNIUD (Last Update 20/06/2019)</p>
<p>UNIX SHELL SCRIPTING</p>
<p>Shell script: Programmi interpretati dalla shell in cui i</p>
costrutti atomici sono comandi Unix. (NB: La sintassi può cambiare da shell a shell, faremo riferimento alla shell bash di unix.)
Esempio:
> cat >data
- edito il file data...
> echo The date today is:
- ci scrivo all'interno...
> date
- termino l'editing.
> chmod 700 data
- setto i permessi di esecuzione...
> data
- invoco lo script da shell...
The date today is: xx/xx/xxxx
- output.
Set -x/Set -v
--> Se in uno script si aggiunge questa dicitura/comando, da li in poi durante l'esecuzione la shell visualizzerà i comandi nel momento in cui li legge. Utile per il debugging. Set -- ne annulla l'effetto.
- Variabili:
Assegnamento di una variabile: variabile=valore
(importante non lasciare spazi a sx e dx dell'uguale).
Esempio:
x=variabile
y='y è una variabile'
Si usa $
per accedere al valore da script. Oppure
Esempio: echo il valore di x: $x
--> il valore di x: variabilex: variabile echo il valore di x: <?php echo $x; ?>
il valore di x:
Nel secondo esempio la s