LINUX. a livello di utente



Documenti analoghi
LINUX. a livello di utente

File System I parte. File System

NOZIONI BASE PER ESERCITAZIONI

Introduzione alla. Alessandra Giordani Lunedì 27 febbraio

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

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

Un Sistema Operativo multiuser-multitask UNIX

l Editor vi vi (visual editor) è stato scritto per essere utilizzabile con qualsiasi tipo di terminale.

Laboratorio di Programmazione

Editor vi. Editor vi

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

I Metacaratteri della Shell Unix

Terza lezione: Directory e File system di Linux

NOZIONI BASE SHELL E SCRIPT LINUX

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

A destra è delimitata dalla barra di scorrimento verticale, mentre in basso troviamo una riga complessa.

Software di base. Corso di Fondamenti di Informatica

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE

Il Software. Il software del PC. Il BIOS

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

CdL in Medicina Veterinaria - STPA AA

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

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

Shell di Linux e Comandi Utente

Il File System. Il file system

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

Il sofware è inoltre completato da una funzione di calendario che consente di impostare in modo semplice ed intuitivo i vari appuntamenti.

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

MANUALE EDICOLA 04.05

Controllo di processi

Il sistema operativo: interazione con l utente

lo PERSONALIZZARE LA FINESTRA DI WORD 2000

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

FtpZone Guida all uso Versione 2.1

Utenti e gruppi. Ogni utilizzatore di UNIX ha associato: Nomeutente nome alfanumerici UID identità numerica

Il Sistema Operativo (1)

GUIDA UTENTE PRIMA NOTA SEMPLICE

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

1. Le macro in Access 2000/2003

Il sistema operativo UNIX/Linux. Gli script di shell

Mac Application Manager 1.3 (SOLO PER TIGER)

Volume GESTFLORA. Gestione aziende agricole e floricole. Guidaall uso del software

Corso di Informatica

EasyPrint v4.15. Gadget e calendari. Manuale Utente

FtpZone Guida all uso

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

filrbox Guida all uso dell interfaccia WEB Pag. 1 di 44

Corso ForTIC C2 LEZIONE n. 3

Guida iscrizione Community. istruzione.social.marche.it

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,

Esercitazione 1 primi passi e uso dei file

Crotone, maggio Windows. Ing. Luigi Labonia

CTVClient. Dopo aver inserito correttamente i dati, verrà visualizzata la schermata del tabellone con i giorni e le ore.

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

Compilatore risorse display grafico LCD serie IEC-line

Istruzioni per la configurazione di IziOzi

Gestione delle informazioni necessarie all attività di validazione degli studi di settore. Trasmissione degli esempi da valutare.

Monitor Orientamento. Manuale Utente

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

per immagini guida avanzata Organizzazione e controllo dei dati Geometra Luigi Amato Guida Avanzata per immagini excel

Il software del PC. Il BIOS

INTERAZIONE CON L UTENTEL

Approccio stratificato

Word Libre Office. Barra degli strumenti standard Area di testo Barra di formattazione

Le Infrastrutture Software ed il Sistema Operativo

4. Fondamenti per la produttività informatica

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

Introduzione alla programmazione in C

On-line Corsi d Informatica sul web

5.2 UTILIZZO DELL APPLICAZIONE

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

Sistema Operativo di un Router (IOS Software)

ATOLLO BACKUP GUIDA INSTALLAZIONE E CONFIGURAZIONE

Come costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali

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

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

E possibile modificare la lingua dei testi dell interfaccia utente, se in inglese o in italiano, dal menu [Tools

Gestione Rapporti (Calcolo Aree)

MINI GUIDA AI COMANDI PIU' USATI PER I NOSTRI STB

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)

IBM SPSS Statistics per Linux - Istruzioni di installazione (Licenza per sito)

L amministratore di dominio

MANUALE BREVE PER IL DOCENTE TUTOR

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Organizzazione di Sistemi Operativi e Reti

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Cosa è un foglio elettronico

1.0 GUIDA PER L UTENTE

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

1 -Introduzione MODULO L1

GESGOLF SMS ONLINE. Manuale per l utente

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo

STRUMENTI DI PRESENTAZIONE MODULO 6

Guida all'uso del CMS (Content Management System, Sistema di Gestione dei Contenuti)

Manuale LiveBox APPLICAZIONE WINDOWS PHONE V (465)

ISTRUZIONI SULLE OPERAZIONI DI CAMBIO ANNO CONTABILE 2005/2006 LIQUIDAZIONE IVA - STAMPA REGISTRI - CHIUSURA/APERTURA CONTI

Transcript:

LINUX a livello di utente Questi lucidi sono stati prodotti sulla base dei seguenti riferimenti: Corso UNIX di Roberto Polillo dell Università di Milano Corso Unix di Marco Liverani dell Università di Roma Corso di Laboratorio di sistemi Operativi Dip. Informatica dell Università di Bari a cura di De Carolis, Pizzutilo, Bianchi. Corso di Linux di Paolo Torroni Breve storia di UNIX Ø Sviluppato inizialmente, a partire dal 1969, da Ken Thompson e Dennis Ritchie del gruppo di ricerca dei Bell Laboratories. Incorporò caratteristiche di altri sistemi operativi (es. MULTICS). Ø La terza versione, scritta in C, fu sviluppata ai Bell Labs appositamente per supportare UNIX. Ø La più significativa delle versioni UNIX non-bell fu sviluppata alla University of California at Berkeley (Berkeley Software Distributions). Ø Sviluppato per il VAX, 4.3BSD è una delle versioni più importanti e ne è stato fatto il porting su varie piattaforme. Ø 4BSD UNIX è il risultato di un finanziamento DARPA per lo sviluppo di uno standard UNIX ad uso governativo. Ø Vari progetti di standardizzazione hanno tentato di consolidare le varianti di UNIX, per ottenere un unica interfaccia di programmazione verso il sistema. 1

Storia delle versioni UNIX Architettura di UNIX Come molti sistemi operativi, UNIX consiste di 2 parti separate: Kernel: tutto ciò che si trova sotto l interfaccia delle system-call e sopra l hardware fisico. Fornisce il file system, lo scheduling della CPU, la gestione della memoria ed altre funzioni di SO, tramite le chiamate di sistema (system call); Programmi di sistema: impiegano le chiamate di sistema, supportate dal kernel, per fornire funzioni utili, come compilazione e manipolazione di file. 2

UNIX È un sistema operativo: Ä Multiuser Ä Multitask : multiprocessing - multithreading Ä Time-sharing shell tools kernel UNIX : Sistema Operativo multistrato utente gui Xwindow Programmi di utilità (shell, editor, compilatori ed interpreti, ) Librerie standard di sistema KERNEL HARDWARE 3

Gestione dei processi La rappresentazione dei processi è il principale problema di progetto di un sistema operativo. UNIX si distingue dagli altri sistemi operativi per la semplicità con cui processi multipli possono essere creati e manipolati. I processi vengono raprresentati in UNIX per mezzo di vari blocchi di controllo (control blocks). I blocchi di controllo associati ad un processo vengono memorizzati nel kernel. L informazione contenuta nei blocchi di controllo viene utilizzata dal kernel per controllare i processi ed effettuare lo scheduling della CPU. System Call Le chiamate di sistema definiscono l interfaccia del programmatore verso UNIX. L insieme dei programmi di sistema disponibili definisce l interfaccia utente. Le interfacce del programmatore ed utente definiscono il contesto che deve essere supportato dal kernel. Si hanno, approssimativamente, tre categorie di system call in UNIX: Manipolazione di file (le stesse chiamate di sistema supportano anche la manipolazione dei dispositivi). Controllo dei processi. Manipolazione dell informazione. 4

Controllo dei processi -1 ü Un processo è un programma in esecuzione identificato univocamente dall identificatore di processo (un intero). ü. Un processo necessita di alcune risorse per assolvere il proprio compito: tempo di CPU, memoria, file e dispositivi di I/O. ü Il SO è responsabile delle attività di gestione dei processi: q Creazione e cancellazione di processi. q Sospensione e riattivazione di processi. q Fornire meccanismi per: sincronizzazione di processi comunicazione fra processi ü System call per il controllo dei processi: Fork, execve, exit, wait. ü Processo zombie: processo terminato dopo il padre. Stati di un processo Ready running waiting pronto ad essere eseguito, ma non in esecuzione in esecuzione in attesa di un evento o di un dato System call di gestione dei processi 5

Controllo dei processi 2 I processi comunicano fra loro attraverso pipe, code di byte che sono accessibili tramite un descrittore di file. Tutti i processi utente sono figli di un unico processo, init. init crea un processo getty, che inizializza i parametri della linea del terminale e attende il login name dell utente per passarlo al processo login. Login confronta l user identifier per verificarne i diritti di accesso al sistema.esegue una shell che crea sottoprocessi per ciascun comando utente. Gruppi di processi Un insieme di processi correlati che concorrono alla realizzazione di un task comune. In ogni istante, un unico gruppo di processi può utilizzare un certo terminale di I/O. Il processo (unico) in foreground si svolge sotto gli occhi dall utente al terminale. I processi in background realizzano il loro compito senza interagire direttamente con l utente. Ciascun processo eredita il proprio terminale di controllo dal processo padre. 6

Comunicazione tra processi ð La maggior parte dei sistemi UNIX non permette la condivisione della memoria in quanto l hardware nativo PDP-11 non la incoraggiava. ð La pipe è il meccanismo IPC più caratteristico di UNIX, che garantisce un flusso unidirezionale affidabile di byte tra due processi. ð Nel 4.3BSD, le pipe sono implementate come un caso speciale del meccanismo delle socket, il quale non fornisce un interfaccia generale solo a funzioni tipo pipe, che sono locali su una macchina, ma anche a funzioni di rete. Routine di libreria Ø L interfaccia delle chiamate di sistema in UNIX viene supportata ed ampliata da una notevole collezione di routine di libreria. Ø I file header forniscono la definizione di strutture dati complesse impiegate nelle chiamate di sistema. Ø Librerie addizionali sono fornite per funzioni matematiche, accesso alla rete, conversioni di dati, ecc. Interfaccia utente ü Programmatori ed utenti interagiscono prevalentemente con programmi di sistema già esistenti: Le chiamate di sistema richieste sono incorporate nel programma e non devono essere conosciute dall utente. ü I programmi di sistema più comuni sono orientati alla gestione di file e directory. Directory: mkdir, rmdir, cd, pwd File: ls, cp, mv, rm ü Altri programmi sono relativi a editor (e.g., emacs, vi) formattatori di testo (e.g., troff, TEX), e altro. 7

Shell e comandi Ä Shell o interprete dei comandi il processo utente che esegue i programmi. Ä Viene chiamata shell perché ingloba il kernel. Ä La shell indica che è pronta ad accettare un nuovo comando visualizzando un prompt e l utente introduce comandi su una singola linea. Ä La shell naviga attraverso il percorso di ricerca per trovare il file relativo al comando, che viene in seguito caricato ed eseguito. Ä Le directory /bin e /usr/bin (che contengono la maggior parte dei comandi) sono quasi sempre nel percorso di ricerca. Ä La shell normalmente sospende la propria esecuzione fino al termine del comando. Standard I/O La maggior parte dei processi, quando iniziano la loro esecuzione, si aspettano di poter disporre di tre descrittori di file aperti: standard input il processo può leggere cosa viene scritto dall utente standard output il processo può inviare l output sullo schermo dell utente standard error uscita dell errore Molti programmi possono anche utilizzare file (piuttosto che un terminale) per lo standard input e lo standard output. Redirezione dell I/O: Le shell più comuni dispongono di una semplice sintassi per cambiare i file aperti per l I/O standard di un processo. 8

Classi di comandi Amministrazione di sistema Gestione files Elaborazione testi Sviluppo software Comunicazione. Pipeline, Filtri, e Shell Script Ø I singoli comandi possono essere accodati per mezzo di una barra verticale (pipe). In questo modo, l output del comando a sinistra della pipe costituisce l input per il comando alla sua destra. % ls pr lpr Ø Filtro un comando che passa il proprio standard input allo standard output, compiendo qualche elaborazione (es. pr). Ø Programmare una nuova shell personalizzata, con sintassi e semantica diverse, cambia la visione dell utente, ma non modifica il kernel o l interfaccia del programmatore. Ø XWindow è un interfaccia utente a icone molto diffusa sui sistemi UNIX. 9

Redirezione dell I/O standard Comando Significato del comando % ls > file_a dirige l output di ls sul file file_a % pr < file_a > file_b input da file_a e output su file_b % lpr < file_b input da file_b %% make program > & errs salva sia lo standard output che lo standard error su un file Manipolazione di file ü Un file è una sequenza di byte; il kernel non impone ai file nessuna struttura. ü I file sono raccolti in directory, organizzate ad albero. ü Le directory sono file che contengono informazioni su come reperire altri file. ü Path name (nome di percorso): identifica un file specificando un cammino che, attraverso la struttura a directory, raggiunge il file. Un path name assoluto inizia nella radice del file system. Un path name relativo inizia nella directory corrente. ü System call per la manipolazione di file: create, open, read, write, close, unlink, trunc. 10

Struttura delle directory in UNIX Shell Interfaccia di alto livello tra utente e SO Processore comandi evoluto: interpreta e mette in esecuzione comandi da: standard input file comandi linguaggio comandi con elevato potere espressivo - Negli anni '60: Dennis Ritchie e Ken Thompson di AT&T UNIXTM:? creazione di uno strumento con cui gli utenti potessero interagire con questo nuovo sistema. - Altri S.O. utilizzavano interpreti di comandi. - Nacque la Bourne shell (nota semplicemente come sh), creata da S.R. Bourne. - Sviluppate diverse shell, come la C shell (csh) e la Korn shell (ksh). Bourne Again Shell o bash: per saperne di più sulla bash, leggete la relativa pagina man, che comparirà digitando man bash. bash è installata di default con Red Hat Linux. 11

Shell Unix - Linux accesso al sistema Un utente può attivare piu shell, anche diverse: tcsh, csh, bash,... Shell di login (shell particolare) fornisce un accesso al sistema a ciascun utente Shell (Paolo) La shell è rappresentata da un processo assegnato all utente INIT Shell (Anna) Accesso a Linux: login e password Prerequisiti Un "account" utente per l'accesso a tale sistema La "password" per tale "account" Entrare nel sistema (login) L'accesso ad un sistema Linux richiede il "login" : l'operazione con la quale si specifica al sistema il proprio "account" utente e la propria "password". Attenzione: il "case" delle lettere ha importanza. Assicurative che il "led" della tastiera con la dicitura Caps Lock sia spento prima di digitare i vostri dati. Login: nomeutente password: ********* Prompt [nomeutente@nomepc nome]$ _ se utente normale [root@nomepc nome]# _ se utente root Prompt personalizzabile attraverso la variabile d ambiente PS1 12

Accesso a Linux: login e password Il sistema (in realtà un programma che si chiama login) controlla che esista un utente con il nome dato username e che la password corrisponda a quella registrata nel file /etc/passwd A questo punto, avete una "identità o username, a cui corrisponde uno userid (o uid) numerico e appartenete ad alcuni gruppi, a cui corrispondono dei groupid (o gid) numerici. Nota: Questa "identità" spesso viene chiamata "account" <login> do { <ricevi comando dal file di input> <interpreta il comando> <esegui comando> } while (!EOF); <logout> INIT esegue GETTY GETTY visualizza Login: ed attende un input utente SHELL termina INIT e, si risveglia e fa partire un altro GETTY La SHELL prende il controllo Password non corretta Password corretta LOGIN Effettua il riconoscimento utente. Esegue file di configurazione profile Shell di login La shell di login viene attivata automaticamente all'atto di login. Interpreta prima di tutto uno script uguale per tutti gli utenti e scritto dal sistemista: /etc/profile. Successivamente esegue uno script definito dall'utente, nella propria home directory. Il nome di questo script varia a seconda del tipo di shell. Per la bash, esegue solo il primo script fra: ~/.bash_profile, ~/.bash_login, ~/.profile L'utente puo' quindi "personalizzare" il suo ambiente di lavoro usando lo script di login. Inoltre, anche alla sua attivazione la shell esegue automaticamente lo script ~/.bashrc, sempre con operazione source. All'uscita della sessione viene eseguito lo script ~/.bash_logout. 13

Shell u Sistema multiutente problemi di privacy (possibili interferenze): necessità di proteggere / nascondere informazione Ø Ø Ø Ø Concetto di gruppo (es. staff, users, root,...): possibilità di lavorare sugli stessi documenti; Ogni utente appartiene a un gruppo ma può far parte anche di altri a seconda delle esigenze e configurazioni: Per iniziare una sessione bisogna essere in possesso di una combinazione: username (es. soa01001, soa01002,...) password (es. dfh@2#q, **a890, app&x.,...) ; nota: maiuscole / minuscole sono caratteri diversi!! (la password **a890 è diversa da **A890). Livelli di esecuzione (runlevels) 0 halt 1 single-user mode 2 multi-user senza servizi di rete (NFS) 3 multi-user 4 non usato 5 multi-user con interfaccia grafica (X11) 6 reboot /etc/inittab è il file di configurazione dei run level /etc/rc.d/ contiene gli script di inizializzazione per ciascun livello Ogni runlevel è una particolare configurazione del kernel in cui certe cose sono permesse ed altre no. 14

Livelli di esecuzione (runlevels) Per default l'installazione definisce il livello 3 come initdefault: alla partenza il sistema operativo e' in multiuser mode ed attiva tutti i servizi di rete previsti. Non e' attivo l'x-server (evocabile con il comando 'startx') previsto con il livello 5. Per definire un diverso initdefault e' necessario modificare il file /etc/ inittab. Per esempio, modificando il record id:3:initdefault: in id:5:initdefault: al prossimo reboot il sistema attivera' automaticamente anche l'x-server. Il processo di BOOT carica e inizializza tutti i servizi (daemon) INIT legge quali cose fare da /etc/inittab dove e' segnato il runlevel iniziale (solitamente il 3), e cosa fare per ogni runlevel. Esiste la directory /etc/rc.d che contiene tutti gli script opportuni, divisi per runlevel. Chiaramente un certo daemon puo' essere presente in piu runlevel (tipicamente nel 2 e nel 3). "runlevel" di Linux. Il runlevel 3 e' quello che vi permette di avviare il sistema in modalita' testo (ovvero vi verra' offerta una semplice schermata di login). Il runlevel 5 invece e' quello grafico, che avvia il server X subito. Le due "modalita'" non sono esclusive, si può sempre avviare il server grafico dalla modalita' console oppure passare a una semplice console da Kde o Gnome. Se si entra in LINUX in modalita' console (da LILO: linux 3), dopo il login scrivete startx per avviare il server X. Se invece entrate in modalita' grafica (o di default oppure da LILO: linux 5) si può: a) passare alle console di login premendo CTRL+ALT+F1 (fino a F6), per tornare alla grafica CTRL+ALT+F7. b) aprire una shell di root all'interno dell'ambiente grafico. basta clickare sull'icona che assomiglia a uno schermo nero con davanti una conchiglia (shell) nel Panel di kde. A questo punto avrete una shell dell'utente con cui siete entrati in kde. 15

Utenti - Gruppi Username: a cui corrisponde un nome identificativo dell account (massimo 8 caratteri) userid (o uid): numero intero univoco: un database separato fuori del kernel collega username a uid (file etc/passwd). Se due o più utenti hanno lo stesso uid è come se fosse lo stesso utente ma con due nomi diversi. gruppi, a cui corrispondono dei groupid (o gid) numerici: Un gruppo permette distinzione tra gli utenti. Ogni utente deve risiedere in un gruppo. Se esso non risiede in un gruppo particolare, lo stesso utente formerà un gruppo a sé stante, di cui egli è il solo membro. Tramite i gruppi è possibile definire delle azioni che sono concesse a più utenti facenti parte di uno stesso gruppo. /etc/passwd Contiene informazioni sugli utenti definiti Schema: username:password:uid :GID: comment : home directory : login command /etc/shadow Contiene informazioni sulle password crittografate degli utenti definiti schema: username : encrypted password : last change of password : minimum days that the password should exist without changing : maximum days of the password's existance : days until the user gets a message that his password will expire : number of days that the account will stay out of order before it can be totally deleted : exact date of password's expiration /etc/group contiene informazioni sui gruppi definiti schema: group name : password : GID : users of the group 16

Shell: utilizzo delle pagine man Uno dei modi più semplici per scoprire come utilizzare molti comandi e applicazioni è tramite il comando man (abbreviazione di "manuale ). In un formato estremamente condensato, le pagine man forniscono il riassunto delle funzionalità del comando, le opzioni disponibili e la sintassi utilizzata per eseguire il comando. man spazio nome del comando Es: man su, compare la pagina man del comando su. Scorrere Avanti = Barra spaziatrice; Scorrere Indietro= premete b. Uscire = il tasto q. Shell: stampa delle pagine man Es: per stampare una pagina man per man: man man col -b lpr comando parametro pipe filtro comando di stampa Nel dettaglio: il comando invia l'output della pagina man attraverso il filtro di col, che formatta adeguatamente l'output per la stampante rimuovendo i caratteri di formattazione video. Questo metodo è chiamato piping. Uno dei modi più semplici per scoprire come utilizzare molti comandi e applicazioni è tramite il comando man (abbreviazione di "manuale ) In un formato estremamente condensato, le pagine man forniscono il riassunto delle funzionalità del comando, le opzioni disponibili e la sintassi utilizzata per eseguire il comando. 17

Formato Comandi Nome comando -opzioni argomenti Esempio: ls -l temp.txt Sintassi: se un opzione/argomento può essere omesso si mette tra [opzione] se due opzioni/argomento sono mutuamente esclusivi, vengono separati da.. Ad es: arg1 arg2 quando un arg può essere ripetuto n volte si aggiungono i puntini arg... Comandi di controllo dell ambiente Logout per uscire da una login Passwd per cambiare password dell utente Stty per impostare le opzioni per il terminale Finger per visualizzare le informazioni sugli utenti Ps per visualizzare i processi del sistema Env per visualizzare i parametri di configurazione dell ambiente Set per settare i parametri di configurazione Alias per definire abbreviazioni o nuovi nomi di un comando, History per visualizzare gli ultimi comandi digitati. 18

passwd Shell cambia la password dell'utente corrente ps visualizza i processi del sistema es:ps -x Process Identifier terminale stato del processo tempo di CPU nome comando PID TT STAT TIME COMMAND 7032 p1 S 0:00 -csh 7120 p1 D 0:00 find/-name test 7231 p1 R 0:00 ps su lancia una shell con i privilegi dell'utente indicato. Es: su root Questo comando lancia una shell con i privilegi di superuser. Shell: variabili d ambiente Visualizzare le variabili di ambiente digitando al prompt della shell: env Viene visualizzato elenco di variabili di ambiente della bash. Ognuna di queste variabili contribuisce a personalizzare l'ambiente. Ad es. PATH definisce ciò che viene chiamato il percorso di default. Per il vostro account la variabile path può somigliare a : PATH=/usr/local/bin:/usr/X11R6/bin:/usr/ bin:/bin:/usr/x11r6/bin:/home/pippo/bin ed indica dove il sistema può trovare i programmi. 19

History Ripetizione veloce su linea di comando Quando si vuole ripetere un comando che si è digitato prima, è sufficiente premere il tasto con la freccetta in su. In questa maniera si accede alla history dei comandi. Se l'history dei comandi digitati è troppo lunga e/o si ricordano le prime lettere del comando, si può richiamarlo direttamente anteponendo ad esso il punto esclamativo. Ad esempio se si è digitato il comando: % ls -lr grep fortune sort +4n per trovare i file "fortune" ordinati per grandezza e lo si vuole richiamare, è sufficiente dare il comando: %!ls oppure %!l Questa funzionalità é particolarmente utile quando si devono riscrivere comandi molto lunghi. In pratica quando gli si passa qualcosa del tipo "!nome" la shell interpreta il comando "Esegui l'ultimo comando digitato, che si trova nella history, che inizia con nome". Se poi il problema è la cattiva digitazione di un comando (sempre sulla linea di comando), è possibile correggere l'errore senza doverlo riscrivere. Ad esempio : % ls -lr grep fortune sort +4n con il comando '^ra^re' viene sostituita la stringa 'ra' con 're' e viene eseguito automaticamente il comando risultante. % ^ra^re ls -lr grep fortune sort +4n./fortune-0.2/debian:./fortune-0.2:./fortune.it-1.51: -rw-r--r-- 1 8044 users 429 Oct 26 1998 fortune.lsm -rw-r--r-- 1 8044 users 514 Oct 24 1998 fortune.6 -rw-r--r-- 1 501 150 1733 Jan 9 1998 fortune.it-1.51.lsm drwxr-xr-x 2 501 150 4096 Jan 9 1998 fortune.it-1.51 drwxr-xr-x 3 8044 users 4096 Jul 16 17:05 fortune-0.2 -rw-r--r-- 1 8044 users 5179 Oct 25 1998 fortune.c -rwxr-xr-x 1 root root 10080 Jul 16 17:05 fortune 20

Shell last last indica gli ultimi accessi al sistema. es: last -n 20 Mostra gli ultimi 20 accessi es: last -x -n20 Mostra gli ultimi 20 Shutdown e cambi di run-level System level user command Who visualizza chi è loggato sul sistema in un dato momento Whatis cmd descrive brevemente il comando specificato come parametro Which cmd fornisce informazione sull alias del comando specificato Whereis cmd fornisce il path del comando specificato Date visualizza la data e l ora corrente di sistema Cal visualizza il calendario Bc attiva una calcolatrice con le operazioni aritmetiche base Wc file conta le linee, le parole ed i caratteri di un file Spell segnala errori di spelling Lpr file invia allo spool di stampa un file Lpq mostra lo stato della coda di stampa Lprm job rimuove job dalla coda di stampa 21

Shell date date imposta la data e l'ora del sistema es: date Eseguendo semplicemente il comando date, riporta la data e l'ora corrente. es: date -s '02 May 2000 10:55:10' Questo esempio setta la data al 2 Maggio 2000, e l'ora alle 10:55:10, omettendo l'ora si setta automaticamente all'ora 00:00:00 es: date --date '20 days ago' Stampa la data di 20 giorni fa es: date --date '3 months ago' Stampa la data equivalente al giorno corrente di 3 mesi fa. es: date --date '1 month 1 day' Stampa la data corrispondente a quella fra un mese ed un giorno. es: date --date '1 month 1 day ago' Stampa la data di un mese ed un giorno fa. es: date +'%T' Stampa l'ora corrente nel formato ore:minuti:secondi Comandi esempi di comandi nadja@std05a:~$ whoami!!nadja!! nadja@std05a:~$ date!!fri Apr 20 12:48:24 CEST 2001!! nadja@std05a:~$ who!!root tty1 Apr 9 14:02!!root ttyp1 Apr 12 17:11 (:0.0)!!nadja ttyp2 Apr 17 12:21 (gaia!!! 22

pwd: determinare la directory in cui si trova l utente Il comando pwd significa print working directory. Quando si digita pwd, si chiede al sistema Linux la posizione corrente. Il sistema risponde "mostrando" sul monitor la directory in cui ci si trova, conosciuto anche come standard output. Comandi di base per il file system ls cd pwd mkdir cp rm mv chown chmod ln cat elenca file cambia directory corrente mostra la directory corrente crea directory copia rimuovi sposta cambia il proprietario cambia i permessi di accesso crea un collegamento mostra il contenuto di un file 23

Uso dei metacaratteri I metacaratteri servono a specificare un pattern per identificare un insieme di nomi di file già esistenti. La shell provvede a sostituire i metacaratteri con i nomi di file. * sta per qualsiasi sequenza (anche vuota) di caratteri: es. *.java, file.*? sta per esattamente un carattere: es. file.do? [ ] specificano una lista o un intervallo di caratteri (es. [a-c], [A-Za-z]: file.do[ct]) gli apici possono essere usati per indicare che eventuali metacaratteri non vanno espansi Esempio: ptorroni@lab3-linux:~$ ls Xrootenv.0 f12.txt hw temp vi.txt f1.txt f2.txt p.c temp.c ptorroni@lab3-linux:~$ ls f?.txt f1.txt f2.txt ptorroni@lab3-linux:~$ ls f*.txt f1.txt f12.txt f2.txt ptorroni@lab3-linux:~$ ls [f-t]*.* f1.txt f12.txt f2.txt p.c temp.c ls Sintassi (sempl): ls [-opzioni ] [file ] opzioni: - l (long format): per ogni file una linea che contiene i diritti, il numero di link, il proprietario del file, il gruppo del proprietario, l occupazione di disco (blocchi), la data e l ora dell ultima modifica o dell ultimo accesso, e il nome - t (time): la lista ordinata per data dell ultima modifica - u: la lista ordinata per data dell ultimo accesso - r (reverse order): inverte l ordine - a (all files): fornisce una lista completa (i file che cominciano con il punto non vengono visualizzati file nascosti) - F (classify): aggiunge al termine del nome del file un carattere che ne indica il tipo (eseguibile:*, direttorio: /, link simbolico: @, FIFO:, socket:=, niente per file regolari) 24

Esempio: ls nadja@lab3-linux:~$ ls l!! total 3! -rw-r-r- -!1 nadja staff!57 apr 1 13:00!f1.txt! -rw-r-r- -!1 nadja staff 1024 apr 4 12:00!f2.txt!!!tipo di file diritti(user,group,others) link propietario gruppo dimensione(byte) data ultima modif nome cd Shell serve per muoversi attraverso le directory. Esempio: albero delle directory: /home/antonio/documenti/personali/ fattura10.txt posizione corrente: /home/antonio per portarsi nella directory dove si trova il documento fattura 10, digitare il seguente comando: cd documenti/personali. Per portarsi nella propria directory home digitare il comando cd mentre per portarsi nel primo livello dell'albero delle directory digitare cd / mentre con cd.. si va alla directory superiore. 25

Risposte ai Comandi echo "Hello World" il sistema operativo rispondera' con: Hello World Linux ripete quello che è stato specificato come parametro. Il comando echo risultera' fondamentale per gli script di shell. 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 un insieme di utilities per creare, modificare, riprodurre, distruggere ecc. files o dir. FILE = Flusso indifferenziato di byte ("byte stream") che può contenere informazioni qualsiasi (dati, programmi sorgente, programmi oggetto,...) File di tipo testo (formati da linee di caratteri ASCII) caratteri - newlines - eof File binari: sequenze di codici binari 000110001.. Il sistema non impone nessuna struttura alla sequenza di byte Un file è identificato da un nome (max 256, car alfabetici, numerici e underscore) Nomi di file riservati: / (slash) root directory -. (period) directory attuale -.. (double period) directory padre - ~ (tilde): home directory Non può iniziare con un numero o con un punto (?) Estensione: (.estensione) raggruppa file in base al loro contenuto. 26

file file cerca di determinare l uso che ne può essere fatto. od legge contenuto file bytexbyte (file dump). Stampa Stampa file: lpr nomefile[s] Tecnica di spool: inserite in una coda ed eseguite in background Visualizza coda dei job di stampa lpq Cancellare un job di stampa dalla coda: lprm Idjob opzione -P 27

Link I link sono particolari file ordinari che puntano ad altri file o directory. + flessibilità della struttura gerarchica del FS consentono condivisione file tra dir diverse, no duplicazione Utilizzo dei link: la struttura del FS diviene un grafo aciclico La condivisione di un file è ottenuta mediante la primitiva LINK oppure tramite il comando ln ln /usr/user1/prog/a link_a Il file a è identificato mediante due cammini differenti: /usr/user1/prog/a /usr/user2/prog/link_a Link Hard-link o fisici:quelli visti finora - non possono essere usati tra FS differenti Soft-link o simbolici: informazioni sul percorso per trovare il file opzione -s 28

Hard-link o fisici: Come riconosco un link i-node Soft-link o simbolici: DIRECTORY Sono sequenze di byte, come i file ordinari. A differenza dei file ordinari : Non contengono dati ma un elenco di nomi di file e relativi riferimenti ad altre strutture dati del file system Non possono essere scritte da programmi ordinari Una directory è un indice contenente i riferimenti (i-number) di tutti i file memorizzati nella directory stessa dir: etc home ecc file ordinario: README / radice (root) ramo etc home bin dev nodo dir corrente users web bash README foglie 29

Comandi per la gestione del FS pwd,cd, rm, cp, mv, mkdir, rmdir Tipiche dir del FS /bin comandi eseguibili /dev files speciali (I/O devices) /etc files per l amministrazione del sistema, /lib librerie di programmi /tmp area temporanea /home home directory degli utenti Ad ogni utente viene assegnata, da parte del system administrator, una directory di sua proprietà (home directory) che ha come nome lo username dell utente stesso. In essa, l'utente potrà creare tutti i file (o subdirectory) che desidera. Spesso, ma non sempre, le home directory sono sotto la directory di sistema /home Per denotare la propria home directory si può usare l'abbreviazione "~. File Speciali Ogni device di I/O viene visto, a tutti gli effetti, come un file (file speciale) A blocchi: associati a dispositivi che presentano blocchi di informazione accessibili direttamente (es. dischi) A caratteri: associati a dispositivi che presentano un flusso di caratteri in ingresso o uscita (es. terminali, stampanti) Richieste di lettura/scrittura da/a file speciali causano operazioni di input/output dai/ai device associati Tutte le operazioni di I/O relative ai dispositivi fisici vengono effettuate applicando le normali primitive definite per file normali, sui corrispondenti file speciali cp file /dev/lp Copia file sulla stampante, producendone la stampa 30

File Speciali Vantaggi: Trattamento uniforme di file e device File & device independence: programmi portabili e facilmente interfacciabili con ogni tipo di device File e directory: permessi Ad un file possono essere attribuiti i seguenti permessi: Lettura (r-ead) Scrittura (w-rite) Esecuzione (e-x-ecute) I permessi sono definiti per: utente proprietario (user) gruppo (a cui appartiene il proprietario) (group) altri (others) Al momento della creazione di un file o di una dir: vengono assegnati i permessi di lettura e scrittura al proprietario 31