Anteprima
Vedrai una selezione di 6 pagine su 24
Sistemi Operativi UNIX Shell + C [riassunti sintassi e comandi] Pag. 1 Sistemi Operativi UNIX Shell + C [riassunti sintassi e comandi] Pag. 2
Anteprima di 6 pagg. su 24.
Scarica il documento per vederlo tutto.
Sistemi Operativi UNIX Shell + C [riassunti sintassi e comandi] Pag. 6
Anteprima di 6 pagg. su 24.
Scarica il documento per vederlo tutto.
Sistemi Operativi UNIX Shell + C [riassunti sintassi e comandi] Pag. 11
Anteprima di 6 pagg. su 24.
Scarica il documento per vederlo tutto.
Sistemi Operativi UNIX Shell + C [riassunti sintassi e comandi] Pag. 16
Anteprima di 6 pagg. su 24.
Scarica il documento per vederlo tutto.
Sistemi Operativi UNIX Shell + C [riassunti sintassi e comandi] Pag. 21
1 su 24
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

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 : le

linee 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
Dettagli
Publisher
A.A. 2019-2020
24 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Mansitos di informazioni apprese con la frequenza delle lezioni di Sistemi operativi e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Udine o del prof Scagnetto Ivan.