La shell di Unix Uso interattivo e scripting

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "La shell di Unix Uso interattivo e scripting"

Transcript

1 La shell di Unix Uso interattivo e scripting Paolo Baldan baldan@dsi.unive.it Dipartimento di Informatica Università di Venezia La shell di Unix p.1/96

2 Obiettivi L obiettivo di questo ciclo di lezioni è quello di illustrare le funzionalità principali della shell di UNIX e di tools comunemente presenti nelle distribuzioni di UNIX. Uso interattivo della shell Concetti di base, interazione con la shell, comandi di base, personalizzazione. Struttura e funzionalità della shell di UNIX (con particolare riferimento a Linux ed alla Bash shell). Espansione della riga di comando, ridirezione, comandi composti (liste, pipe, sequenze condizionali). Programmazione della shell (shell scripting). Funzioni, pattern matching, costrutti di controllo, tipi, segnali, debugging. La shell di Unix p.2/96

3 Introduzione a UNIX (Ripasso) La shell di Unix p.3/96

4 Cos è UNIX UNIX è un sistema operativo multiutente e multitasking. Più utenti possono avere vari tasks/processi che sono eseguiti contemporaneamente. UNIX è anche un ambiente di sviluppo software. È nato ed è stato progettato per questo scopo. (Ad esempio fornisce utilità di sistema, editor, compilatori, assemblatori, interpreti,... ) UNIX è stato appositamente progettato per essere generale e indipendente dall hardware (facilmente portabile essendo scritto nel linguaggio ad alto livello C). La shell di Unix p.4/96

5 Breve storia di UNIX/A 1965: La AT&T, il MIT e la General Electric si uniscono nel progetto di un s.o. innovativo, che sia multiutente, multitasking, multiprocessore, con multilevel file system: MULTICS. 1969: Il progetto MULTICS fallisce. Presso i Bell Laboratories della AT&T, dalle ceneri di MULTICS nasce UNIX, sviluppato da Ken Thompson e Dennis Ritchie del gruppo Multics per un PDP-7. Anche sulla base dell esperienza MULTICS, incorpora alcune caratteristiche e supera i limiti di sistemi operativi preesistenti, supportando, in modo efficiente, multiutenza e multitasking. Il nome UNIX (inizialmente Unics) è scelto da Kernighan in opposizione a MULTICS. La shell di Unix p.5/96

6 Breve storia di UNIX / C 1973: La terza versione viene scritta nel linguaggio di programmazione ad alto livello C (anziché in assembler), sviluppato ai Bell Labs da Dennis Ritchie (come evoluzione di B) proprio per supportare UNIX. È un passo importante dato che esisteva la convinzione che solo il linguaggio Assembly permettesse di ottenere un livello di efficienza accettabile. Fine anni 70: AT&T rende UNIX largamente disponibile, offrendolo alle Università a basso costo e distribuisce i sorgenti di varie versioni (costretta da un decreto dell antitrust che le impone di scegliere tra telecomunicazioni e informatica). La shell di Unix p.6/96

7 Breve storia di UNIX / D 1984: presso l Università di Berkeley (California) nasce la Berkeley Software Distribution (BSD). versione 4BSD: sviluppata con una sovvenzione del DARPA al fine di progettare uno standard UNIX per uso governativo. versione 4.3BSD: sviluppata originariamente per il VAX, è una delle versioni più influenti. Verrà portata su molte altre piattaforme. 1984: molte caratteristiche della BSD vengono incorporate nella nuova versione di AT&T: la System V. Esistono oggi diverse implementazioni di UNIX supportate da molte case costruttrici di computer: SunOS/Solaris (Sun Microsystems), Ultrix (DEC), XENIX (Microsoft), AIX (IBM),.... La shell di Unix p.7/96

8 Storia di free UNIX 1983: Richard Stallmann (MIT) inizia una reimplementazione free di UNIX, detta GNU (acronimo ricorsivo di GNU is not UNIX ) che porterà a un editor (emacs), un compilatore (gcc), un debugger (gdb) e numerosi altri tools. 1991: Linus Torvald (studente ad Helsinki) inizia l implementazione di un kernel POSIX compatibile, che prenderà il nome di Linux. Arricchito con i tools GNU esistenti ed altri sviluppati da volontari, diviene un sostituto completo di UNIX. 1991: L Università di Berkeley rilascia una versione free di UNIX, rimuovendo il codice proprietario rimanente della AT&T. Progetti volontari continueranno poi il suo sviluppo (FreeBSD, NetBSD, OpenBSD). La shell di Unix p.8/96

9 Copyleft Public domain Il metodo più semplice per produrre free software è quello di renderlo di pubblico dominio, senza copyright. In questo modo, però, qualcuno può modificare il software e distribuirlo come un prodotto proprietario. Copyleft: permette di distribuire un software come free, garantendo che eventuali versioni modificate ed estese saranno ancora free. Ogni utente può avere accesso libero al software. Può avere accesso ai sorgenti, modificare il programma ed estenderlo. Può ridistribuirlo, ma con lo stesso tipo di licenza. La shell di Unix p.9/96

10 Filosofia di UNIX Influenzata da problematiche relative all HW disponibile all epoca della progettazione di UNIX: i dispositivi di I/O erano teletype e più tardi terminali video con 80 caratteri per linea (ASCII fixed width). Comandi, sintassi di input e output succinti (per ridurre il tempo di battitura). Ogni componente/programma/tool realizza una sola funzione in modo semplice ed efficiente (UNIX vs. MULTICS). Es. who e sort. L output di un programma può diventare l input di un altro. Programmi elementari possono essere combinati per eseguire compiti complessi (Es. who sort). Il principale software di interfaccia (la shell) è un normale programma, sostituibile, senza privilegi speciali. Supporto per automatizzare attività di routine. La shell di Unix p.10/96

11 Motivi del successo di UNIX Ha dimensioni relativamente ridotte, un progetto modulare e pulito Indipendenza dall hardware Il codice del SO è scritto in C anziché in uno specifico linguaggio assembler. UNIX e le applicazioni UNIX possono essere facilmente portate da un sistema hardware ad un altro. Il porting usualmente consiste nel trasferire il codice sorgente e ricompilarlo. È un ambiente produttivo per lo sviluppo del software Ricco insieme di tool disponibili. Linguaggio di comandi versatile. La shell di Unix p.11/96

12 Principali caratteristiche di UNIX Gestione dei Processi Sono basati sul modello fork / exec Hanno un identità ed un possessore, informazioni utilizzate per protezione e scheduling. La CPU è gestita in time-sharing, suddividendo il tempo di CPU in slice (quanti di tempo), assegnate ai processi in base a priorità (e comportamento passato). Supporto alla programmazione concorrente e distribuita, tramite meccanismi di IPC. Gestione della memoria basata su paginazione con varianti, es. buddy system La shell di Unix p.12/96

13 Principali caratteristiche di UNIX/A File System Struttura gerarchica grafo radicato (aciclico), in cui file e processi hanno una propria locazione. Strumenti per la creazione, modifica e distruzione e protezione (controllo degli accessi) ai file. Unix è orientato ai file: Tratta i dispositivi periferici come se fossero dei file (speciali). Stampanti, terminali ed altri dispositivi sono accessibili nello stesso modo di file ordinari. La shell di Unix p.13/96

14 Componenti di UNIX Kernel: nucleo del sistema (gestore di risorse: CPU, memoria, dispositivi,... ) System Call e routine di libreria: facilitano la programmazione, permettendo di accedere a funzionalità del kernel (manipolazione di file, gestione di processi concorrenti e comunicazione tra processi). Shell: interprete di comandi (interfaccia tra l utente ed il kernel). Utilities: programmi di utilità (editor, operazioni su file, stampa, supporto alla programmazione,... ) Programmi di utilità System call kernel HW Shell Utente La shell di Unix p.14/96

15 Uso interattivo della shell La shell di Unix p.15/96

16 La Shell (informalmente... ) Interfaccia (testuale) tramite la quale l utente interagisce con il sistema dopo il login. È un interprete di comandi: legge ciascuna linea di comando, ne interpreta le diverse componenti e la esegue. Ogni sistema UNIX mette a disposizione vari tipi di shell. Le shell più diffuse sono: Bourne shell (sh), C shell (csh), Korn shell (ksh), TC shell (tcsh), Bourne Again shell (bash). Inizialmente, l amministratore del sistema fornisce all utente una shell di default che però può essere cambiata o personalizzata. Ogni shell fornisce un linguaggio di programmazione. I programmi di shell, chiamati shell script, sono sequenze di comandi, con costrutti di controllo, che automatizzano semplici task. La shell di Unix p.16/96

17 Perché usare una shell testuale? Ormai tutti i sistemi UNIX hanno un interfaccia grafica. Perché usare i comandi in linea di una shell testuale? Potenza e semplicità: I comandi UNIX sono progettati per risolvere problemi specifici. Sono semplici (senza menù e opzioni nascoste) e proprio per questo potenti (es. grep parola filename). Velocità e flessibilità: è più veloce scrivere pochi caratteri da tastiera piuttosto che cercare un programma opportuno e usare le operazioni che fornisce sulla base delle proprie specifiche esigenze. Accessibilità: permette di accedere efficientemente ad un sistema in remoto. La shell di Unix p.17/96

18 I comandi UNIX La sintassi tipica dei comandi UNIX (builtin e file eseguibili) è la seguente Opzioni Argomenti comando <opzioni> <argomenti> Sono opzionali e influiscono sul funzionamento del comando. Consistono generalmente di un hyphen (-) seguito da una sola lettera (Es. ls -l). Hanno anche una forma estesa (Es. ls --format long). Possono avere un argomento (Es. dvips -o p.ps p.dvi). Spesso più opzioni possono essere raggruppate insieme dopo un solo hyphen (Es. ls -al). Si possono avere più argomenti o nessuno. Alcuni argomenti sono opzionali. Se non specificati assumono valori di default. La shell di Unix p.18/96

19 I comandi di UNIX - Esempi nessun argomento: il comando date mostra data e ora corrente. date un solo argomento: il comando cd cambia la directory di lavoro corrente in quella specificata dal suo argomento. cd mydir un opzione ed un argomento: il comando wc conta il numero di parole/caratteri/righe in un file, in base all opzione specificata. wc -w file1 wc -c file1 wc -l file1 conta le parole in file1 conta i caratteri in file1 conta le linee in file1 La shell di Unix p.19/96

20 I comandi di UNIX - Esempi / A numero arbitrario di argomenti: il comando cat concatena e mostra sullo schermo il contenuto dei file argomento. cat file1 file2 file3 più opzioni ed un argomento di default: ls -als lista dettagliata (l, long) di tutti (a, all) i file, con dimensione (s, size). L argomento di default è la directory corrente. Più comandi, separati da ; possono essere scritti sulla stessa linea. cd newdir ; ls -l I comandi possono essere scritti su più linee usano il carattere backslash (\). Ad esempio, cp /users/kelly/recipe kelly.recipe ; \ lpr -Pps3 kelly.recipe La shell di Unix p.20/96

21 Caratteri di controllo Alcune combinazioni di tasti hanno un effetto particolare sul terminale. I caratteri di controllo sono ottenuti tenendo premuto il tasto Ctrl e quindi premendo un secondo tasto. Ecco i più comuni: Ctrl-u - erase the command line Ctrl-c - stop/kill a command Ctrl-h - backspace (usually) Ctrl-z - suspend a command Ctrl-s - stop the screen from scrolling Ctrl-q - continue scrolling Ctrl-d - exit an interactive program (signals end of data) La shell di Unix p.21/96

22 Esempio - Ctrl-d Il programma cat, senza argomenti, copia l input (battuto da tastiera) sull output (schermo). Es. /home/rossi$ cat Questo l ho scritto io! input Questo l ho scritto io! output La mancanza del prompt indica che siamo ancora in cat. Per segnalare a cat (ed a molti altri programmi interattivi) la fine dell inserimento dei dati occorre digitare Ctrl-d, detto carattere di fine-file (End-Of-File o EOF). Esempio: Provate il programma sort: se inserite un paio di linee e poi premete Ctrl d, sort le visualizzerà in ordine alfabetico. La shell di Unix p.22/96

23 Editing della linea di comando Molte shell, tra cui bash, offrono funzioni di editing della linea di comando che sono ereditate dall editor emacs. Ecco alcune delle funzioni più utili: Ctrl-a - va a inizio riga Ctrl-e - va a fine riga Ctrl-k - cancella il resto della linea Ctrl-y - reinserisce la stringa cancellata Ctrl-d - cancella il carattere sul cursore La shell, inoltre, registra i comandi inseriti dall utente. Il comando history li elenca. Per richiamarli...!! - richiama il comando precedente!n - richiama la n-ma entry, - naviga nella history La shell di Unix p.23/96

24 Completamento dei comandi Un altra caratteristica di bash è il completamento automatico della linea di comando con il tasto Tab. Vediamo un esempio di utilizzo. Supponiamo di essere in questa situazione. /home/rossi$ ls un-file-con-un-nome-molto-lungo Per copiare il file su corto, anziché digitare per esteso il nome si può digitare cp un. Quindi premendo il tasto Tab il resto del nome viene mostrato nella riga di comando e si potrà a questo punto completare il comando. Se esistono più completamenti possibili, premendo Tab verrà emesso un suono. Premendo nuovamente Tab si ottiene la lista di tutti i file che iniziano in quel modo. La shell di Unix p.24/96

25 Gestione dei files La shell di Unix p.25/96

26 File system File system: è la struttura che permette la memorizzazione e l organizzazione dei dati nel sistema. È estremamente importante perché UNIX è un sistema orientato ai file nel senso che molte operazioni vengono effettuate tramite essi (accesso a periferiche e comunicazione tra processi). Un nome nel file system può riferirsi a: file dati (che può anche essere una directory) dispositivo di input/output (disco, nastro, stampante,... ) memoria interna informazioni sul sistema hardware e software La shell di Unix p.26/96

27 File system / A Un file può essere visto come una sequenza di byte, indipendentemente dal tipo di file (file dati, dispositivo,... ) Una directory può essere vista come un contenitore di file o di directory, si ha quindi una struttura gerarchica (ad albero... se si trascurano i link). bin dev etc lib tmp usr bin lib local ttya null passwd group user1 user2 sh date csh / mail bin papers home user3 La shell di Unix p.27/96

28 Organizzazione del file system Per tradizione esistono alcune directory che nel file system assumono un ruolo particolare. \ è la radice della gerarchia; bin sbin dev etc lib mnt var comandi più importanti del sistema; comandi che riguardano alcune importanti funzioni di gestione del sistema (dump, shutdown, ecc.); dispositivi di input/output che possono essere visti dalla macchina (dischi, nastri, ecc.); file di configurazione del sistema (passwd, fstab, lilo.conf, ecc.); librerie condivise per ridurre la dimensione dei file eseguibili; mount point dei dispositivi esterni; contiene file di dimensione variabile (es. in log ci sono i file di log, in spool ci sono file usati da altri programmi (posta in ingresso, stampe,... ); usr contiene i file non essenziali ma utili (es: le sottodirectory bin con emacs, gzip,... X11R6 con il sistema XWindow, man con tutti i manuali, src con tutti i sorgenti); proc home è un file system virtuale che contiene tutte le informazioni di sistema, dai processi alla cpu (cpuinfo, version,... ). contiene le directory personali di tutti gli utenti. La shell di Unix p.28/96

29 Working e Home directory In UNIX ogni processo ha associata una working directory (directory di lavoro). Per conoscere la directory corrente si può utilizzare il comando pwd $ pwd /home/rossi $ Ogni utente username ha una home directory la parte del file system riservata per suoi file. È indicata con username Dopo il login, l utente si trova automaticamente nella propria home directory, da dove comincia a lavorare. La shell di Unix p.29/96

30 Navigare nel file system - cd Ci si può spostare all interno del file system e quindi modificare la working directory con il comando cd. cd [<dir>] Il parametro <dir> è opzionale. Se non viene indicato, il comando porta nella home directory. Es: /home/rossi$ cd /bin /bin$ cd /home/rossi$ Per la navigazione risultano utili le directory:. (working directory) e.. (directory padre). Es:. /home/rossi$ cd.. /home$ cd. /home$ La shell di Unix p.30/96

31 Pathname Specifica la locazione di un file all interno di un file system. Pathname assoluto: dice come raggiungere un file partendo dalla radice del file system; comincia sempre con / (slash). /usr/local/doc/training/sample Pathname relativo: dice come raggiungere un file a partire dalla working directory o dalla home directory di un utente. training/sample../bin /projects/report rossi/projects/report Esempio: Per spostarsi da /home/rossi a /home/bianchi: cd../bianchi cd /home/bianchi - relative pathname - absolute pathname La shell di Unix p.31/96

32 Visualizzare una directory Il comando ls permette di visualizzare il contenuto di una (o più) directory. ls [-alsfr] [<dir1>... <dirn>] Alcune opzioni: -a visualizza anche i file nascosti (che iniziano con. ) -l visualizza informazione estesa sui file -s visualizza la dimensione -F aggiunge un carattere finale al nome che ne denota il tipo: / per directory, * per per link, = per socket, nessuno per i file ordinari). -R mostra ricorsivamente le sottodirectory Se non viene specificata nessuna directory, ls si riferisce alla directory corrente. La shell di Unix p.32/96

33 Creare e rimuovere directory Tramite i comandi mkdir e rmdir si possono creare e cancellare directory. mkdir <dir1> [<dir2>... <dirn>] rmdir <dir1> [<dir2>... <dirn>] Ognuno degli argomenti è considerato una directory da creare/cancellare. Es.: /home/rossi$ mkdir report-2000 report-2001 /home/rossi$ ls -F report-2000/ report-2001/ /home/rossi$ rmdir report-2000 report-2002 rmdir: report-2002: No such file or directory /home/rossi/$ ls -F report-2001/ Una directory può essere rimossa solo se è vuota: /home/rossi$ rmdir.. rmdir:.. : Directory not-empty La shell di Unix p.33/96

34 Copiare, spostare, rimuovere file Tramite il comando cp si possono copiare file: cp -i <oldname> <newname> cp -ir <name1> [<name2>... <namen>] <destdir> Prima forma: crea una copia <newname> del file <oldname>. Con l opzione -i il sistema chiede conferma prima di sovrascrivere un file. Es: /home/rossi$ ls chap1 /home/rossi$ cp chap1 chap2; ls chap1 chap2 Seconda forma: il comando ha più di due argomenti. In questo caso l ultimo <destdir> deve essere una directory, dove vengono inseriti i file <name1>... <namen>. L opzione -r permette di copiare ricorsivamente le sottodirectory. La shell di Unix p.34/96

35 Copiare, spostare, rimuovere file / A Il comando mv per spostare/rinominare file ha sintassi e funzionamento simile a cp, se non per il fatto che il file originale scompare mv -i <oldname> <newname> mv -i <name1> [<name2>... <namen>] <dest> Copia + rimozione? Move tra fs diversi? Il comando per la cancellazione di file è rm ed ha sintassi rm -ir <name1> <name2>... <namen> Particolarmente interessante l opzione -r che permette di rimuovere una directory con tutto il corrispondente sottoalbero. La shell di Unix p.35/96

36 I Metacaratteri Accade spesso di voler operare su più file contemporaneamente. Ad es. supponiamo di voler copiare tutti i file che cominciano con data nella directory /backup). UNIX fornisce un modo molto efficiente per ottenere questo scopo: /home/rossi/report$ ls -F data-new data1 data2 inittab2 pippo /home/rossi/report$ mkdir /backup /home/rossi/report$ cp data* /backup /home/rossi/report$ ls -F /backup data-new data1 data2 /home/rossi/report$ (Cosa farebbe cp d*2 /backup?) La shell di Unix p.36/96

37 I Metacaratteri / A Ecco un elenco dei metacaratteri:? ogni carattere * ogni stringa di caratteri [set] [!set] ogni carattere in set ogni carattere non in set dove set può essere una lista di caratteri (es. [abc]) oppure un intervallo (es. [a-c]) o una combinazione dei due. Se la shell trova un espressione contenente metacaratteri in una linea di comando, la espande con tutti i nomi di file che soddisfano (match) l espressione (espansione di percorso). La shell di Unix p.37/96

38 I Metacaratteri / B Per capire meglio come funziona l espansione di percorso introduciamo un nuovo comando, echo. È un comando estremamente semplice: rimanda sullo schermo ogni parametro. /home/rossi$ echo Ciao! Ciao! /home/rossi$ cd report /home/rossi/report$ ls -F data-new data1 data2 inittab pippo pippo2 /home/rossi/report$ echo data* data-new data1 data2 /home/rossi/report$ echo data? data1 data2 /home/rossi/report$ echo [!id]* pippo pippo2 /home/rossi/report$ Es. Cosa accade se si esegue cd *? La shell di Unix p.38/96

39 Caratteri speciali NEWLINE - initiates command execution ; - separates commands on same line ( ) - groups commands or identifies a function & - executes a command in the background - pipe > - redirects standard output >> - appends standard output < - redirects standard input * - wildcard for any number of characters in a file name? - wildcard for a single character in a file name - quotes the following character - quotes a string preventing all substitutions " - quotes a string allowing variable and command substitution - performs command substitution [ ] - denotes a character class in a file name $ - references a variable - command grouping within a function. - executes a command (if at beginning of line) # - begins a comment : - null command La shell di Unix p.39/96

40 Accesso ai file La shell di Unix p.40/96

41 Informazioni sui file Time stamp Ad ogni file sono associate tre date: cambiamento attributi, la data di ultima modifica e ultimo accesso. User (Proprietario) Ogni file in UNIX è di proprietà di un utente del sistema. Group (Gruppo) Ogni file è associato ad un gruppo di utenti: quello più comune per i file utente è chiamato users, ed è generalmente condiviso da tutti gli account utente del sistema. Permessi Ad ogni file sono associati dei permessi (chiamati anche privilegi ), che specificano chi e in che modo (lettura, modifica, esecuzione) può accedere a quel file. Ognuno di questi permessi può essere impostato separatamente per il proprietario, il gruppo e tutti gli altri utenti (others). La shell di Unix p.41/96

42 Modificare le informazioni sui file Le informazioni sui file possono essere visualizzate tramite il comando ls -l. Per esempio > ls -l total 2 -rw-r--r-- 1 rossi users 15 Mar 9 12:40 pippo -rw-r--r-- 1 rossi users 155 Mar 9 12:41 pluto drwxr-xr-x 2 rossi users 1024 Mar 7 17:33 OLD In particolare, ogni linea include: il tipo del file (primo carattere) i permessi di accesso (caratteri 2-10): il proprietario il gruppo 2-4: owner 5-7: group 8-10: other La shell di Unix p.42/96

43 Permessi di accesso I permessi possono (sostanzialmente) essere: r = permesso di lettura w = permesso di scrittura x = permesso di esecuzione - = mancanza di permesso Alcuni esempi -rw rossi users 3287 Apr 8 12:10 file1 -rw-r--r-- 1 rossi users Apr 8 12:11 file2 -rwxr-xr-x 1 rossi users 4133 Apr 8 12:10 myprog drwxr-x--- 1 rossi users 1024 Jun 7 10:00 SCCS Il permesso x su una directory consente di attraversarla. C è una forma di dipendenza: per accedere ad un file, oltre ai diritti necessari per l operazione desiderata, occorre il permesso x su ogni directory che compare nel pathname. La shell di Unix p.43/96

44 Cambiare i permessi con chmod chmod <triads> <filename>* dove triads sono della forma who action permission who action permission u = user + = aggiunge r = read g = group - = rimuove w = write o = other = = assegna x = execute a = all = user La shell di Unix p.44/96

45 Cambiare i permessi con chmod / A Alcuni esempi: chmod a+r sample.c chmod o-r sample.c chmod og+rx prog* chmod g=rw rep* chmod +w * L opzione -R cambia (ricorsivamente) i permessi di una directory e di tutti i file e sottodirectory di quella directory. La shell di Unix p.45/96

46 chmod numerico I permessi di accesso rwx possono essere rappresentati come un numero ottale. Es. r-x diviene 101 e quindi 5 8. Il permesso r è rappresentato da 4, w da 2 e x da 1. Per ciascuna categoria di utenti (proprietario, gruppo, altri) questi valori possono essere sommati. Quindi, si ha 0 = = r-- 1 = --x 5 = r-x (4+1) 2 = -w- 6 = rw- (4+2) 3 = -wx (1+2) 7 = rwx (4+2+1) I permessi di accesso possono allora essere espressi con 3 cifre ottali. user group others chmod 640 file1 rw- r chmod 754 file1 rwx r-x r-- chmod 664 file1 rw- rw- r-- La shell di Unix p.46/96

47 Stabilire i permessi con umask umask <mask> Può essere utilizzato per assegnare i permessi di default. Tipicamente è usato in uno dei file di startup (per esempio,.login,.cshrc,.profile) ma può essere usato anche in modo interattivo. Specifiche ottali (anche simboliche in bash). Diversamente da chmod, rappresentano i permessi da mascherare (cioè, da rimuovere). Octal number Access permissions given 0 rwx read, write and execute 1 rw- read and write 2 r-x read and execute 3 r-- read only 4 -wx write and execute 5 -w- write only 6 --x execute only no permissions La shell di Unix p.47/96

48 Stabilire i permessi con umask / A Il sistema assegna di default i permessi 666 per i file e 777 per le directory. Alcuni esempi: umask 077 Sottrae 077 dai permessi di default del sistema per i file e le directory. Il risultato è che i permessi di default diventano 600 per i file (rw ) e 700 (rwx------) per le directory. umask 002 Sottrae 002 dai permessi di default del sistema per i file e le directory. Il risultato è che i permessi di default diventano 664 per i file (rw-rw-r--) e 775 (rwxrwxr-x) per le directory.! umask sottrae i valori passati come parametri sempre ai valori di default (666 e 777), anche se usato più volte consecutivamente. La shell di Unix p.48/96

49 Cambiare proprietario e gruppo Per cambiare il proprietario (owner) di un file chown <new owner> <filename> Nella maggior parte dei sistemi UNIX, per modificare il proprietario di un file bisogna essere un super-user (es. l amministratore del sistema). Il proprietario di un file può cambiare il gruppo (group) del file con un qualsiasi altro gruppo a cui l utente stesso appartenga. chgrp <new group> <filename> Per entrambi i comandi al opzione -R permette di propagare ricorsivamente il cambiamento su tutta una directory. La shell di Unix p.49/96

50 Visualizzare i file La shell di Unix p.50/96

51 Mostrare il contenuto di un file Il comando cat concatena e visualizza sullo schermo (standard output) il contenuto di uno o più file. cat [<filename1>...<filenamen>] Il comando echo visualizza sullo schermo l argomento che gli viene passato (a cui aggiunge un carattere newline, a meno che non si specifichi l opzione -n). echo [-n] <string> I comandi more, less e pg (potrebbero non essere tutti disponibili) mostrano il contenuto di un file una schermata alla volta. Inoltre, permettono di tornare a pagine precedenti, di effettuare ricerche,.... La shell di Unix p.51/96

52 Il comando less Una volta digitato less <filename> si può navigare nel file. Ecco alcune opzioni, scorre su e giù di una riga;, scorre a dx e sx di una schermata; /<pattern> cerca <pattern> in avanti;?<pattern> cerca <pattern> indietro; <n>g va alla riga <n>; g, G va ad inizio/fine file; q esce e torna al prompt; e molte altre (h dà l help in linea). La shell di Unix p.52/96

53 Mostrare parte di un file Il comando head mostra le prime 10 linee di un file. Se si usa l opzione -n, head mostra le prime n linee. head [-n] file Il comando tail mostra le ultime 10 linee di un file. Se si usa l opzione -n, tail mostra le ultime n linee. tail [-n] file La shell di Unix p.53/96

54 Cercare file e comandi La shell di Unix p.54/96

55 Cercare un file Il comando find permette di cercare un file che soddisfi un dato pattern. dove find <pathname> -name <filename> -type <t> -print pathname indica la directory da cui deve iniziare la ricerca. La ricerca continuerà in ogni sottodirectory. <filename> è il nome del file da cercare; può essere anche un pattern costruito con metacaratteri. L opzione -print viene usata per mostrare i risultati della ricerca. Vediamo alcuni esempi d uso del comando (con ulteriori opzioni): find. -name mtg jan92 -print find / -name README -print find. -name *.ps -print find /usr/local -name gnu -type d -exec ls {} \; La shell di Unix p.55/96

56 Cercare un file / A Un problema di find è la sua pesantezza computazionale. Una soluzione è data dal comando locate, che basandosi su di un database, periodicamente aggiornato (con updatedb), risulta molto più efficiente locate <modello> Elenca i file che nelle basi di dati corrispondono a <modello>. Esempio: /home/rossi$ locate astri /usr/include/g++-3/std/bastring.cc /usr/include/g++-3/std/bastring.h /home/rossi$ La shell di Unix p.56/96

57 Cercare i programmi Per cercare la locazione di un programma (tra i sorgenti, tra i file eseguibili e nelle pagine del manuale in linea): whereis [-bms] <command> Alcune opzioni utili sono: -b solo file binari -m solo pagine dei manuali -s solo file sorgenti Esempio /home/rossi$ whereis -bms mail mail:/bin/mail /usr/bin/mail /etc/mail.rc /etc/mail /home/rossi$ La shell di Unix p.57/96

58 Cercare un comando Accade talvolta di essere a conoscenza dell esistenza di un comando e di voler sapere quale file sarà eseguito quando il comando viene invocato. fornisce which <command> il pathname completo del file eseguibile l alias corrispondente a <command> Un comando (builtin nella bash) simile, ma più completo è type type [-all -path] <command> indica come la shell interpreta <command>, specificandone la natura (alias, funzione, file eseguibile, builtin, parola chiave della shell) e la definizione. Con l opzione -all vengono fornite tutte le definizioni di <command>, mentre l opzione -path restringe la ricerca ai file eseguibili. La shell di Unix p.58/96

59 Gestire archivi Il comando tar permette di archiviare insiemi di file (in realtà parti del filesystem, con informazioni sulla gerarchia delle directory) in un unico file. tar [-ctvx] [-f <file>.tar] [<directory/file>] Alcune opzioni comuni sono -c crea un archivio -t mostra il contenuto di un archivio -x estrae da un archivio -f <file>.tar specifica il nome del file di archivio -v fornisce informazioni durante l esecuzione Alcuni esempi tar -cf logfile.tar mylogs/logs.* tar -tf logfile.tar tar -xf logfile.tar La shell di Unix p.59/96

60 Comprimere file Sono presenti alcuni tool che permettono di ridurre la dimensione di file con algoritmi di compressione (che sfruttando la ridondanza dei dati danno risultati migliori su file di testo): Ad esempio compress logs.* uncompress logfile.tar.z compress [opt] <file> uncompress [opt] <file>.z Oppure si può usare gzip (Lempel-Ziv coding LZ77) o bzip2 (Burrows-Wheeler block sorting text compression algorithm): Ad esempio gzip [opt] <file> gunzip [opt] <file>.gz gunzip logfile.tar.gz gzip logs.* La shell di Unix p.60/96

61 Esercizio Scrivere un comando che crea una sottodirectory della directory corrente, con nome text-files. Quindi copia in questa directory tutti i file con estensione txt contenuti nella propria home directory. Se la directory text-files è già presente rimuove da questa i file il cui nome non inizia con almeno due caratteri alfanumerico o che non hanno estensione txt. [Sugg.: Usare la concatenazione di comandi, il comando find e i metacaratteri.] La shell di Unix p.61/96

62 Comandi di stampa Alcuni comandi per la stampa dei file e la gestione della coda di stampa UNIX BSD e Linux lpr [opt] <filename> lpq [opt] [<job#>] [<username>] lprm [opt] [<job#>] [<username>] Un opzione usata frequentemente è -P <printername>. UNIX System V lp [opt] <filename> lpstat [opt] cancel [<requestid>] <printer> La shell di Unix p.62/96

63 Manipolazione di testi La shell di Unix p.63/96

64 Linguaggi formali Dato un alfabeto A = {a 1,..., a n }, l insieme delle stringhe (finite) sull alfabeto A è indicato con A, ovvero A = {s 0... s k : s i A}. Un linguaggio L sull alfabeto A è un insieme di stringhe su A, ovvero L A. Operazioni sui linguaggi Unione: L + L = {α : α L α L } Concatenazione: L L = {αα : α L α L } Potenza: L n definito induttivamente L 0 = {ɛ} Stella di Kleene: L = n N Ln L n+1 = L L n La shell di Unix p.64/96

65 Linguaggi Regolari Classificazione dei linguaggi (Noam Chomsky) Linguaggi Grammatiche [α β] Automi tipo 0 generali automi di Turing tipo 1 monotone / context sensitive automi limitati linearm. tipo 2 context-free automi a pila tipo 3 regolari automi a stati finiti I linguaggi regolari sono molto semplici da trattare (ad es. il problema dell appartenenza al linguaggio ha complessità lineare). a b q 0 q 0 L = {ab n : n 0} La shell di Unix p.65/96

66 Espressioni regolari Teorema (Kleene) Un linguaggio L sull alfabeto A è regolare se e solo se è ottenibile a dai linguaggi e {a} con a A, utilizzando gli operatori di unione +, concatenazione e stella (_). Espressioni Regolari su di un alfabeto A = {a 0,..., a n } sono re := a 0... a n re + re re re re A ciascuna espressione regolare re è associato un linguaggio L(re): L( ) = L(a i ) = {a i } L(re 1 re 2 ) = L(re 1 ) L(re 2 ) L(re 1 + re 2 ) = L(re 1 ) + L(re 2 ) L(re ) = L(re) Per il teorema di Kleene, ogni linguaggio regolare è denotato da un espressione regolare e viceversa. La shell di Unix p.66/96

67 Espressioni Regolari in Unix Patterns (modelli) che individuano insiemi di stringhe (linguaggi) e rappresentano uno strumento piuttosto potente e sofisticato di UNIX. Ispirate alle espressioni regolari della teoria dei linguaggi formali, ma risultano molto più potenti. Utilizzate da vari programmi di elaborazione di testi (ad es. grep, sed, awk, vi, emacs) per: elencare/eliminare righe che contengono un espressione regolare sostituire un espressione regolare (~ find/replace)... La shell di Unix p.67/96

68 Espressioni Regolari in Unix/A insiemi di caratteri: pattern elementari che specificano la presenza un carattere appartenente ad un certo insieme. ancore: legano il pattern a comparire una posizione specifica della riga (es. inizio, fine). gruppi: racchiudono l espressione regolare che può quindi essere riferita come una singola entità. modificatori: specificano ripetizioni dell espressione che precede il modificatore stesso. La shell di Unix p.68/96

69 Espressioni Regolari: Sintassi [abc] [a-d] [ˆset] match any of the characters enclosed match any character in the enclosed range match any character not in the following set. match any single character except <newline> [:alpha:] [:digit:] some predefined character sets \ treat the next char literally. Normally used to escape special characters such as "." and "*" Esempi [ˆ[:alpha:]] any non alphabetic char (same as [ˆa-zA-Z]) [ˆa-c] any char except a, b, c [\.a] chars z and. La shell di Unix p.69/96

70 Espressioni Regolari: Sintassi / A exp1 exp2 exp1 exp2 ˆexp exp$ match either exp1 or exp2 match exp1 followed by exp2 exp must start at the beginning of the line exp must end at the end of the line Esempi: a the either the string a or the string the cat the string cat.at any char followed by at, such as cat, rat, mat, bat, fat, hat ˆcat cat at the beginning of the line cat$ cat at the end of the line [cc]at cat or Cat [0-9]$ any digit ending a line La shell di Unix p.70/96

71 Espressioni regolari: Sintassi / A exp{n} exp{n,m} exp{m,} exp* exp+ exp? match the regular expression exp exactly n times match exp a minimum of n times and a maximum of m times match exp a minimum of n times (0 <= n,m <= 255) match exp zero or more times match exp one or more times match exp zero or one times Esempi: xy*z any occurrence of an x, followed by zero or more y s, followed by a z xy{3,5}z an x, followed by 3 to 5 y and then z [A-Z][A-Z]* one or more upper case letters (same as [A-Z]+) [A-Z]* zero or more upper case letters. La shell di Unix p.71/96

72 Espressioni regolari: Sintassi / B \<exp\> (exp) match exp as long as it is a separate word saves the matching exp in a buffer, for future reference. Up to nine patterns can be saved for each line. \n where n is a digit (1-9). Matches the nth expression previously saved for this line. Expressions are numbered starting from the left. Esempi: \<cat\> cat as a separate word (es. concatenate not ok) (.*)\1 strings of the kind s s, where s is any string (not regular nor context-free) Questa è la sintassi per le espressioni regolari estese accettata da egrep, sed, awk, ma non da grep (vedere man per ulteriori informazioni). La shell di Unix p.72/96

73 Cercare espressioni regolari Unix fornisce i comandi grep ed egrep (acronimo per [extended] generalized regular expression parser) per cercare espressioni regolari (estese) nei file. egrep [-ivnwx] <regexpr> [<filename1>... <filenamen>] Il modo più semplice di usarlo è: Esempio: egrep <regexpr> <filename> /home/rossi$ cat ugolino La bocca sollevo dal fiero pasto quel peccator, forbendola a capelli del capo ch elli avea di retro guasto. /home/rossi$ egrep pasto ugolino La bocca sollevo dal fiero pasto La shell di Unix p.73/96

74 Cercare espressioni regolari / A /home/rossi$ egrep (p gu)asto ugolino La bocca sollevo dal fiero pasto del capo ch elli avea di retro guasto. /home/rossi$ egrep \<d.l\> ugolino La bocca sollevo dal fiero pasto del capo ch elli avea di retro guasto. Si osservi che non compare la riga quel peccator, forbendola a capelli /home/rossi$ egrep ˆ.a li$ ugolino La bocca sollevo dal fiero pasto quel peccator, forbendola a capelli La shell di Unix p.74/96

75 Cercare espressioni regolari / B Alcune opzioni utili di egrep -i non distingue tra maiscolo e minuscolo -n mostra anche il numero di linea -v mostra le linee che non contengono l espressione -w cerca parole intere -x cerca linee intere Se non si specifica <filename>, egrep esamina lo standard input. Una versione semplificata di egrep è fgrep fgrep [-ivn] <text> <filename> è utilizzato per cercare stringhe in file di tipo testo. Le opzioni -i, -n e -v funzionano come per egrep. La shell di Unix p.75/96

76 Sostituire caratteri Il comando tr converte un testo, carattere per carattere, secondo una corrispondenza specificata. Esempio: tr <sourcech> <destch> < <file> /home/rossi$ tr aeiuo eiuoa < ugolino Le bacce salliva del fuira pesta qoil piccetar, farbindale e cepillu... trasforma a e,..., o a. Se <destch> è più corto di <sourcech>, si usa l ultimo carattere in <destch>. Opzioni -c trasforma i caratteri non in <sourcech> (complement) -s elimina caratteri uguali vicini (squeeze) -d cancella i caratteri in <sourcech> (delete) La shell di Unix p.76/96

77 Sostituire caratteri / A Esempi: trasforma tutti i caratteri maiuscoli in minuscoli tr A-Z a-z < filename semplice encryption (a b, b c..., z a) tr a-za-z b-za-za < filename rimuove tutte le cifre dall input tr -d 0-9 < filename scompone l input in parole, sistemandole una per riga tr -cs a-za-z0-9 \n < filename La shell di Unix p.77/96

78 sed - editor di stream Il comando sed permette di scandire uno o più file, modificando le linee che soddisfano una particolare condizione (nello stile dell editor vi). sed -e <edit commands> <filename> sed -f <edit command file> <filename> Nel primo caso le azioni da eseguire sono inserite nella linea di comando, nel secondo caso in un file, ed hanno forma <selettore><comando>. Alcuni comandi di Editing p d s/regexp/repl/ s/regexp/repl/g stampa la linea corrente cancella la linea corrente sostituisce la prima occorrenza di RegExp con Repl. sostituisce ogni occorrenza di RegExp con Repl. La shell di Unix p.78/96

79 sed - editor di stream / A I comandi di editing possono essere qualificati con un pattern che seleziona le linee alle quali tali comandi devono essere applicati. Alcuni selettori di Linea n n,m /RegExp/ /RegExp1/,/RegExp2/ linea numero n le linee dal numero n ad m le linee che corrispondono a RegExp tutte le linee tra ogni occorrenza di RegExp1 e la successiva occorrenza di RegExp2 Un opzione interessante è -n sopprime ogni linea non esplicitamente selezionata (si ricordi che, altrimenti, sed copia in output ogni linea, possibilmente modificata). La shell di Unix p.79/96

80 sed - editor di stream / B Rimuove tutte le linee che contengono la stringa guasto sed -e /guasto/d ugolino Stampa solo le prime dieci linee di un file (simile a head) sed -n -e 1,10p ugolino Mostra il file delle password, fornendo solo le linee da root a nobody, ovvero gli account di sistema. sed -n -e /ˆroot/,/ˆnobody/p /etc/passwd Aggiunge due spazi all inizio di ogni riga. sed -e s/ˆ/ / filename Elimina l indentazione in un file, ovvero elimina tutti gli spazi ad inizio riga. sed -e s/ˆ *// filename La shell di Unix p.80/96

81 sed - Esercizi Scrivere un comando sed che visualizzi un file, cancellando le linee da 3 a 5. visualizzi solo la parte di un file che inizia alla prima linea che contiene start e finisce alla prima linea che contiene stop. visualizzi solo le linee non vuote di un file (cioè le linee che contengono almeno un carattere). visualizzi solo le linee non vuote e non costituite di soli spazi. dato un file lo visualizzi sostituendo ogni linea contenente la parola bomba con OMISSIS. dato un file con riferimenti bibliografici del tipo si veda [Kant12], visualizzi solo i riferimenti, uno per riga. La shell di Unix p.81/96

82 Manipolare testi con awk awk è un utility per la manipolazione di testi, il cui nome deriva dalle iniziali degli autori (Aho, Weinberger, Kerningham) La sintassi, nelle forme più semplici, è la seguente: awk <programma> <file> awk -f <progfile> <file> scorre un file (o più) ed esegue alcune azioni sulle linee che soddisfano una data condizione, concordemente con quanto specificato nel programma. La sintassi dei programmi è simile a quella del linguaggio C. Si tratta di un utility estremamente flessibile e potente. Qui ci limiteremo a vedere solo alcuni esempi ( Perl). La shell di Unix p.82/96

83 Manipolare testi con awk - campi Ogni linea di testo letta viene scomposta in campi (i separatori di campo di default sono <space> e <tab>). Il primo campo di una linea può essere riferito con $1, il secondo con $2,... L intera linea è riferita da $0. Il numero di campi è riferito dalla variabile predefinita NF. Ad esempio awk {print NF,$0} pippo mostra il file pippo sullo schermo premettendo ad ogni linea il numero NF di campi (parole) che la compongono. La shell di Unix p.83/96

84 Manipolare testi con awk - script Un programma awk è costituito da una o più linee della forma [ <condizione> ] { <azione> } <condizione> può essere un espressione che coinvolge operatori logici e relazionali, oppure espressioni regolari. uno dei token speciali BEGIN e END, che risultano attivati all inizio del file (prima della prima linea) ed alla fine del file (dopo l ultima linea) <azione> è un insieme di istruzioni C-like. La shell di Unix p.84/96

85 Manipolare testi con awk - script / A L elenco di istruzioni C-like può contenere, ad esempio: if (conditional) statement [ else statement] while (conditional) statement for (expr; conditional; expr) statement for (var in array) statement break continue variable = expression print list-of-expressions printf format list-of-expressions statement; statement { statement } La shell di Unix p.85/96

86 Manipolare testi con awk - script / B Il programma awk viene eseguito secondo i passi seguenti: il testo viene analizzato linea per linea e per ogni regola del tipo [ <condizione> ] { <azione> } si valuta <condizione> e se questa è vera viene eseguita <azione> se <condizione> è assente allora <azione> viene eseguita in ogni caso. se <azione> è assente allora la riga corrente è stampata immutata. La shell di Unix p.86/96

87 Manipolare testi con awk - script / C Si supponga che il file wordcount.awk contenga BEGIN { print Inizio ad elaborare il file... } { for (i = 1; i <= NF; i++) num[$i]++ } END { for (word in num) print word, num[word]; print Fine del file:, FILENAME } allora il comando awk -f wordcount.awk file restituisce la lista delle parole che compaiono nel file file e la loro frequenza (word in num permette di scorrere gli indici di un array). La shell di Unix p.87/96

88 Manipolare testi con awk - variabili awk supporta variabili definite dall utente; le variabili non devono essere dichiarate (tipico dei linguaggi di scripting); inizialmente ogni variabile ha valore null o 0 File: lfcount.awk BEGIN { print Inizio ad elaborare il file... } NF == 5 { printf Linea %d: %s \n, NR, $0; linecount++; wordcount += NF; } END { printf Linee: %d, Campi: %d, linecount, wordcount) } Seleziona le linee che contengono 5 campi, le visualizza con il numero di riga, ne conta il numero ed il numero dei campi e lo visualizza. La shell di Unix p.88/96

89 Manipolare testi con awk - regexp La condizione può essere un espressione regolare (estesa): /RegExp/ valida per ogni riga che corrisponda all espressione; una coppia di espressioni regolari /RegExp1/, /RegExp2/ in questo caso l azione <action> si applica ad ogni linea tra la prima che corrisponde a /RegExp1/ e la linea successiva a questa che corrisponde a /RegExp2/. Esempio: awk /start/, /stop/ { printf line %d: %s, NR, $0} filename La shell di Unix p.89/96

90 awk - pattern matching Potenti funzioni di pattern matching su espressioni regolari: Condizioni: str exp oppure str! exp Esempi: abbc ac Operatori su stringhe: /a[b]+c/: ok /a[b]+c/: no gensub(exp, str, h [, target]): Sostituisce la prima/tutte le occorrenze di exp in target con str (a seconda del valore di t). Quando target è assente usa $0. La stringa str può contenere \n. split(str, array [, exp]): Suddivide la stringa str e mette i frammenti in un array. Usa come separatore exp (default FS) La shell di Unix p.90/96

91 Manipolare testi con awk - esercizi Data un agenda con righe: <cognome, nome, indirizzo, città, numero> scrivere un programma awk per stampare le righe con nome uguale a Giovanni e città uguale a Milano. Scrivere un programma awk che stampi le righe di un file dall ultima alla prima. scrivere un programma awk per sostituire in un testo la parola sempre con la parola mai e contare le sostituzioni effettuate. Scrivere un programma awk che spezzi una riga subito dopo il 20mo carattere, appenda uno come avvertimento e scriva a capo il resto della riga, giustificato a destra (la funzione substr(str,i,j) fornisce la sottostringa di str dall indice i all indice j). La shell di Unix p.91/96

92 Eliminare doppioni L utility uniq permette di modificare un file, sostituendo righe identiche adiacenti con un unica occorrenza della riga ripetuta. uniq [-c] <infile> <outfile> Con l opzione -c ogni riga è preceduta dal numero di occorrenze. /home/rossi$ cat uniqfile questa e una riga doppia questa e una riga doppia questa e una riga singola questa e una riga tripla questa e una riga tripla questa e una riga tripla /home/rossi$ uniq -c uniqfile 2 questa e una riga doppia 1 questa e una riga singola 3 questa e una riga tripla La shell di Unix p.92/96

93 Confrontare due file Due utility permettono di confrontare file: cmp <file1> <file2> Verifica l uguaglianza di <file1> e <file2> e nel caso siano diversi fornisce la riga e l offset (numero di byte dall inizio del file) del primo mismatch se uno è un prefisso dell altro si ottiene un messaggio di EOF sul file più corto. diff <file1> <file2> Simile a cmp, ma fornisce una lista di differenze tra i due files (cambiamenti necessari per convertire il primo file nel secondo). La shell di Unix p.93/96

94 Un sommario dei comandi visti awk - search for and process patterns in a file, cat - display, or join, files cd - change working directory chgrp - change the group associated to a file chmod - change the access mode of a file cmp - compare files chown - change the owner of a file compress - compress files cp - copy files date - view/set the date of the system diff - show differences between files file - display file classification find - find files grep - search for a pattern in files (egrep, fgrep) gzip - compress files head - display the first few lines of a file lp - print files (System V) lpr - print files (Berkeley) La shell di Unix p.94/96

95 Un sommario dei comandi visti / A lprm - remove a job from the print queue ls - list information about files mkdir - create a directory more - display a file one screen at a time (System V) mv - move and/or rename a file pwd - print the working directory rm - remove (delete) files rmdir - remove (delete) a directory sed - stream editor sort - sort and/or merge files tail - display the last few lines of a file tar - store or retrieve files from an archive file tr - transliterate charaters umask - set file creation permissions uniq - remove duplicates wc - counts lines, words and characters in a file whereis - show where executable is located in path which - locate an executable program using "PATH" La shell di Unix p.95/96

96 Altri comandi df du fsck groups ln spell split cut paste whatis - display the amount of available disk space - display information on disk usage - check and repair a file system - show user groups - create a link to a file - check a file for spelling errors - split files - cut columns from a file - join coulumns in a single file - list man page entries for a command La shell di Unix p.96/96

La shell di Unix. Uso interattivo e scripting

La shell di Unix. Uso interattivo e scripting La shell di Unix Uso interattivo e scripting Lucidi per il corso di Laboratorio di Sistemi Operativi tenuto da Paolo Baldan presso l Università Ca Foscari di Venezia, anno accademico 2004/2005. La shell

Dettagli

La shell di Unix. Uso interattivo e scripting

La shell di Unix. Uso interattivo e scripting La shell di Unix Uso interattivo e scripting Lucidi per il corso di Laboratorio di Sistemi Operativi tenuto da Paolo Baldan presso l Università Ca Foscari di Venezia, anno accademico 2004/2005. La shell

Dettagli

File System I parte. File System

File System I parte. File System File System I parte File System Dati e Programmi sono organizzati mediante una struttura di files e directories: file: collezione di dati directory: collezione di file o di directory Il file system possiede

Dettagli

Shell di Linux e Comandi Utente

Shell di Linux e Comandi Utente Shell di Linux e Comandi Utente Sistemi Operativi Roberto Aringhieri DTI Crema - Università degli Studi di Milano Sistemi Operativi - Shell di Linux e Comandi Utente Roberto Aringhieri p.1/23 Outline Accesso

Dettagli

GLUG Govonis. Corso Avanzato GNU / Linux. Lezione del 02.01.2012. Shell

GLUG Govonis. Corso Avanzato GNU / Linux. Lezione del 02.01.2012. Shell GLUG Govonis Corso Avanzato GNU / Linux Lezione del 02.01.2012 Shell GLUG Govonis Di cosa parleremo? GLUG Govonis lavorare con la linea di comando GLUG Govonis lavorare con la linea di comando i comandi

Dettagli

SOMMARIO. Ambiente Linux. Come nasce UNIX. Cronologia di UNIX 1. Storia dei sistemi *NIX Caratteristiche di Linux

SOMMARIO. Ambiente Linux. Come nasce UNIX. Cronologia di UNIX 1. Storia dei sistemi *NIX Caratteristiche di Linux SOMMARIO Ambiente Linux Storia dei sistemi *NIX Caratteristiche di Linux La licenza GPL Le distribuzioni Collegarsi a Linux I comandi di Linux 28/11/2003 Linux 2 Come nasce UNIX Unix nasce come sistema

Dettagli

Sistemi operativi. Motivazione. Tipi di software. Sistemi operativi. Un sistema operativo (SO) e un insieme di programmi che gestiscono le funzioni

Sistemi operativi. Motivazione. Tipi di software. Sistemi operativi. Un sistema operativo (SO) e un insieme di programmi che gestiscono le funzioni Motivazione Sistemi operativi Molte attivita in parallelo su un singolo calcolatore Es.: stampa di un documento e scrittura di un altro Il sistema operativo serve a coordinare queste attivita e far comunicare

Dettagli

Comandi filtro: sed. Se non si specificano azioni, sed stampa sullo standard output le linee in input, lasciandole inalterate.

Comandi filtro: sed. Se non si specificano azioni, sed stampa sullo standard output le linee in input, lasciandole inalterate. Comandi filtro: sed Il nome del comando sed sta per Stream EDitor e la sua funzione è quella di permettere di editare il testo passato da un comando ad un altro in una pipeline. Ciò è molto utile perché

Dettagli

Il sistema operativo UNIX/Linux. Gli script di shell

Il sistema operativo UNIX/Linux. Gli script di shell Il sistema operativo UNIX/Linux Gli script di shell Introduzione Le shell permettono La gestione di comandi su linea di comando La shell comprende automaticamente quando il costrutto termina e lo esegue

Dettagli

Corso Linux ARCES. Lezione 3: Lavorare con la Shell

Corso Linux ARCES. Lezione 3: Lavorare con la Shell Corso Linux ARCES Lezione 3: Lavorare con la Shell La Shell Una shell è un'interfaccia, grafica o meno ( CLI ad esempio ), che permette all'utente di interagire col sistema attraverso l'utilizzo di una

Dettagli

Corso di Laboratorio di Sistemi Operativi

Corso di Laboratorio di Sistemi Operativi Corso di Laboratorio di Sistemi Operativi Alessandro Dal Palù email: alessandro.dalpalu@unipr.it web: www.unipr.it/~dalpalu Qualche link utile Informazioni sull utilizzo della shell Unix/Linux http://www.pluto.it/ildp/howto/bash-prog-intro-howto.html

Dettagli

PROGRAMMAZIONE CONSUNTIVA Codice Mod. RQ 23.2 Pag 1/5. Sistemi e Reti (articolazione Telecomunicazione) Classe

PROGRAMMAZIONE CONSUNTIVA Codice Mod. RQ 23.2 Pag 1/5. Sistemi e Reti (articolazione Telecomunicazione) Classe I.T.C.S. ERASMO DA ROTTERDAM Liceo Artistico indirizzo Grafica - Liceo delle Scienze Umane opz. Economico sociale ITI Informatica e telecomunicazioni - ITI Costruzioni, ambiente e territorio Edile Elettronico

Dettagli

I comandi del DOS. Come si fornisce un comando al DOS

I comandi del DOS. Come si fornisce un comando al DOS I comandi del DOS I comandi sono programmi eseguibili e si distinguono in: Comandi interni: sono permanentemente residenti nella memoria centrale del computer Comandi esterni: si trovano normalmente su

Dettagli

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Programmi applicativi Un programma applicativo (o applicativo) è un eseguibile che può essere utilizzato dall utente e che ha funzionalità di alto livello (word processor, spreadsheet, DBMS) Univ. Milano-Bicocca

Dettagli

Reti Informatiche. Corso di Laurea Triennale in Ingegneria Informatica. Ing. Domenico De Guglielmo. 2008 Vanessa Gardellin & Sara Lioba Volpi

Reti Informatiche. Corso di Laurea Triennale in Ingegneria Informatica. Ing. Domenico De Guglielmo. 2008 Vanessa Gardellin & Sara Lioba Volpi Reti Informatiche Corso di Laurea Triennale in Ingegneria Informatica Ing. Domenico De Guglielmo 2008 Vanessa Gardellin & Sara Lioba Volpi Informazioni Generali (1/2) Ricevimento su appuntamento (tramite

Dettagli

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato. Il File System Il file system È quella parte del Sistema Operativo che fornisce i meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate in memoria di massa. Realizza i concetti

Dettagli

Il Sistema Operativo Linux

Il Sistema Operativo Linux Il Sistema Operativo Linux Sistema Linux storia Unix deriva da Unix open source software libero software open source GNU, GPL, LGPL storia Linux amministrazione struttura concetti base comandi shell Unix

Dettagli

Il calcolatore. Architettura di un calcolatore (Hardware)

Il calcolatore. Architettura di un calcolatore (Hardware) Il calcolatore Prima parlare della programmazione, e' bene fare una brevissima introduzione su come sono strutturati i calcolatori elettronici. I calcolatori elettronici sono stati progettati e costruiti

Dettagli

I Metacaratteri della Shell Unix

I Metacaratteri della Shell Unix I Metacaratteri della Shell Unix La shell Unix riconosce alcuni caratteri speciali, chiamati metacaratteri, che possono comparire nei comandi. Quando l utente invia un comando, la shell lo scandisce alla

Dettagli

L utility Unix awk [Aho-Weinberger-Kernighan]

L utility Unix awk [Aho-Weinberger-Kernighan] L utility Unix awk [Aho-Weinberger-Kernighan] L utility awk serve per processare file di testo secondo un programma specificato dall utente. L utility awk legge riga per riga i file ed esegue una o più

Dettagli

Linux. Linux. Paolo Zatelli. Dipartimento di Ingegneria Civile ed Ambientale Università di Trento. Paolo Zatelli Università di Trento 1 / 24

Linux. Linux. Paolo Zatelli. Dipartimento di Ingegneria Civile ed Ambientale Università di Trento. Paolo Zatelli Università di Trento 1 / 24 Linux Linux Paolo Zatelli Dipartimento di Ingegneria Civile ed Ambientale Università di Trento Paolo Zatelli Università di Trento 1 / 24 Linux Outline 1 Linux 2 Interfaccia 3 File e directory 4 Comandi

Dettagli

Link e permessi. Corso di Laurea Triennale in Ingegneria delle TLC e dell Automazione. Corso di Sistemi Operativi A. A. 2005-2006

Link e permessi. Corso di Laurea Triennale in Ingegneria delle TLC e dell Automazione. Corso di Sistemi Operativi A. A. 2005-2006 Corso di Laurea Triennale in Ingegneria delle TLC e dell Automazione Corso di Sistemi Operativi A. A. 2005-2006 Link e permessi Link Un riferimento ad un file è detto link Ogni file può avere un numero

Dettagli

fare hard link fra file system diversi e su directory.

fare hard link fra file system diversi e su directory. Un sistema GNU/Linux, come ogni Unix, ha una directory principale, chiamata root ed indicata con / sotto la quale si trovano TUTTE le altre directory e TUTTI gli altri filesystems eventualmente montati

Dettagli

LINUX. Multitasking: possibilità di eseguire più programmi contemporaneamente

LINUX. Multitasking: possibilità di eseguire più programmi contemporaneamente LINUX Linux è un sistema operativo di tipo Unix. La principale differenza rispetto ai "veri" sistemi Unix consiste nel fatto che Linux può essere copiato liberamente e gratuitamente, compreso l'intero

Dettagli

Corso base GNU/Linux 2014. Latina Linux Group. Sito web: www.llg.it. Mailing list:http://lists.linux.it/listinfo/latina

Corso base GNU/Linux 2014. Latina Linux Group. Sito web: www.llg.it. Mailing list:http://lists.linux.it/listinfo/latina Corso base GNU/Linux 2014 Latina Linux Group Sito web: www.llg.it Mailing list:http://lists.linux.it/listinfo/latina Corso Base 2014 Lezione 3 15/04/2014 1 / 21 Obiettivi di questo incontro Conoscere cosa

Dettagli

Lesson #6. Miscellaneous. Roberto De Virgilio

Lesson #6. Miscellaneous. Roberto De Virgilio Lesson #6 Miscellaneous Roberto De Virgilio Sistemi operativi - 2 Dicembre 2015 Canali di comunicazione e ridirezione I programmi dispongono di 3 canali di comunicazione standard (standard file descriptor):

Dettagli

PRECORSO DI INFORMATICA. Laboratorio Seconda Parte

PRECORSO DI INFORMATICA. Laboratorio Seconda Parte PRECORSO DI INFORMATICA Laboratorio Seconda Parte ARGOMENTI DI OGGI Configurazione delle stampanti Utilizzo della stampante Editor di testo Scrivere un semplice programma in C/C++ Compilazione Programmi

Dettagli

Introduzione alla. Alessandra Giordani agiordani@disi.unitn.it Lunedì 27 febbraio 2012 http://disi.unitn.it/~agiordani/ 1

Introduzione alla. Alessandra Giordani agiordani@disi.unitn.it Lunedì 27 febbraio 2012 http://disi.unitn.it/~agiordani/ 1 Introduzione alla Shell di UNIX Alessandra Giordani agiordani@disi.unitn.it Lunedì 27 febbraio 2012 http://disi.unitn.it/~agiordani/ 1 Composizione di un sistema informativo: Hardware (CPU, periferiche,

Dettagli

Sintassi: alias nome_nuovo= comando_intero Se si usa il comando senza argomenti vengono mostrati tutti gli alias in uso.

Sintassi: alias nome_nuovo= comando_intero Se si usa il comando senza argomenti vengono mostrati tutti gli alias in uso. alias Crea degli alias per i comandi. E utile usare degli alias quando si è soliti adoperare dei comandi molto lunghi. La riga per l inserimento del comando alias va inserita all interno del file.bashrc

Dettagli

Sicurezza del File System

Sicurezza del File System Sicurezza del File System Luigi Catuogno luicat@dia.unisa.it BARONISSI 30 maggio 2002 Cos è un file system Luigi Catuogno - Sicurezza del File System 2 1 Cos è il filesystem Una parte del sistema operativo

Dettagli

Utilizzo di putty. L uso base e molto semplice: richiede solo di specificare:

Utilizzo di putty. L uso base e molto semplice: richiede solo di specificare: Utilizzo di putty Client ssh liberamente utilizzabile (www.chiark.greenend.org.uk/~sgtatham/putty/download.html) Tra le molte opzioni di configurazione di putty sono utili: Window - Translation: per selezionare

Dettagli

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory FILE SYSTEM : INTERFACCIA 8.1 Interfaccia del File System Concetto di File Metodi di Accesso Struttura delle Directory Montaggio del File System Condivisione di File Protezione 8.2 Concetto di File File

Dettagli

Lavorare in ambiente UNIX. Prompt dei comandi (shell) Pipe e filtri (I/O) Tips and tricks

Lavorare in ambiente UNIX. Prompt dei comandi (shell) Pipe e filtri (I/O) Tips and tricks Lavorare in ambiente UNIX Prompt dei comandi (shell) Pipe e filtri (I/O) Tips and tricks Prompt ' ' (spazio) è il separatore standard Comando interno/esterno file eseguibile

Dettagli

GNU/Linux Concetti di base

GNU/Linux Concetti di base GNU/Linux Concetti di base Sommario GNU/Linux Open Source e GPL Login/Logout Shell e comandi Files Stdin, stdout Redirezione e pipe Filesystem 2 Cos'è Linux Linux è basato su UNIX (filosofia, comandi,

Dettagli

Introduzione ai sistemi UNIX/Linux

Introduzione ai sistemi UNIX/Linux Introduzione ai sistemi UNIX/Linux Corso di laurea magistrale in Ingegneria Elettronica Ing. Simone Brienza E-mail: simone.brienza@for.unipi.it Pervasive Computing & Networking Lab () http://www.perlab.it

Dettagli

DATABASE PER IL WEB. Programmazione Web 1

DATABASE PER IL WEB. Programmazione Web 1 DATABASE PER IL WEB Programmazione Web 1 Archite3ura web con database Client Tier Web/App Tier DB Tier Client Web / App Server Database Il server web comunica con un altro server che con8ene il la banca

Dettagli

Gestione risorse (Windows)

Gestione risorse (Windows) Gestione risorse (Windows) Organizzazione dei file Il sistema di memorizzazione è organizzato ad albero secondo una struttura gerarchica DISCO (drive) FILES CARTELLE (directory) FILES SOTTOCARTELLE FILES

Dettagli

3.5.1 PREPARAZ1ONE I documenti che si possono creare con la stampa unione sono: lettere, messaggi di posta elettronica, o etichette.

3.5.1 PREPARAZ1ONE I documenti che si possono creare con la stampa unione sono: lettere, messaggi di posta elettronica, o etichette. 3.5 STAMPA UNIONE Le funzioni della stampa unione (o stampa in serie) permettono di collegare un documento principale con un elenco di nominativi e indirizzi, creando così tanti esemplari uguali nel contenuto,

Dettagli

Corso UNIX avanzato. Utente avanzato. Amministratore. Gestione proprio account Gestione dei propri processi Ricerca e manipolazione file

Corso UNIX avanzato. Utente avanzato. Amministratore. Gestione proprio account Gestione dei propri processi Ricerca e manipolazione file Corso UNIX avanzato Corso UNIX avanzato Utente avanzato Gestione proprio account Gestione dei propri processi Ricerca e manipolazione file Amministratore Gestione utenti Aggiunta rimozione hardware Backup

Dettagli

Terza lezione: Directory e File system di Linux

Terza lezione: Directory e File system di Linux Terza lezione: Directory e File system di Linux DIRECTORY E FILE SYSTEM Il file system di Linux e Unix è organizzato in una struttura ad albero gerarchica. Il livello più alto del file system è / o directory

Dettagli

SHELL GNU/Linux Bash. Conoscere e configurare il proprio ambiente bash. Kernel speaks: dmesg

SHELL GNU/Linux Bash. Conoscere e configurare il proprio ambiente bash. Kernel speaks: dmesg SHELL GNU/Linux Bash Obiettivi : Gestire i permessi sui file Conoscere e configurare il proprio ambiente bash Editare testi Capire ed utilizzare i redirezionamenti Kernel speaks: dmesg Init e Runlevels

Dettagli

Interfaccia del file system

Interfaccia del file system Interfaccia del file system Concetto di file Modalità di accesso Struttura delle directory Montaggio di un file system Condivisione di file Protezione 9.1 File E un insieme di informazioni correlate e

Dettagli

Installazione di Ubuntu 10.04. Mauro Piccolo piccolo@di.unito.it

Installazione di Ubuntu 10.04. Mauro Piccolo piccolo@di.unito.it Installazione di Ubuntu 10.04 Mauro Piccolo piccolo@di.unito.it Operazioni preliminari Backup di tutti i dati dalla partizione Windows Deframmentazione di tutte le partizioni Windows (n volte...) Abilitare

Dettagli

GLI SCRIPT DI SHELL. Lucidi a cura di B.De Carolis. UNIX shell script UdB- Dip Informatica

GLI SCRIPT DI SHELL. Lucidi a cura di B.De Carolis. UNIX shell script UdB- Dip Informatica GLI SCRIPT DI SHELL Lucidi a cura di B.De Carolis Shell Unix - Linux comandi Interfaccia di alto livello tra utente e SO. Il processore interpreta e mette in esecuzione comandi da: 1) standard input o

Dettagli

Il Manuale di KXSLDbg. Keith Isdale Traduzione del documento: Samuele Kaplun Traduzione del documento: Simone Solinas

Il Manuale di KXSLDbg. Keith Isdale Traduzione del documento: Samuele Kaplun Traduzione del documento: Simone Solinas Keith Isdale Traduzione del documento: Samuele Kaplun Traduzione del documento: Simone Solinas 2 Indice 1 Introduzione 5 1.1 Funzionalità......................................... 5 2 Usare KXSLDbg 6 2.1

Dettagli

I.S. Sobrero. Dipartimento di Informatica. Utilizzo. install.linux@home. 16/02/2007 install.linux@home Marco Marchisotti

I.S. Sobrero. Dipartimento di Informatica. Utilizzo. install.linux@home. 16/02/2007 install.linux@home Marco Marchisotti I.S. Sobrero Dipartimento di Informatica Utilizzo install.linux@home 1 La shell La shell di Linux è a linea di comando. Appare obsoleta e difficile da usare, ma in realtà è molto più potente e versatile

Dettagli

GNU/Linux 101. intro to system administration. SaLUG! @ Manifatture KNOS 22 Gennaio 2015. This work is licensed under a

GNU/Linux 101. intro to system administration. SaLUG! @ Manifatture KNOS 22 Gennaio 2015. This work is licensed under a GNU/Linux 101 intro to system administration SaLUG! @ Manifatture KNOS 22 Gennaio 2015 This work is licensed under a Creative Commons by-nc-sa 4.0 International License by ALCA Società Cooperativa About

Dettagli

NOTE PER UTILIZZO COMPILATORE FORTRAN CON LINUX

NOTE PER UTILIZZO COMPILATORE FORTRAN CON LINUX NOTE PER UTILIZZO COMPILATORE FORTRAN CON LINUX Queste pagine sono estratte dalle note del corso "Abilità Informatiche: Introduzione a Unix", Alessandra Seghini Per stampare questo documento si consiglia

Dettagli

Comandi più comunemete usati

Comandi più comunemete usati Comandi più comunemete usati file Management mkdir Crea una directory cd Cambia la directory di lavoro ls Lista i file; simile al dir del dos Cp copia i file mv Sposta i file rm Rimuove un file o una directory

Dettagli

NOZIONI BASE PER ESERCITAZIONI

NOZIONI BASE PER ESERCITAZIONI NOZIONI BASE PER ESERCITAZIONI Shahram Rahatlou Laboratorio di Calcolo, Anno Accademico 2015-16 http://www.roma1.infn.it/people/rahatlou/labcalc/ Sistema Operativo Hardware Software n Routine e programmi

Dettagli

Gestione di files Motivazioni

Gestione di files Motivazioni Gestione di files Motivazioni Un programma in esecuzione legge (sequenzialmente) una sequenza di caratteri prodotti "al volo" dall'utente (tramite tastiera) il programma in esecuzione scrive (sequenzialmente)

Dettagli

Comandi Linux. e altro su Linux ;)

Comandi Linux. e altro su Linux ;) Comandi Linux e altro su Linux ;) Cenni storici 1/2 Linux è un sistema operativo free basato su API POSIX e UNIX. Nel 1985 Richard Stallman fondò la Free Software Foundation, il cui obiettivo era riassunto

Dettagli

Università degli Studi di Messina Facoltà di Scienze MM. FF. NN. Corso di Laurea Triennale in Informatica (D.M. 270)

Università degli Studi di Messina Facoltà di Scienze MM. FF. NN. Corso di Laurea Triennale in Informatica (D.M. 270) Università degli Studi di Messina Facoltà di Scienze MM. FF. NN. Corso di Laurea Triennale in Informatica (D.M. 270) Sistemi Operativi + Laboratorio di Sistemi Programma del corso (anno accademico 2009

Dettagli

Informatica Generale 1 - Esercitazioni Introduzione all uso della command-line shell

Informatica Generale 1 - Esercitazioni Introduzione all uso della command-line shell Informatica Generale 1 - Esercitazioni Introduzione all uso della command-line shell Daniele Pighin pighin@fbk.eu FBK Via Sommarive, 18 I-38050 Trento, Italy March 5, 2008 Outline 1 Sistema operativo e

Dettagli

PAD: istruzioni di laboratorio

PAD: istruzioni di laboratorio PAD: istruzioni di laboratorio Alberto Cappadonia Emanuele Cesena Politecnico di Torino Dip. Automatica e Informatica Per cominciare a lavorare effettuare il logon con la matricola (sxxxxxx) pagina del

Dettagli

CLI Workshop LD2011. Marco Albanese. 22 ottobre 2011. Marco Albanese () CLI Workshop LD2011 22 ottobre 2011 1 / 17

CLI Workshop LD2011. Marco Albanese. 22 ottobre 2011. Marco Albanese () CLI Workshop LD2011 22 ottobre 2011 1 / 17 CLI Workshop LD2011 Marco Albanese 22 ottobre 2011 Marco Albanese () CLI Workshop LD2011 22 ottobre 2011 1 / 17 Premessa Per usare e capire la shell al meglio dobbiamo comprendere meglio il sistema. Marco

Dettagli

DIREZIONE DIDATTICA DI SAN GIUSEPPE JATO Programma Operativo Nazionale Fondo Sociale Europeo - Competenze per lo sviluppo

DIREZIONE DIDATTICA DI SAN GIUSEPPE JATO Programma Operativo Nazionale Fondo Sociale Europeo - Competenze per lo sviluppo DIREZIONE DIDATTICA DI SAN GIUSEPPE JATO Programma Operativo Nazionale Fondo Sociale Europeo - Competenze per lo sviluppo Ogni componente hardware dell elaboratore, per poter svolgere determinati compiti,

Dettagli

Il software del PC. Il BIOS

Il software del PC. Il BIOS Il software del PC La parola software è un neologismo che è stato coniato in contrapposizione all hardware (ferraglia). L hardware si può prendere a calci, contro il software si può solo imprecare. Il

Dettagli

Introduzione ad UNIX e la Shell

Introduzione ad UNIX e la Shell Introduzione ad UNIX e la Shell Lezione 1 Programmazione I e Laboratorio (Laboratorio) Corso di Laurea in Informatica A.A. 2015/2016 Sommario 1 Informazioni Generali 2 3 Calendario delle lezioni Lezione

Dettagli

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. Excel VBA VBA Visual Basic for Application VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. 2 Prima di iniziare. Che cos è una variabile?

Dettagli

PRECORSO DI INFORMATICA. Laboratorio Prima Parte

PRECORSO DI INFORMATICA. Laboratorio Prima Parte PRECORSO DI INFORMATICA Laboratorio Prima Parte ARGOMENTI DI OGGI Avviare Linux KDE e gli altri D.E. Bash Gestione file system Redirezione input/output Gestione dei processi Man Info Configurazione del

Dettagli

Manuale di configurazione e utilizzo Barcode card

Manuale di configurazione e utilizzo Barcode card Manuale di configurazione e utilizzo Barcode card Premessa... 3 Impostazioni Monetica... 3 Impostazioni... 3 Menu Barcode card... 5 Impostazioni... 6 Registrazione... 6 Elenco barcode card... 7 Configurazione

Dettagli

Via Oberdan, 42, 48018 Faenza (RA) Italy Tel.: ++39-0546-677111 Fax: ++39-0546-677577 E-mail: support_ahd@eu.irco.com WAVE MODE MOBILE GUIDA RAPIDA

Via Oberdan, 42, 48018 Faenza (RA) Italy Tel.: ++39-0546-677111 Fax: ++39-0546-677577 E-mail: support_ahd@eu.irco.com WAVE MODE MOBILE GUIDA RAPIDA Via Oberdan, 4, 4808 Faenza (RA) Italy Tel.: ++9-0546-677 Fax: ++9-0546-677577 E-mail: support_ahd@eu.irco.com WAVE MODE MOBILE GUIDA RAPIDA * tasti con doppia funzionalità : dipende dalla modalità di

Dettagli

Parte V. Sistemi Operativi & Reti. Sistemi Operativi. Sistemi Operativi

Parte V. Sistemi Operativi & Reti. Sistemi Operativi. Sistemi Operativi Parte V & Reti Sistema operativo: insieme di programmi che gestiscono l hardware Hardware: CPU Memoria RAM Memoria di massa (Hard Disk) Dispositivi di I/O Il sistema operativo rende disponibile anche il

Dettagli

Corso ForTIC C2 LEZIONE n. 8. Cos'è la shell Le variabili d'ambiente L'uso della shell per la realizzazione di semplici script

Corso ForTIC C2 LEZIONE n. 8. Cos'è la shell Le variabili d'ambiente L'uso della shell per la realizzazione di semplici script Corso ForTIC C2 LEZIONE n. 8 Cos'è la shell Le variabili d'ambiente L'uso della shell per la realizzazione di semplici script I contenuti di questo documento, salvo diversa indicazione, sono rilasciati

Dettagli

La shell di Unix. Uso interattivo e scripting

La shell di Unix. Uso interattivo e scripting La shell di Unix Uso interattivo e scripting Lucidi per il corso di Laboratorio di Sistemi Operativi tenuto da Paolo Baldan presso l Università Ca Foscari di Venezia, anno accademico 2004/2005. La shell

Dettagli

Mario Guarracino - Unix 1

Mario Guarracino - Unix 1 Mario Guarracino - Unix 1 Classi di comandi Unix Gestione dei file e delle directory Sviluppo software Elaborazione testi Amministrazione del sistema Comunicazione... Mario Guarracino - Unix 2 Formato

Dettagli

L'ambiente UNIX: primi passi

L'ambiente UNIX: primi passi L'ambiente UNIX: primi passi Sistemi UNIX multiutente necessità di autenticarsi al sistema procedura di login Login: immissione di credenziali username: nome identificante l'utente in maniera univoca password:

Dettagli

Stream EDitor (sed) sed NON modifica l'input 2. L'output viene inviato allo standard output e puo' essere rediretto

Stream EDitor (sed) sed NON modifica l'input 2. L'output viene inviato allo standard output e puo' essere rediretto Sed & Awk Stream EDitor (sed) sed: editor di linea che non richiede l'interazione con l'utente sed può filtrare l'input che riceve da un file o una pipe La sintassi di sed NON definisce un output: L'output

Dettagli

Modulo 1 Information Communication Technology. ICT e computer... Pag. 6 Classificazione dei computer...» 8

Modulo 1 Information Communication Technology. ICT e computer... Pag. 6 Classificazione dei computer...» 8 I Indice generale 1 Introduzione all ICT Modulo 1 Information Communication Technology ICT e computer... Pag. 6 Classificazione dei computer...» 8 2 Come è fatto un computer I componenti di un personal

Dettagli

cambiare utente mediante il comando su verificare chi siete e su che dir state lavorando Chi siete e che dir? (Inserisci la risposta)

cambiare utente mediante il comando su verificare chi siete e su che dir state lavorando Chi siete e che dir? (Inserisci la risposta) Collegamento al server LINUX Segui le seguenti istruzioni per accedere al server LINUX. Da WINDOWS Lancia telnet dalla riga di comando telnet 10.15.1.5, 10.15.1.12, 10.15.1.18, 10.15.1.23 aula boole telnet

Dettagli

Laboratorio di Programmazione

Laboratorio di Programmazione Laboratorio di Programmazione Federico Spizzo Dipartimento di Fisica / Edificio C Stanza 006 Tel: 0532 974231 E-mail: federico.spizzo@unife.it Gianluigi Cibinetto Dipartimento di Fisica / Edificio C Stanza

Dettagli

NOZIONI BASE SHELL E SCRIPT LINUX

NOZIONI BASE SHELL E SCRIPT LINUX NOZIONI BASE SHELL E SCRIPT LINUX Aggiornato al 11 gennaio 2006 Ermes ZANNONI (ermes@zannoni.to.it) (http://www.zannoni.to.it) Indice : 1. Introduzione 2. La Shell 2.1 Comandida Shell 2.1.1 File e directory

Dettagli

Ingegneria del Software 1: Eclipse

Ingegneria del Software 1: Eclipse Ingegneria del Software 1: Eclipse Da completare entro Marzo 15, 2016 S. Krstić and M. Scavuzzo and F. Marconi and A. Rizzi and C. Menghi 1 Contents 1 Introduzione 3 1.1 Java (JRE vs JDK)..........................................

Dettagli

LINUX - *** KIT DI MINIMA SOPRAVVIVENZA *** - UNIX - v0.05 -

LINUX - *** KIT DI MINIMA SOPRAVVIVENZA *** - UNIX - v0.05 - LINUX - *** KIT DI MINIMA SOPRAVVIVENZA *** - UNIX - v0.05 - Created by GT, 28/10/2002 l.r. bycg, 14/11/2005 1 - INFORMAZIONE SUI FILES ls : lista i files presenti nel direttorio dove ci si trova, in ordine

Dettagli

Corso di Laboratorio di Sistemi Operativi

Corso di Laboratorio di Sistemi Operativi Corso di Laboratorio di Sistemi Operativi Lezione 3 Alessandro Dal Palù email: alessandro.dalpalu@unipr.it web: www.unipr.it/~dalpalu Ulteriori comandi sui file Confronto tra file: 1. > cmp file1 file2

Dettagli

Università degli Studi di Verona. Linux Ubuntue ilcompilatorec. Dicembre 2014 - Sergio Marin Vargas. Dipartimento di Biotecnologie

Università degli Studi di Verona. Linux Ubuntue ilcompilatorec. Dicembre 2014 - Sergio Marin Vargas. Dipartimento di Biotecnologie Università degli Studi di Verona Dipartimento di Biotecnologie Laurea in Biotecnologie Corso di Informatica2014/2015 Linux Ubuntue ilcompilatorec Dicembre 2014 - Sergio Marin Vargas Caratteristiche di

Dettagli

Controllo di processi

Controllo di processi Controllo di processi Ogni processo del sistema ha un PID (Process Identity Number). Ogni processo può generare nuovi processi (figli). La radice della gerarchia di processi è il processo init con PID=1.

Dettagli

Corso di avvicinamento al Software Libero

Corso di avvicinamento al Software Libero Corso di avvicinamento al Software Libero Lunedi 6 Febbraio Parte 4 Archiviazione Install1 tgz = tar + gzip tar tape archive gzip GNUzip compress (unix) tgz = tar + gzip tar tape archive

Dettagli

Organizzazione di Sistemi Operativi e Reti

Organizzazione di Sistemi Operativi e Reti Organizzazione di Sistemi Operativi e Reti Corso di Laurea Triennale in Ingegneria Informatica Sara Lioba Volpi (sara.volpi@iet.unipi.it) Quarta esercitazione Sommario Virtual file system (VFS) concetto

Dettagli

Usare Python in Linux

Usare Python in Linux Università di Bologna 24 febbraio 2012 Outline 1 2 Outline 1 2 Cos è? Un sistema operativo Open Source; uno dei sistemi operativi dominanti in ambito server, ma utilizzabile su desktop, notebook, netbook,...

Dettagli

I file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002

I file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002 I file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002 dott.ssa Francesca A. Lisi lisi@di.uniba.it Sommario Generalità sui file in C I file ad accesso sequenziale I file di testo Riferimenti

Dettagli

COMANDI MS-DOS. Per ulteriori informazioni su uno specifico comando, digitare HELP nome comando

COMANDI MS-DOS. Per ulteriori informazioni su uno specifico comando, digitare HELP nome comando COMANDI MS-DOS Per ulteriori informazioni su uno specifico comando, digitare HELP nome comando ASSOC Visualizza o modifica le applicazioni associate alle estensioni dei file. AT Pianifica l'esecuzione

Dettagli

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita UD4 - MATLAB M-file. Efficienza degli algoritmi. Formati d uscita M-files In MatLab è possibile eseguire istruzioni contenute in file esterni; Tali file sono chiamati M-file perché devono avere estensione.m

Dettagli

Il file system. meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate. in memoria di massa

Il file system. meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate. in memoria di massa Il File System 1 Il file system E quella componente del SO che fornisce i meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate in memoria di massa Realizza i concetti astratti

Dettagli

sed: editor non interattivo di file di testo (1974 nei Bell Labs come evoluzione di grep, Lee E. McMahon)

sed: editor non interattivo di file di testo (1974 nei Bell Labs come evoluzione di grep, Lee E. McMahon) Sed & Awk Sed e Awk sed: editor non interattivo di file di testo (1974 nei Bell Labs come evoluzione di grep, Lee E. McMahon) awk: linguaggio per l'elaborazione di modelli orientato ai campi (1977, Bell

Dettagli

Il File System. Il file system

Il File System. Il file system Il File System Il file system Parte di SO che fornisce i meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate in memoria di massa Realizza i concetti astratti di file:

Dettagli

e-shop Ordina online i tuoi prodotti con pochi e semplici clic!

e-shop Ordina online i tuoi prodotti con pochi e semplici clic! Ordina online i tuoi prodotti con pochi e semplici clic! ACQUISTI IMPERO ONLINE GUIDA UTENTE Introduzione e-shop, il sito web per gli acquisti Impero online e-shop garantisce l accesso a 10 000 articoli

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Metafora Parte a versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Utilizzo collegamento remoto

Utilizzo collegamento remoto Utilizzo collegamento remoto Introduzione Il collegamento VPN (virtual private network) consente a PC collegati ad internet ma fisicamente fuori dalla rete interna regionale, di accedere, con le credenziali

Dettagli

Laboratorio di Reti Locali e Geografiche

Laboratorio di Reti Locali e Geografiche Laboratorio di Reti Locali e Geografiche A.A. 2008/2009 Walter Cerroni Il corso Complemento pratico/applicativo dei corsi dell area di Reti di Telecomunicazioni Obiettivo: effettuare esperienze didattiche

Dettagli

By E.M. Comandi fondamentali per LINUX

By E.M. Comandi fondamentali per LINUX By E.M. Comandi fondamentali per LINUX Terminale... pg.2 Proprietà dei file... pg.5 Periferiche del computer... pg.7 Pulitura del disco... pg.8 Editor... pg.8 Wireless... pg.8 Terminali per Seriali...

Dettagli

Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi

Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi alternative: function nome { lista-comandi } oppure nome ( ) {

Dettagli

Struttura del sistema operativo GNU/Linux

Struttura del sistema operativo GNU/Linux Struttura del sistema operativo GNU/Linux http://www.glugto.org/ Cos'è un filesystem Cosa vuol dire FHS Composizione albero di directory Concetto di Mount Utente root Permessi su files e directory GNU/Linux

Dettagli

Lab 01 Sistemi Operativi

Lab 01 Sistemi Operativi Informatica Grafica Ingegneria Edile-Architettura a.a. 2010/2011 Lab 01 Sistemi Operativi Lab01 1 Obiettivi Durante l'esercitazione vedremo come il sistema operativo si occupa di gestire: 1. i processi

Dettagli

Introduzione a GCC: GNU Compiler Collection

Introduzione a GCC: GNU Compiler Collection Introduzione a GCC: GNU Compiler Collection Caratteristiche di GCC Compilatore multipiattaforma modulare Disponibile per tutti i principali sistemi operativi Può produrre programmi per la maggior parte

Dettagli

ARCHITETTURA FISICA DEL SISTEMA

ARCHITETTURA FISICA DEL SISTEMA PROGETTO EBLA+ L uso dei contenitori EBLAplus ti aiuterà a gestire i tuoi documenti in modo facile e organizzato. Potrai in ogni momento, dal tuo dispositivo mobile, controllare quali documenti compongono

Dettagli

Laboratorio Multimediale Lezione n. 2

Laboratorio Multimediale Lezione n. 2 Laboratorio Multimediale Lezione n. 2 Corso di Laurea in Matematica, a.a. 2006-2007 16 ottobre 2006 Il filesystem Il filesystem è una struttura dati che permette di organizzare grandi quantità di informazioni

Dettagli

Corso di avvicinamento al Software Libero. Parte 3 Shell e Comandi

Corso di avvicinamento al Software Libero. Parte 3 Shell e Comandi Corso di avvicinamento al Software Libero Lunedi 6 Febbraio Parte 3 Shell e Comandi Formato comune dei comandi GNU/Linux-Unix comando -opz arg1 arg2... argn comando il comando che si intende dare corrisponde

Dettagli

Lezione 15 File System

Lezione 15 File System Lezione 15 File System Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2014/2015 Dipartimento di Scienze Fisiche, Informatiche e Matematiche Università di Modena e Reggio Emilia http://weblab.ing.unimo.it/people/andreolini/didattica/sistemi-operativi

Dettagli