Introduzione ai sistemi GNU/Linux

Documenti analoghi
Introduzione a Unix/Bash. Insieme minimo di strumenti per interagire con la shell Bash, compilare ed eseguire

Uso del terminale in ambiente UNIX

Il terminale per tutti

LABORATORIO DI SISTEMI OPERATIVI. Corso di Laurea in Ingegneria Informatica A.A. 2019/2020

Come si accede a BASH Tasti utili: Ctrl-Alt-F1, Ctrl-Alt-F7. Il Primo comando : exit (CASE SENSITIVE!!) Si può uscire con CTRL-D

Introduzione all uso di Linux

Introduzione alla. Alessandra Giordani Lunedì 11 marzo

Introduzione all uso di Linux

Sistemi Operativi e informatica 1

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

01 Terminale e file system

BREVISSIMA GUIDA AL SISTEMA UNIX / LINUX

Comandi principali di Linux (1)

Introduzione all uso di Linux

Nozioni Base di Linux

L utility Unix awk [Aho-Weinberger-Kernighan]

Linguistica Computazionale: esercitazioni

Lab. di Sistemi Operativi - Esercitazione n 2- - comando di ricerca: grep -

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

Sperimentazioni di Fisica I mod A. Introduzione a Linux

File System Linux Comandi Base per orientarsi con la Bash

Laboratorio di Sistemi Operativi

Reti Informatiche. Corso di Laurea Triennale in Ingegneria Informatica. Ing. Daniele Migliorini Vanessa Gardellin & Sara Lioba Volpi

L interfaccia command line di Ubuntu è il Terminale che usa un sistema command line detto bash.

File System e Interprete Comandi

Introduzione ai sistemi UNIX/Linux

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

Lezione 3: Programmazione della Shell di Unix

Introduzione ai sistemi UNIX/Linux

Esercitazione 1 la shell

Esercizi su permessi

Laboratorio di. Reti Informatiche. Corso di Laurea Triennale in Ingegneria Informatica A.A. 2018/2019. Ing. Carlo Vallati

SHELL: File e Filesystem

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

Per visualizzare il valore di tutte le variabili d ambiente si usa il comando env

Laboratorio 1: Usare Linux

Guida Linux. Molto rapida

Lab. di Sistemi Operativi - Esercitazione n 1 - a.a. 2015/2016. Comandi Shell

Corso Linux Base. 2. Uso del Sistema

Lab. di Sistemi Operativi - Esercitazione n 3 - a.a. 2016/2017. Script shell

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica

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

Cos'è Linux. Un sistema operativo : un insieme di programmi necessari per il funzionamento del computer e per il funzionamento di altri programmi.

Bootstrap day: MININFO

Shell BASH. Variabili Redirezione

Laboratorio Multimediale Lezione n. 1, gruppo A

Introduzione al sistema Linux

Laboratorio Multimediale Lezione n. 1

Introduzione all uso dei laboratori aka Linux basics.

Avvio Avviare il computer facendo partire Linux (SL - Scientific Linux 6.3).

Provare e installare Linux

- Controllo di flusso: for -

Sistemi operativi. Corso di Laurea Triennale in Ingegneria Informatica. Lezione 1 Unix - storia e filosofia Debian GNU/Linux Primi passi su Linux

Lezione 1: Introduzione alla Shell di Unix

Reti Informatiche Corso di Laurea Triennale in Ingegneria Informatica

Il sistema operativo LINUX La shell

Lavoriamo ora in windows

Bash: history list (I)

Introduzione all'uso del sistema operativo Ubuntu

LABORATORIO DI SISTEMI OPERATIVI

Codice Corso: UNX010. Durata: 3 giorni

Avviare il sistema operativo Linux Debian su Macchina Virtuale (VM) Guida per VirtualBox & VMware

Laboratorio di Sistemi Operativi

Usare Python in Linux

Lab. di Sistemi Operativi - Esercitazione n 1 - a.a. 2016/2017. Comandi Shell

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

Introduzione al calcolatore Introduzione a Unix Esercitazione. Introduzione a Unix. Programmazione 1 e Laboratorio a.a. 2013/2014. Introduzione a Unix

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

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

Il sistema operativo LINUX Esercitazione 3

Lab. di Sistemi Operativi - Esercitazione n 4- a.a Sed e Awk

Gestione dei files in linguaggio C. Fondamenti

Introduzione a Unix e comandi principali. Sistema multitasking e multiuser. Concetto di Terminale. Login con username e password

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

Lab 00 Introduzione e Sistema Unix

Ulteriori comandi sui file

Linux / Unix: la shell. utenti e gruppi, shell, comandi

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

Introduzione a Linux. Storia di UNIX

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

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

Laboratorio di Informatica Generale I UD Prima esercitazione

Linux e la shell Bash

Consigli utili per Linux

Introduzione alla programmazione nella shell di Unix 10 Maggio 2005

Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013

Page 1. Programmazione. Shell e programmazione. File comandi (script) Introduzione alla programmazione nella shell di Unix

Mirko Mariotti. March 9, 2009

Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni. Lab Shell. Lab-Shell 1

Il sistema operativo UNIX/Linux. Le shell Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Filtri e pipeline. qualsiasi comando unix ha a disposizione 3 file con cui comunicare con il resto del sistema: standard input in ingresso

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

Usare Python in Linux

Introduzione a Unix. Introduzione ad UNIX e la Shell

14 - INTRODUZIONE AL SISTEMA OPERATIVO LINUX

Fondamenti di Programmazione

Transcript:

October 11, 2016

Sistema operativo Distribuzione GNU/Linux Shell CLI vs. GUI CLI GUI Definizione Un sistema operativo è un insieme di programmi che: Gestisce al meglio l utilizzo delle risorse di un calcolatore Semplifica l uso della sottostante macchina hardware È necessario al funzionamento della macchina È solitamente installato su disco fisso

Sistema operativo Distribuzione GNU/Linux Shell CLI vs. GUI CLI GUI GNU/Linux Con il termine distribuzione GNU/Linux si fa riferimento ad un unico sistema operativo basato sulla famiglia di sistemi operativi utilizzanti kernel Linux e sistema base GNU.

Sistema operativo Distribuzione GNU/Linux Shell CLI vs. GUI CLI GUI Funzionalità Il sistema operativo è necessario per l utilizzo della macchina e lo ritroviamo solitamente installato su disco fisso. Fra le funzionalità di un sistema operativo ritroviamo: Gestione processi Gestione memoria Gestione dispositivi I/O Gestione file

Sistema operativo Distribuzione GNU/Linux Shell CLI vs. GUI CLI GUI Definizione La shell(detta anche interprete di comandi) permette l utilizzo dei servizi offerti da un sistema operativo. La shell è un system program. Tramite la shell l utente può impartire una serie di comandi ed avviare programmi.

Sistema operativo Distribuzione GNU/Linux Shell CLI vs. GUI CLI GUI Interfacce Di shell ne esistono di diversi tipi e principalmente possono usare un interfaccia: testuale (CLI) grafica (GUI)

Sistema operativo Distribuzione GNU/Linux Shell CLI vs. GUI CLI GUI Interfaccia a linea di comando Command Line Interface sono caraterizzate da un interazione di tipo testuale con l utente. I comandi impartiti rispettano una sintassi. È possibile comporre comandi complessi. Esempi di CLI: Bourne shell, Bash, Korn shell,c shell,cmd.exe(windows)...

Sistema operativo Distribuzione GNU/Linux Shell CLI vs. GUI CLI GUI Bash Bash (acronimo di Bourne Again Shell) è una shell testuale del progetto GNU usata nei sistemi Unix e Unix-like, in particolare la ritroviamo di default in molti dei sistemi GNU/Linux fra cui Ubuntu. La Bash è stata riscritta da Brian Fox come versione Free della Bourne shell.

Sistema operativo Distribuzione GNU/Linux Shell CLI vs. GUI CLI GUI Interfaccia grafica utente Il termine Graphical User Interface permette all utente di interfacciarsi graficamente al sistema. Nei S.O. moderni la metafora con la quale è stata concepita la GUI è il desktop. Per questo motivo spesso si usa il termine Desktop Environment Offre un sistema di interazione più intuitivo ma anche più limitato. Esempi di GUI: Unity, GNOME shell, KDE Plasma, Xfce, LXDE, Aero(Windows)...

Terminale Navigazione pwd,ls cd file,less cp,mv rm mkdir e touch grep man Terminal app. Programma che apre una finestra e ci permette di interagire con la shell testuale dalla shell grafica. Ci sono diversi emulatori che permettono di fare ciò: gnome-terminal konsole xterm

Terminale Navigazione pwd,ls cd file,less cp,mv rm mkdir e touch grep man Organizzazione file system Figure: hierarchical directory structure.

Terminale Navigazione pwd,ls cd file,less cp,mv rm mkdir e touch grep man Terminologia utile path assoluto: /percorso/al/file/partendo/dalla/root path relativo: directory corrente/.../file da raggiungere

Terminale Navigazione pwd,ls cd file,less cp,mv rm mkdir e touch grep man Comandi principali che operano sul FS pwd [opzioni]: la directory che si sta usando si chiama working directory. Per ottenere il nome della working directory basta usare il comando pwd. Quando si accede la prima volta ad un sistema GNU/Linux la working directory è settata alla home directory dell utente. ls [opzioni] directory: Stampa a video il contenuto della directory directory

Terminale Navigazione pwd,ls cd file,less cp,mv rm mkdir e touch grep man List Figure: A closer look at long format of list command.

Terminale Navigazione pwd,ls cd file,less cp,mv rm mkdir e touch grep man Comandi principali che operano sul FS cd [opzioni] path: directory corrente/.../file da raggiungere: Per cambiare la working directory si usa il comando cd. Per fare ciò basta digitare cd seguito dal pathname della directory desiderata. Per cambiare la working directory alla parent directory abbiamo 2 modi: Specificare il path assoluto verso la parent directory: cd /percorso/verso/la/parent/directory. Utilizzando il path relativo: cd.. Digitare cd senza nulla cambia la working directory alla propria home directory, inoltre il comando cd username cambierà la working directory alla home directory dell utente specificato.

Terminale Navigazione pwd,ls cd file,less cp,mv rm mkdir e touch grep man Comandi principali file nomefile: comando utile per determinare che tipo di dati contiene un file prima di leggerne il contenuto. less nomefile: permette di leggere il contenuto di un file.

Terminale Navigazione pwd,ls cd file,less cp,mv rm mkdir e touch grep man Comandi principali che operano sul FS cp [opzioni] source target: copia file e directory. cp file1 file2: nella forma semplice copia un singolo file. cp file1 dir1: copia il contenuto di file1 (in un file chiamato file1) dentro la directory dir1. cp -R dir1 dir2: copia il contenuto della directory dir1 in dir2. Se la directory dir2 non esiste viene creata. Altrimenti crea una directory chiamata dir1 in dir2.

Terminale Navigazione pwd,ls cd file,less cp,mv rm mkdir e touch grep man Comandi principali mv [opzioni] source target: muove o rinomina file e directory in base a come viene utilizzato. mv file1 file2: se file2 non esiste file1 viene rinominato file2. Se invece file2 esiste viene rimpiazzato col contenuto di file1, alla fine del comando ci sarà solo file2 con il contenuto di file1. mv -i file1 file2: esattamente lo stesso comando di prima, se file2 esiste viene chiesta conferma della sovrascrittura del file file2 con il contenuto di file1.

Terminale Navigazione pwd,ls cd file,less cp,mv rm mkdir e touch grep man Comandi principali mv [opzioni] source target: mv file1 file2 file3 dir1: i file file1,file2,file3 sono spostati nella directory dir1. Se dir1 non esiste il comando mv termina con errore. mv dir1 dir2: se dir2 non esiste allora dir1 è rinominata dir2. Invece se dir2 esiste allora la directory dir1 è spostata in dir2.

Terminale Navigazione pwd,ls cd file,less cp,mv rm mkdir e touch grep man Comandi principali rm [opzioni] target: rimuove file e directory. rm file1 file2: rimuove file1 e file2. rm -i file1 file2: come sopra, viene chiesta conferma prima di rimuovere i file. rm -r dir1 dir2: le directory dir1 e dir2 vengono eliminate con tutto il loro contenuto.

Terminale Navigazione pwd,ls cd file,less cp,mv rm mkdir e touch grep man Comandi principali mkdir [opzioni] dirname: crea la directory dirname, è possibile inoltre specificare il path dove crearla. touch [opzioni] filename: crea un file di nome filename. Come prima è possibile specificare il path dove creare il file.

Terminale Navigazione pwd,ls cd file,less cp,mv rm mkdir e touch grep man Comandi principali grep [opzioni] pattern filename: Stampa su standard output le righe del file filename che rispettano il pattern fornito. Un pattern o espressione regolare consente di trovare una stringa o un insieme di stringhe nel file che soddisfano le regole dettate dal pattern. Ad esempio: grep pp file.txt: stampo su stdout tutte le righe di file.txt che contengono la stringa pp grep ˆS file.txt: stampo su stdout tutte le righe di file.txt che iniziano con la lettera S grep S$ file.txt: stampo su stdout tutte le righe di file.txt che iniziano con la lettera S

Terminale Navigazione pwd,ls cd file,less cp,mv rm mkdir e touch grep man Comandi principali grep [opzioni] pattern filename: grep ˆparolaesatta$ file.txt: stampo su stdout tutte le righe di file.txt che coincidono con parolaesatta come parola unica grep ˆS file.txt: stampo su stdout tutte le righe di file.txt che iniziano con la lettera S grep S$ file.txt: stampo su stdout tutte le righe di file.txt che iniziano con la lettera S

Terminale Navigazione pwd,ls cd file,less cp,mv rm mkdir e touch grep man Comandi principali grep [opzioni] pattern filename: Esempi: grep [0-9]$ file.txt: stampo su stdout tutte le righe di file.txt che finiscono con un numero ls -l grep d.w..w..w. : stampo su stdout le sub-directory della working directory con permesso di scrittura per tutti i tipi di utenti, il carattere. nell espressione regolare indica un carattere qualsiasi in quella precisa posizione (non importa quale)

Terminale Navigazione pwd,ls cd file,less cp,mv rm mkdir e touch grep man Comandi principali man [opzioni] argomenti: Probabilmente il più importante di tutti. La sua funzionalità è quella di prendere come argomento un comando qualsiasi e stampare a video il manuale.

Terminale Navigazione pwd,ls cd file,less cp,mv rm mkdir e touch grep man Figure: command for root privileges.

Terminale Navigazione pwd,ls cd file,less cp,mv rm mkdir e touch grep man nomecomando: Si tratta di un comando che consente ad un utente, dopo aver inserito la sua password, di ottenere temporaneamente i privilegi di root solo per l esecuzione del comando. Il file di configurazione che sancisce quali comandi possono eseguire specifici utenti e/o gruppi lo troviamo in /etc/ers editabile solo con i permessi di root

Terminale Navigazione pwd,ls cd file,less cp,mv rm mkdir e touch grep man vs su su nomeutente: consente di aprire una sessione dell utente nomeutente senza chiudere la propria sessione. su senza argomenti apre (previa autenticazione) una sessione root. Uno dei motivi per cui è più sicuro di su per ottenere i privilegi di root riguarda il fatto che: non si apre una sessione intera come root quando fate un comando tramite il nome utente e il comando sono salvati in file di log

standard output standard input pipeline Metacaratteri Bash esempi di comandi complessi Bash scripting stdout Quando si esegue un comando l output viene visualizzato su standard output che di default è il display. Per redirigere l output basta usare il carattere >. ls>filelist.txt

standard output standard input pipeline Metacaratteri Bash esempi di comandi complessi Bash scripting stdin Molti comandi accettano input attraverso lo standard input. Di default, lo standard input prende il suo contenuto da tastiera ma, come lo standard output, può essere rediretto. Per redirigerlo ad un file basta usare il carattere: <. grep pattern<file.txt

standard output standard input pipeline Metacaratteri Bash esempi di comandi complessi Bash scripting Redirezione I/O Con la redirezione Input/Output è possibile collegare molteplici comandi insieme mediante le pipeline. Con le pipeline, lo standard output del primo comando viene data in pasto allo standard input del secondo e così via: ls -l less

standard output standard input pipeline Metacaratteri Bash esempi di comandi complessi Bash scripting Metachar In Bash ci sono dei caratteri speciali chiamati Metacaratteri aventi una semantica precisa: <,> : caratteri che indicano una redirezione dell I/O. : pipeline per la composizione di comandi. * : esempio di uso ls *, il carattere * viene sostituito dalla bash con qualsiasi contenuto della working directory, cosa si visualizza su stdout? ; : permette di listare comandi multipli su una singola linea. [ ] : usato per trovare almeno un matching con uno degli elementi al suo interno. Ad esempio ls -l e[abc].txt potrà restituire il long list di ea.txt, eb.txt, ec.txt.

standard output standard input pipeline Metacaratteri Bash esempi di comandi complessi Bash scripting Metachar $ : la stringa che segue $ indica una variabile. Ad esempio echo $HOME stampa la environment variable $HOME. ( ) : (ls,date)> miofile.txt, posso raggruppare due comandi e scrivere l output sullo stesso file. && : cmd1 && cmd2 esegui il comando 2 solo se il comando 1 ha avuto successo, un esempio tipico: mkdir mydir && echo cartella creata con successo.

standard output standard input pipeline Metacaratteri Bash esempi di comandi complessi Bash scripting Metachar : cmd1 cmd2 esegui il comando 2 solo se il comando 1 non ha avuto successo, un esempio: ls grep ˆa echo non ho trovato file o dir che iniziano per a, dove la stampa dell ultima stringa occorre solo se non è stato trovato nessun file o directory che inizia per a.

standard output standard input pipeline Metacaratteri Bash esempi di comandi complessi Bash scripting Esempi du -s * sort -nr > $HOME/userspacereport.txt Il comando disk usage riceve in ingresso un insieme di file su cui calcolare l occupazione in memoria (* indica tutti i file e directory della home directory). L output di questa istruzione viene passata in ingresso al comando sort che, con le opzioni opportunamente settate, ordinerà rispetto al valore numerico delle varie stringhe in modo decrescente (-r) riportando l output nel file userspacereport.txt che si trova nella home directory.

standard output standard input pipeline Metacaratteri Bash esempi di comandi complessi Bash scripting Esempi ps -aux awk print $11 grep sshd Il comando ps con opzione -aux mostrerà tutti i processi di tutti gli utenti. Lo standard output di questa istruzione viene direzionato verso lo standard input del comando awk che, nel caso dell esempio in esame, stamperà la colonna 11 che corrisponde al path dei vari processi in esecuzione. Lo standard output generato fino a questo punto verrà direzionato verso il comando grep che cercherà il processo desiderato.

standard output standard input pipeline Metacaratteri Bash esempi di comandi complessi Bash scripting Esempi È possibile scrivere script di Bash per effettuare operazioni molto complesse. Per fare ciò è necessario creare un fie con estensione.sh e, facendo attenzione ai permessi di esecuzione, eseguire lo script con il comando./file.sh.

standard output standard input pipeline Metacaratteri Bash esempi di comandi complessi Bash scripting Esempio:

shortcut utili UP/DOWN: scorrono tutti i comandi digitati. TAB: autocompletamento dei comandi (molto utile). CTRL + r: permette di cercare un comando nella history digitando alcune lettere. CTRL + a: porta il cursore a inizio riga

Fine Link utili: http://linuxcommand.org/ https://www.gnu.org/philosophy/free-sw.it.html https://en.wikipedia.org/wiki/text_editor marco.garlet@studenti.unimi.it