Corso GNU/Linux 3. rev.2

Documenti analoghi
SHELL: File e Filesystem

Corso base GNU/Linux Latina Linux Group. Sito web: Mailing list:

Guida Linux. Molto rapida

La Shell di Unix. l utente impartisce i comandi al sistema digitandoli ad un apposito prompt;

Introduzione all'uso del sistema operativo Ubuntu

Corso di Sistemi Operativi I/II. Introduzione a Linux. Il File System. Ruggero Donida Labati

File System. File system gerarchico. Proteggere la propria home directory ... / = Root nodi interni: directory foglie: directory vuote o file

Fondamenti di GNU/Linux

Shell di Linux e Comandi Utente

Introduzione ai sistemi UNIX/Linux. Introduzione ai sistemi UNIX/Linux

Lab. di Sistemi Operativi

Codice Corso: UNX010. Durata: 3 giorni

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Esercitazione 2. Editor Utenti Permessi

BREVISSIMA GUIDA AL SISTEMA UNIX / LINUX

GNU/Linux Concetti di base

Introduzione ai sistemi UNIX/Linux

fare hard link fra file system diversi e su directory.

Introduzione all uso dei laboratori aka Linux basics. October 23, 2013

ORGANIZZAZIONE del FILE SYSTEM SISTEMA OPERATIVO UNIX FILE SYSTEM. FILE astrazione unificante del sistema operativo

Provare e installare Linux

Corso di avvicinamento al Software Libero. Lunedi 23 Gennaio

Basi di Linux per GRASS. Cartografia numerica e GIS

File System e Interprete Comandi

Laboratorio di sistemi operativi A.A. 2010/2011 Gruppo 2 Gennaro Oliva Processi

L ambiente UNIX/Linux. Comandi UNIX & Linux (parte A) Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Laboratorio di Informatica Generale I UD Prima esercitazione

Shell. Una shell di comandi ci consente, dunque, di eseguire tutte le operazioni di cui abbiamo bisogno!

Sequenza di avvio di Linux:

Ca ra tteristiche dei sistem i GN U/L inux. Struttura di un sistema GNU/Linux Il filesystem La shell

Comandi Linux. e altro su Linux ;)

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

Terza lezione: Directory e File system di Linux

Permessi base e speciali in Unix-Linux

Linux: Organizzazione filesystem

Corso di Laboratorio di Sistemi Operativi A.A Fabio Buttussi

Interfaccia del file system

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Daniel Cesarini.

I.S. Sobrero. Dipartimento di Informatica. Utilizzo. 16/02/2007 Marco Marchisotti

GNU/Linux Concetti di base

Lavoriamo ora in windows

Lezione 3: Programmazione della Shell di Unix

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

Lezione 2: Comandi avanzati della Shell di Unix

Editor, Utenti e Permessi Insegnamento di Sistemi Operativi di Rete Master Universitario in Tecnologie Internet

Corso Linux ARCES. Lezione 3: Lavorare con la Shell

Sistema Operativo (Software di base)

Introduzione. P4 termina prima di P3, P2 e P3 prima di P1 P1 P2 P3 P4 P1 P1 P2 P3 P4. Padre. P1,..., P4 sono processi. Figlio

File System I parte. File System

Linux e i software liberi. di Nardean Lorenzo e Redigolo Marco

Corso di avvicinamento al Software Libero. Lunedi 30 Gennaio

Esercitazione 1 la shell

Alcuni concetti base

Sequenza di avvio di Linux:

Utenti e Permessi. Andrea Bontempi. Corsi Linux POuL

Processi. Introduzione. Effective user/group id. Fork

ls = list in linux i comandi sono tutti in inglese, tramite abbreviazioni

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica

Introduzione a Unix. Barbara Guidi. Corso Informatica I /2013. Università di Pisa. Introduzione al calcolatore Introduzione a Unix Esercitazione

Sistemi Operativi, Secondo Modulo, Canale M Z Riassunto della lezione del 06/03/2017

Senza Soluzioni. Può un altro utente non appartenente al gruppo di mgiorgio, eseguire gli stessi comandi?

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

Un'installazione di base di Ubuntu, prevede la creazione di due partizioni che andranno ad ospitare:

Il software di sistema

CORSO LINUX PER LA CERTIFICAZIONE LPI ESSENTIALS

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

Comandi principali di Linux (1)

Corso di avvicinamento al Software Libero. Lunedi 23 Gennaio

Sistemi Operativi, Secondo Modulo, Canale M Z Riassunto della lezione del 29/02/2016

Info Architettura, JVM Installazione JDK (Windows, Linux) Hello world!

I sistemi operativi. Prof. Daniele Contarino

Laboratorio. Sistemi Operativi: Linux/Windows. Giovanni Da San Martino

Lezione 1: Introduzione alla Shell di Unix

Controllo di processi

Lab. di Sistemi Operativi - Esercitazione - Comandi Shell

E' un interprete di comandi: legge ciascuna linea di comando, la interpreta e la esegue

Il File System di Linux

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

Esercitazione GNU/Linux n. 2

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Esercitazione 3

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

Shell BASH. Variabili Redirezione

Mirko Mariotti. March 9, 2009

Introduzione ai sistemi UNIX/Linux

Corso Linux base: primo incontro. Sommario. Alessandro Pasotti License: Creative Commons Attribution Share Alike 3.

File System ext2. Struttura del filesystem ext2.

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

Controllo degli accessi in UNIX

Controllo degli accessi in UNIX - parte I

Uso del terminale in ambiente UNIX

Gestione Utenti & Permessi

per ospitare Linux e Windows

Laboratorio di Sistemi Operativi

01 Terminale e file system

Introduzione ai Sistemi Operativi. A cura di Massimo Scolaro Mob :

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

Laboratorio di Programmazione

L'ambiente UNIX: primi passi

Elaborato Shell. Elementi di architettura e sistemi operativi 2016/2017

Laboratorio di. Reti Informatiche. Corso di Laurea Triennale in Ingegneria Informatica A.A. 2016/2017. Ing. Niccolò Iardella

Il sistema operativo LINUX La shell

Transcript:

Corso GNU/Linux 3 rev.2 Il sistema Shell Comandi base Struttura filesystem Permessi Netstudent http://netstudent.polito.it by E.Richiardone err@netstudent.polito.it febbraio 2009 CC-by http://creativecommons.org/licenses/by/2.5/it/

Il sistema

cos'e` davvero un computer? un congegno fisico (hardware): sostanzialmente una grossa calcolatrice un insieme di operazioni prefissate (software): possono all'occorrenza essere lanciate nel congegno ci sono operazioni: piu` o meno importanti piu` o meno complicate

hardware hardware

il kernel kernel hardware

Linux! kernel moduli hardware

E poi? software di base kernel moduli hardware

Il sistema operativo GNU/Linux FreeBSD... software di base GNU kernel moduli Linux hardware

Un tipico sistema completo software utente GUI e altro software di base GNU kernel moduli Linux hardware

'distribuzione' distro (Ubuntu, Suse, etc) software utente software di base kernel moduli programmi vari (KDE, Gnome, Firefox, Gimp...) GNU (sh, ls, rm...) Linux hardware

Shell

Shell -1 L'interfaccia grafica in GNU/Linux e` considerata come un applicativo qualsiasi L'interazione di base con il kernel ed il sistema in generale avviene storicamente tramite comandi testuali Questo deriva dall'implementazione in linguaggio C del sistema Il termine 'shell' indica genericamente il programma testuale che permette di comunicare con il kernel ed il sistema

Shell -2 Esistono diverse implementazioni di shell, tra cui una basilare sempre fornita assieme al kernel Sh Ksh Bash Csh, tcsh In parte equivalente al command.com del DOS

Shell -3 Da shell e` possibile eseguire applicazioni per qualsiasi scopo Ogni shell dispone inoltre di comandi 'nativi', che permettono di interagire con il sistema (esempio 'cd' oppure 'echo') Vi sono poi altri comandi di base aggiuntivi I comandi di base sono nell'ordine delle centinaia e uguali in tutte le distro E` importante conoscere un minimo questi comandi perche` permettono di gestire totalmente il sistema

Comandi base

Comandi: man -1 Un comando molto utile e` 'man' Esso permette di consultare la documentazione presente nel sistema La documentazione e` divisa in varie sezioni Vi si accede tramite 'man TERMINE' La sezione 1 di solito e` relativa ai comandi di base, 2 librerie di base, 5 sui file di configurazione, e cosi` via 'man 1 man' apre le informazioni su man in sezione 1

Comandi: man -2 Oltre a 'man', per trovare l'argomento cercato e` a volte comodo il comando 'apropos TERMINE', che elenca i documenti correlati 'whatis TERMINE' cerca invece il termine nel nome stesso dei documenti Esiste anche il comando 'info TERMINE', simile con una formattazione migliore, disponibile di solito per i programmi GNU

Comandi: ls 'ls' permette di visualizzare i file e directory sul filesystem Lanciato senza argomenti presenta i file nella directory corrente Lanciato come 'ls NOMEPERCORSO' elenca i file siti nella directory indicata Sono disponibili innumerevoli opzioni, per presentare informazioni aggiuntive 'ls lha' elenca tutti i file con indicazione della dimensione, se e` una directory e i permessi

Comandi: pwd cd Il comando 'pwd' informa sull'attuale directory di lavoro Il comando 'cd' permette di cambiare directory attuale Eseguito da solo ritorna alla directory dell'utente (detta anche home) 'cd NOMEPERCORSO' ci porta nella directory indicata 'cd ' ritorna alla directory precedente 'cd..' si sposta alla directory di livello superiore

Comandi: mv, cp Con il comando 'mv' e` possibile rinominare o spostare un file 'mv FILEORIGINE FILEDESTINAZIONE' Il file di destinazione e di origine possono essere indicati con il percorso Il comando 'cp' permette la copia di un file 'cp FILEORIGINE FILEDESTINAZIONE' In entrambi e` possibile utilizzare i caratteri jolly '*' e '?', che sostituiscono una stringa ed un carattere qualsiasi

Comandi: cp, rm, rmdir Il comando 'cp r ' e` ricorsivo nel caso di directory, in quanto copia a destinazione tutti i file o sottodirectory presenti 'rm' permette di cancellare un file (non le directory pero`) 'rmdir' permette di cancellare una directory Il comando 'rm r' permette di cancellare in modo ricorsivo tutti i file e sotto directory

Comandi: mkdir, touch 'mkdir' permette la creazione di una directory 'mkdir p' serve per creare in un colpo solo una gerarchia di directory 'touch NOMEFILE' permette creare un file vuoto Se il file esiste, non lo modifica e aggiorna la data di ultimo accesso ':> NOMEFILE' crea un file vuoto Se il file esiste, lo svuota del suo contenuto

Comandi: file, cat, more Il comando 'file NOMEFILE' ci indica il tipo di file con cui abbiamo a che fare Sostituisce l'informazione fornita dall'estensione in DOS e Windows 'cat' permette di concatenare i file ('cat FILE1 FILE2 > FILE3') Utilizzando 'cat NOMEFILE' esso presenta interamente il suo contenuto 'more' e` piu comodo in quando presenta il contenuto del file con impaginazione sulla shell

Comandi: head, tail, less 'head' visualizza l'inizio di un file, di default 10 righe 'tail' visualizza la fine di un file 'tail f NOMEFILE' permette di vedere il contenuto del file durante eventuali modifiche al file 'less' e` un programma simile a 'more' ma non nativo, che permette una maggiore flessibilita` nella visualizzazione del file

Comandi: who, whoami, id, last Il comando 'whoami' o 'id' riporta informazioni sull'utente corrente Il comando 'who' elenca gli utenti attualmente presenti nel sistema 'last' riporta l'elenco degli utenti che in passato hanno fatto accesso al sistema

Comandi: su, sudo Il comando 'su' permette di cambiare utente senza effettuare login/logout Senza l'indicazione dell'utente si intende passaggio a root Con l'opzione 'su ' si forza all'aggiornamento delle variabili di ambiente 'sudo' permette di eseguire un comando come se fosse un'altro utente a farlo In ubuntu 'sudo i' permette di aprire una shell con utenza root

Comandi: uptime, top 'uptime' informa brevemente sullo stato del sistema 'top' monitorizza in tempo reale il sistema informazioni sulla memoria, sul carico del processore, e sui processi attivi E` molto utile per avere un'idea immediata di cosa sta facendo GNU/Linux

Comandi: vmstat, free Il comando 'free' illustra brevemente la memoria totale utilizzata dal sistema, sia essa principale (la RAM) che quella aggiuntiva scritta sul disco (lo swap) E` piu` dettagliato ma simile il comando 'vmstat'

Comandi: ps, pstree Il comando 'ps' permette di elencare tutti i programmi in esecuzione nel sistema 'ps ef' elenca tutti i processi attivi 'ps fax' elenca i processi organizzati ad albero I processi sono indicati con il loro pid, un numero univoco del processo Il comando 'pstree' dispone i principali processi ad albero partendo da init, il primo del sistema

Comandi: kill Il comando 'kill' permette inviare un segnale ad un processo in esecuzione Il segnale di default e` SIGTERM, indicato con il numero 15, che chiede al programma di terminare Il segnare SIGKILL, indicato con 9, obbliga il programma a terminare Il programma deve essere indicato con il suo pid 'kill 91234'

Comandi: killall, uname Il comando 'killall' consente di terminare l'esecuzione di un programma dato il suo nome Non e` detto che sia solo uno il programma con quel nome (ecco perche` 'all') Il comando 'uname' fornisce informazioni sul kernel attuale del sistema 'uname a' elenca tutte le informazioni

Comandi: shutdown Il comando standard per eseguire lo spegnimento del sistema e` 'shutdown' 'shutdown h now' spegne subito il sistema 'shutdown r now' riavvia ora il sistema Esistono poi alcuni comandi piu` specifici: 'halt' spegne di forza il sistema 'reboot' riavvia di forza il sistema 'sync' scrive i dati ancora in memoria sul filesystem per non avere inconsistenze

Comandi: alias -1 Il comando 'alias' permette di definire dei comandi personalizzati Eseguito senza argomenti elenca i comandi definiti E` per esempio possibile aggiungere un comando apposta al posto di 'rm r' con: alias cancellatutto='rm r' Di solito ls e` impostato per elencare i file a colori, ottenuto con: alias ls='ls color=auto'

Comandi: alias, echo Attenzione che il comando 'alias' ha la priorita rispetto ai comandi di base Per esempio con 'alias ls=uptime', eseguendo 'ls' si avra` l'output di 'uptime' Il comando 'echo' permette di stampare a video una stringa di testo Per esempio 'echo ciao '

Comandi: env Nella shell e` presente una serie di variabili impostate Si accede all'elenco di queste con il comando 'env' Per esempio la directory home e` indicata dalla variabile 'HOME' 'SHELL' indica l'attuale shell in utilizzo 'PATH' contiene l'elenco delle directory dove possono essere trovati i programmi Queste variabili possono essere consultate con echo ('echo $PATH')

Comandi: export Per poter impostare una variabile d'ambiente si utilizza 'export' 'export INIZIO= 18:30 ', 'echo $INIZIO' E` spesso utile aggiungere un percorso da cui poter eseguire le applicazioni: 'export PATH=$PATH :/var/bin '

Struttura filesystem

Filesystem -1 Il disco del computer e` diviso in uno o piu` contenitori di dati Il contenitore viene chiamato filesystem, su GNU/Linux si utilizza 'ext2', 'ext3', 'reiserfs', etc Il filesystem imposta il modo con il quale i dati sono scritti sul disco, e come vengono riportati all'utente I filesystem GNU/Linux organizzano i dati in file (e directory)

Filesystem -2 un file e` un'astrazione per un 'qualcosa': uno spazio dove tenere dei dati i piu` svariati (un documento, un programma, etc...) una periferica fisica di sistema (un disco, uno schermo, un mouse, etc...) astrazioni per la comunicazione (una pipe, un socket) un collegamento ad uno fra quelli sopra un file che 'contiene' altri file (directory) NOTA: l'interfaccia di rete non e` un file

Filesystem -3 La directory radice e` indicata con '/' e viene chiamata 'root' (non confondere con l'utente amministratore) I nomi dei file hanno lunghezza massima 256 caratteri Tutti i caratteri possono essere utilizzati, anche se e` sconsigliato l'utilizzo quelli speciali Il nome del file e` case sensitive, per cui una lettere minuscola non equivale ad una maiuscola

Filesystem -4 Tutti i file sono dotati di Access Control List (detti 'permessi'), che stabiliscono le operazioni permesse da ogni utente per ogni file Il filesystem di un sistema GNU/Linux permette l'integrazione di altri filesystem provenienti da altri dischi L'operazione viene chiama 'mount' Sono anche possibili mount di filesystem presenti su altri computer connessi tramite la rete

Struttura filesystem -1 '/' e` la directory radice, detta root, unica per ogni sistema GNU/Linux Tutte le altre directory o file discendono da esso '/bin' contiene i file eseguibili di molti comandi di base '/boot' contiene i file dei kernel e delle immagini di avvio, oltre alle informazioni di LiLo e Grub E` consigliato che tale directory risieda in una partizione apposita all'inizio del disco

Struttura filesystem -2 '/dev' contiene solo file speciali, tra i quali quelli relativi alle periferiche Sono file virtuali, non sono davvero presenti Il file '/dev/null' a cui puo` essere inviato qualsiasi file o stringa da distruggere Il file '/dev/zero' che contiene una successione infinita di 0 binario Il file '/dev/random' che contiene una successione infinita di valori casuali Per esempio il file '/dev/hda' o '/dev/sda' contiene l'immagine dell'intero disco

Struttura filesystem -4 '/proc' contiene vari file contenenti informazioni sul sistema, kernel e processi (anch'essi non davvero presenti sul disco) In '/usr' vanno tutti gli eseguibili, documenti, librerie, sorgenti della maggior parte dei programmi La maggior parte dei file e` in sola lettura per l'utente normale '/usr/bin' contiene comandi utenti di base

Struttura filesystem -5 '/usr/sbin' contiene comandi aggiuntivi per l'amministratore '/usr/local' contiene applicativi del sistema '/usr/lib' contiene librerie di sistema '/usr/share' contiene documentazione o librerie comuni a tutti, per esempio '/usr/share/man' contiene i testi dei 'man' '/var' contiene file di solito scritti dal kernel o servizi, per esempio i log

Struttura filesystem -6 '/etc' contiene i file di configurazione del sistema, in lettura e scrittura principalmente dall'amministratore e dai servizi, per esempio il file contenente le password '/home' contiene le directory delle home degli utenti del sistema '/mnt' e '/media' e` la directory in cui vengono posizionati i filesystem aggiunti '/opt' serve per alcuni applicativi aggiuntivi

Struttura filesystem -7 '/tmp' e` una directory temporanea scrivibile da tutti '/root' e` la directory utente dell'amministratore Queste directory sono normalmente tutte presenti subito dopo l'installazione di un sistema GNU/Linux

Collegamenti I collegamenti sono gestiti con il comando 'ln' Essi sono di due tipi, a seconda della loro implementazione nel filesystem: soft e hard Gli hard link permettono di accedere ad un file sul disco da due percorsi differenti Essi sono raramente utilizzati, e non permettono collegamenti tra due filesystem di due partizioni differenti

Collegamenti: ln I soft link sono creati con il comando 'ln s FILEORIGINE FILEDESTINAZIONE' Il file di collegamento creato e` un puntatore a livello di filesystem al file di origine Occupa molto poco spazio ed e` indicato da 'l' all'inizio della stringa dei permessi Accedere al soft link equivale ad accedere al file destinazione

Permessi

Permessi -1 Tutti i file, directory, link, etc sono dotati di permessi I permessi (o ACL) sono degli attributi che limitano l'accesso degli utenti ai file Si basano sull'identificazione dell'utente e di gruppi di utenti, e sull'impostazione di privilegi di lettura, scrittura ed esecuzione

Permessi -2 Ogni utente che accede al sistema e` caratterizzato da un numero uid Tale numero puo` non essere univoco Inoltre ogni utente appartiene ad uno o piu` gruppi, indicati con il numero gid Di solito root ha uid 0 Ogni file appartiene ad un utente e ad un gruppo

Permessi -3 Il permesso di lettura (r) indica l'accesso in sola lettura del contenuto del file Il permesso di scrittura (w) permette la modifica e cancellazione del file Il permesso di esecuzione (x) permette l'esecuzione di un file Tutti i programmi (anche i comandi base visti) hanno il permesso di esecuzione Il permesso di esecuzione per una directory si traduce nella possibilita` di accedervi (per esempio con 'cd NOMEDIR')

Permessi -4 Gli eseguibili non sono quindi caratterizzati dall'estensione ma dal permesso 'x' I permessi r, w, x, l'utente ed il gruppo di un file possono essere visti con 'ls l' Il primo gruppo di 10 caratteri si compone di: Un carattere che indica il tipo di file, che non puo` essere cambiato (e` deciso alla creazione) ' ' indica file normale, 'd' directory, 'l' un link, 's' socket,...

Permessi -5 Tre gruppi di 3 caratteri nella forma 'rwx' Il primo gruppo si riferisce ai permessi del proprietario (u user) Il secondo gruppo indica i permessi del gruppo di appartenenza (g group) Il terzo gruppo indica i permessi degli altri utenti e gruppi (o others) Se la lettera del permesso e` presente, il privilegio e` concesso, altrimenti e` presente un ' '

Permessi -6 Segue poi l'indicazione del proprietario del file, la dimension e l'ora di creazione Per esempio la stringa ' rw r r ' indica un file normale che puo` essere letto da tutti e scritto solo dal proprietario Una directory con permesso di lettura ma non di esecuzione ('drw rw rw ') permette a tutti di elencare e modificare i file contenuti, ma non permette di accedervi (per esempio con 'cd')

Permessi: chown, chgrp I permessi e proprietari possono essere modificati con tre comandi base 'chown NOMEUTENTE NOMEFILE' permette di cambiare il proprietario di un file Solo root puo` impostare arbitrariamente la proprieta` dei file Un utente normale non puo` regalare un suo file ad un altro utente 'chgrp NOMEGRUPPO NOMEFILE' permette di impostare il gruppo del file

Permessi: chmod -1 'chmod' permette di cambiare la sequenza di permessi di un file Ha due modalita` di utilizzo Tramite indicazione esplicita dei permessi r, w, x per le utenze u, g, o E` possibile assegnare, togliere o aggiungere permessi per l'utente o gruppo Esempio 'chmod go w NOMEFILE' Nel caso l'utenza sia omessa, si intende tutti e tre (es 'chmod +rw NOMEFILE')

Permessi: chmod -2 Per assegnare esattamente i permessi 'chmod u=rw,go=r NOMEFILE' La seconda modalita` consiste nel rappresentare la terna rwx su 8 numeri: 0 =, 1 = x, 2 = w, 3 = wx, 4 = r, 5 = r x, 6 = rw, 7 = rwx Impostare 'chmod 777 NOMEFILE' e` quindi equivalente a permettere qualsiasi operazione a tutti ('rwxrwxrwx')

Permessi: umask E` poi presente un programma che si occupa di gestire i permessi di default quando si crea un file. 'umask' senza argomenti riporta la maschera attualmente utilizzata La maschera e` nel formato numerico di chmod, ma rovesciata Per esempio 022 indica che una directory verra` creata con permessi 755, ovvero 'rwxr xr x' I file normali, che di default non sono eseguibili, sono normalmente privati di 'x'

domande? dubbi? suggerimenti? opinioni? err@netstudent.polito.it