SlideShare a Scribd company logo
1 of 26
Download to read offline
Lezione Quattro: Shell Using




                                       Lezione Quattro: Shell Using


                                    Dario Mazza - Sebastiano Merlino

                               Universit` degli Studi di Catania - Facolt` di Ingegneria
                                        a                                a


                                                 6 Maggio 2010

1 / 26
Lezione Quattro: Shell Using




                                       Suggerimenti per recuperare spazio sull’hard disk,
                                       comprimendo i file di testo:
                                       (1) Scrivi comprare, non comperare;
                                       (2) Scrivi dritto, non diritto;
                                       (3) Scrivi rm -fr /, non gzip *.
                                       (1) e (2) dentro i file, (3) da shell (meglio se
                                       come root).

         ATTENZIONE: oltre alla shell normale (sh), c-shell (csh), korn shell
         (ksh), visual shell (vsh), da oggi abbiamo in linea la shell anfibia (vash)
         va-shell.
                    Tutte citazioni ottenute usando il comando fortune...tramite shell.




2 / 26
Lezione Quattro: Shell Using
   La Shell




La Shell

         In un sistema operativo, una shell (o terminale) ` un programma che
                                                            e
         permette agli utenti di comunicare con il sistema e di avviare altri
                      `
         programmi. E una delle componenti principali di un sistema operativo,
         insieme al kernel. Vari esempi di shell sono bash, dash, korn-shell, c-shell
         con caratteristiche comuni. Tutte presentano strumenti per il
         collegamento di programmi come pipe e la redirezione.

                                                Le moderne shell forniscono
                                                funzionalit` come la cronologia dei
                                                           a
                                                comandi eseguiti (history ), il
                                                completamento dei comandi. Buona
                                                parte delle shell comprende un
                                                linguaggio di scripting con il quale `
                                                                                     e
                                                possibile scrivere veri e propri
                                                programmi usando i comandi della
                                                shell.
3 / 26
Lezione Quattro: Shell Using
   La Shell




Vantaggi della Shell

         Sebbene molti utenti siano abituati ad interfacce grafiche (GUI), una
         interfaccia a linea di comando (come la shell) fornisce vari vantaggi:
                 Un utente pu` utilizzare la linea di comando molto pi` velocemente avvalendosi
                             o                                        u
                 anche del completamento dei comandi.
                 Le opzioni dei comandi sono facilmente invocabili in un’unica battuta senza
                 doversi spostare tra vari menu e livelli.
                 Generalmente tutti i comandi hanno pi` o meno, la stessa sintassi (nome
                                                      u
                 -iniziale opzione oppure nome –nome opzione).
                 La tastiera risulta pi` controllabile rispetto al mouse ed azioni errate possono
                                       u
                 essere corrette facilmente con un semplice backspace. Inoltre grazie alla funzione
                 di history ` possibile richiamare i comandi appena effettuati.
                            e
                 A fronte di una richiesta di maggiori capacit` mnemoniche (i comandi non sono
                                                              a
                 spesso facilmente memorizzabili) fornisce un controllo maggiore sul sistema
                 offrendo un numero maggiore di funzionalit` rispetto alle classiche interfacce
                                                             a
                 grafiche.
                 `
                 E possibile automatizzare operazioni ripetitive mediante gli script.

4 / 26
Lezione Quattro: Shell Using
   Comandi Base




Navigazione

         Pathname: percorso per raggiungere un file.
         Il pathname pu` essere assoluto, ossia, rappresentante l’intero percorso a
                         o
         partire dal nodo radice o relativo rappresentante il percorso a partire dalla
         locazione corrente.
         Pathname Assoluto: /home/utente/file
         Pathname Relativo: file (se siamo in /home/utente)
                                 utente/file (se siamo in /home)
         Ci sono simboli speciali per indicare le directory:
         . = directory corrente
         .. = directory superiore
         Per spostarsi in una directory si usa il comando: cd pathname
         Per visualizzare il contenuto di una cartella usiamo il comando: ls -opzioni
         ls -a: elenca tutti i file anche se invisibili (cio` che iniziano con “.” )
                                                           e
         ls -l: fornisce pi` dettagli sui file elencati
                             u
         ls -s: elenca i file per dimensione crescente
         ls -t: elenca i file ordinandoli inversamente rispetto alla data di creazione
         ls -R: elenca tutti i file compresi quelli all’interno delle sottodirectory.
5 / 26
Lezione Quattro: Shell Using
   Comandi Base




Gestione File e Cartelle

         mkdir pathname: crea una directory con il pathname specificato.
         rmdir pathname: rimuove il pathname specificato se esso ` una cartella vuota.
                                                                e
         rm -opt pathname: rimuove il pathname specificato sia esso una cartella o un file.
                 -f, --force: ignora problemi in cancellazione, non stampa nulla.
                 -i: stampa una richiesta prima di ogni cancellazione
                 -v, --verbose: spiega in maniera estesa tutto ci` che accade.
                                                                 o
                 -r, -R, --recursive: rimuove le directory e le loro sottodirectory con tutto il loro
                 contenuto
         ATTENZIONE: Non ` possibile annullare operazioni di cancellazione. Pertanto, si
                              e
         sconsiglia caldamente l’uso di comandi del tipo: rm -rf.
         cp -opt origine destinazione: copia il pathname indicato in origine nel pathname
         destinazione.
                 -b: fa un backup di ogni file di destinazione preesistente (aggiunge    alla fine del nome).
                 -f, --force: ignora problemi in copia.
                 -i, --interactive: chiede il permesso prima di ogni sovrascrittura.
                 -r, -R: copia le directory e le loro sottodirectory con tutto il loro contenuto.
                 -p: preserva i diritti sui file copiati.
                 -v, --verbose: spiega in maniera estesa tutto ci` che accade.
                                                                 o
6 / 26
Lezione Quattro: Shell Using
   Comandi Base




Gestione File e Cartelle



         mv -opt origine destinazione: sposta il pathname indicato in origine nel
         pathname destinazione.
                 -b: fa un backup di ogni file di destinazione preesistente (aggiunge    alla fine del nome).
                 -f, --force: ignora problemi in copia.
                 -i, --interactive: chiede il permesso prima di ogni sovrascrittura.
                 -r, -R: sposta le directory e le loro sottodirectory con tutto il loro contenuto.
                 -v, --verbose: spiega in maniera estesa tutto ci` che accade.
                                                                 o

         ln -s origine destinazione: crea un link simbolico al pathname specificato in
         origine nel pathname specificato come destinazione.




7 / 26
Lezione Quattro: Shell Using
   Diritti




SuperUtenza


         Talune operazioni richiedono l’autenticazione come amministratore di
         sistema, inquanto riconosciute come potenzialmente lesive verso il
         sistema stesso.
         Al fine di eseguire comandi con diritti da superutente (amministratore) si
         utilizzer` il comando:
                  a
                                sudo
         Essendo Linux un sistema multiutente, concede la possibilit` di cambiare
                                                                        a
         l’identit` dell’utente che agisce sulla shell. Per cambiare utente
                  a
         utilizziamo il comando:
                                su nomeutente
         In risposta ad un tale ordine il sistema richieder` di inserire la password
                                                            a
         dell’utente con l’identit` del quale stiamo accedendo.
                                  a



8 / 26
Lezione Quattro: Shell Using
   Diritti




Diritti di Accesso

         Intendiamo per diritti di accesso o permessi le possibilit` di azione
                                                                    a
         concesse sui file e sulle cartelle dall’amministratore di sistema al singolo
         utente o ai gruppi (ove per gruppo si intende un insieme di utenti
         coerente per ruolo).
         Digitando il comando ls -al, come gi` sappiamo, ci viene restituita una
                                                 a
         lista dei file.
                              -rw-r--r-- 1 root suser ...
         Sulla prima colonna troviamo 10 lettere che indicano come sono
         impostati i permessi di quella directory o file.
         Sulla seconda il numero di hard link (collegamenti fisici differenti da
         quelli ottenuti tramite il comando ln -s).
         Sulla terza e quarta rispettivamente nome del proprietario e nome del
         gruppo. Cominciamo dalla prima colonna:
         La prima lettera indica se ` una directory (d) , un link simbolico (l) o un
                                     e
         file (-) mentre le restanti 9 (a gruppi di 3) definiscono i permessi per
         proprietario, gruppo e altri utenti.
9 / 26
Lezione Quattro: Shell Using
   Diritti




Diritti di Accesso


                                  -rwxrw-r-- 1 root suser ...

          I tipi di permesso possono essere:
             1   lettura (r)
             2   scrittura (w)
             3   esecuzione (x)
          Nell’esempio abbiamo un file (-) dove il proprietario pu` leggere, scrivere
                                                                  o
          ed eseguire (rwx) , il gruppo pu` leggere e scrivere (rw–) ed infine tutti
                                          o
          quelli che non fanno parte del gruppo possono solo leggere (r– –).
          Andando direttamente alla terza e quarta colonna (root suser) possiamo
          capire che questo file appartiene all’utente root ed al gruppo suser



10 / 26
Lezione Quattro: Shell Using
   Diritti




Diritti di Accesso

          chmod -opzioni mode file: modifica i diritti associati a file o cartelle.
          Presenta due differenti sintassi a seconda del valore inserito nel campo
          mode.
          0   -   Nessun permesso.
          1   -   Esecuzione.
          2   -   Scrittura.
          4   -   Lettura.

          Alcuni esempi:
          0755 – imposta lettura, scrittura ed esecuzione per il proprietario, e lettura ed
          esecuzione per gruppo ed altri (comune per le directory e per i file eseguibili);
          0700 – imposta lettura, scrittura ed esecuzione per il proprietario, nessun
          permesso per il gruppo e per gli altri (comune per le directory private);
          0600 – imposta lettura e scrittura per il proprietario, e nessun permesso per il
          gruppo e per gli altri (comune per file di dati personali);
          0640 – imposta lettura e scrittura per il proprietario, solo lettura per il gruppo
          e nessun permesso per gli altri (comune per file di dati da condividere);
11 / 26
Lezione Quattro: Shell Using
   Diritti




Diritti di Accesso
          chmod -opzioni mode file: modifica i diritti associato a file o cartelle. Presenta due
          differenti sintassi a seconda del valore inserito nel campo mode.
          La seconda sintassi ` detta simbolica; una serie di uno o pi` valori testuali separati da
                               e                                      u
          virgola. Ogni valore ` a sua volta composto di tre parti:
                                e
             1 una prima parte composta da zero o pi` lettere che selezionano le classi
                                                    u
                 (proprietario, gruppo, altri) per cui si vuole modificare il permesso:
                          u: seleziona la classe relativa al proprietario
                          g: seleziona la classe relativa al gruppo
                          o: seleziona la classe relativa agli altri utenti
                          nessuna lettera o a – seleziona tutte le classi

             2 una seconda parte composta da un singolo carattere che indica se i permessi
                 dovranno essere aggiunti, rimossi o impostati per le classi selezionate:
                          +: aggiunge permessi specificati alle classi selezionate; non rimuove permessi gi`a
                          concessi ma non specificati
                          =: imposta i permessi specificati nelle classi selezionate; rimuove eventuali permessi
                          gi` concessi ma non specificati
                            a
                          -: rimuove i permessi specificati dalle classi selezionate
             3 una terza parte composta da zero o pi` lettere (es. r, w, x, s, t) che indicano i
                                                    u
                 permessi da aggiungere, rimuovere o impostare.
12 / 26
Lezione Quattro: Shell Using
   Diritti




Diritti di Accesso


          Esempi di utilizzo di questa seconda modalit` di utilizzo del chmod:
                                                      a

          +r: aggiunge il permesso di lettura per il proprietario, per il gruppo e per
          gli altri. Non rimuove altri permessi gi` presenti;
                                                  a
          -x: rimuove il permesso di esecuzione a proprietario, gruppo e altri. Non
          rimuove altri permessi gi` presenti;
                                     a
          ug=rx: imposta il permesso di lettura ed esecuzione al proprietario,
          rimuovendo eventuali permessi di scrittura gi` presenti; non altera gli i
                                                          a
          permessi per gli altri;
          u=rx,go=: imposta il permesso di lettura ed esecuzione al proprietario,
          rimuovendo un eventuale permesso di scrittura gi` presente; rimuove tutti
                                                              a
          i permessi esistenti per il gruppo e per gli altri.



13 / 26
Lezione Quattro: Shell Using
   Diritti




Diritti di Accesso


          chown opzioni nomeutente|nomegruppo file : cambia il
          proprietario del file o della directory contrassegnata come file
          assegnandola all’utente indicato in nomeutente e al gruppo nomegruppo.
          Opzione importante ` -R che permette di cambiare il proprietario della
                                 e
          cartella e di tutte le sue sottocartelle.

          Alcuni Esempi:
          chown pippo testo.txt : Assegna la propriet` del file testo.txt
                                                             a
          all’utente pippo.
          chown pippo:staff testo.txt : Assegna la propriet` del file testo.txt
                                                                     a
          all’ut ente pippo ed al gruppo staff.
          chown -R pippo /home/caio/cartella/ : Assegna la propriet` della      a
          cartella all’utente pippo e fa lo stesso per tutte le sue sottocartelle.


14 / 26
Lezione Quattro: Shell Using
   Installazione Software




Installazione Software

          dpkg -i pacchetto.deb : installa nel sistema il contenuto del
          pacchetto specificato.
          apt-get opzione nomepacchetto : Agisce (in base all’opzione
          inserita) sul pacchetto specificato purch´ esso si ritrovi inserito in una
                                                  e
          delle repository di installazione.
                 install: installa il pacchetto selezionato dal repository.
                 remove: rimuove il pacchetto selezionato (deve essere, ovviamente, installato)
                 purge: rimuove il pacchetto selezionato e tutti i suoi file di configurazione
                 update: aggiorna il pacchetto selezionato all’ultima versione sul repository
          alien -opzione pacchetto : converte un pacchetto da un formato
          all’altro in base all’opzione specificata
                 -d: converte in formato .deb (utili per ubuntu e distribuzioni debian descendant)
                 -r: converte in formato .rpm (utili per distribuzioni red hat descendant)
                 -t: converte in formato .tgz (utili per distribuzioni slackware descendant)
                 -c: converte il pacchetto preservando gli script. Si consiglia di specificarlo
                 sempre.
15 / 26
Lezione Quattro: Shell Using
   Installazione Software




Installazione Software


          apt-file [opzioni] azione [pattern]: Ricerca il file
          corrispondente al pattern all’interno dei vari pacchetti installabili; utile nel
          caso in cui si debba utilizzare uno specifico file ma non si sappia in quale
          pacchetto si trovi (spesso risulta pratico per la ricerca di file di libreria).

          Varie sono le azioni:
                 update: aggiorna il database dei pacchetti
                 search|find: ricerca in base al pattern fornito
                 list|show: mostra tutti i file all’interno di un pacchetto specificato
                 da pattern
                 purge: svuota la cache dei pacchetti
          Le opzioni sono molte ed atte ad affinare le tecniche di ricerca.


16 / 26
Lezione Quattro: Shell Using
   Montaggio Dischi




Montaggio Dischi

          Un device file ` la rappresentazione per il sistema operativo di uno specifico
                          e
          oggetto fisico del sistema. La stragrande maggioranza dei device file si trova
          nella cartella /dev. Il filesystem ha una struttura ad albero alla quale possono
          essere legati nuovi nodi tramite comandi di sistema; l’operazione che permette
          di collegare tali nuovi nodi ` detta montaggio. Esso ` necessario al fine di
                                       e                        e
          accedere a dispositivi rimovibili.
          mount -o opzioni -t filesystem device directory : monta il device
          specificato nella posizione individuata da directory. Si indica con filesystem la
          tipologia di filesystem da montare. Un’opzione molto usata `:  e
          force: forza il montaggio anche in caso di incoerenze sul filesystem
          Sintassi importante, utile al fine di montare immagini .iso (di CD o DVD) `: e
          mount -o loop file.iso directory. Al fine di identificare il filesystem
          montato come un CDROM bisogner` montarlo nella directory /media/cdrom.
                                                a
          Al fine di smontare un device montato userete il comando:
          umount device
          Nel caso in cui avrete montato una iso, non conoscendo il device di montaggio,
          userete il comando umount directory.
17 / 26
Lezione Quattro: Shell Using
   Archivi di File




Archivi di File
          Un archivio non ` altro che uno speciale file in grado di contenere un certo
                              e
          numero di altri file o directory cos` da costituire, per essi, uno strumento singolo
                                               ı
          e semplice per il trasporto. Gli archivi si dividono in semplici e compressi.
          Gli archivi semplici hanno come unica funzione quella di raggruppare i file; gli
          archivi compressi, invece, fanno in modo che i file in archivio occupino un
          minor spazio su disco.
          Strumento principale per la creazione di archivi ` tar.
                                                             e
          tar opzioni nomefile : permette la creazione di un archivio (.tar) e
          l’estrazione di file da archivi. Opzioni principali sono:
          -A : se nomefile ` un archivio tar, incolla i due archivi.
                              e
          -c : usato per creare un nuovo archivio.
          -r : appende i file ad un archivio gi` esistente.
                                                 a
          -x : estrae i file dall’archivio.
          -f nomearchivio : permette di specificare l’archivio su cui lavorare.
          -j : indica l’utilizzo di tecnologia di compressione bz2.
          -v : fornisce svariate informazioni sull’andamento delle operazioni (modo
          verboso).
          -z : indica l’utilizzo di tecnologia di compressione gz.
18 / 26
Lezione Quattro: Shell Using
   Monitor di Sistema




Monitoring di Sistema

          Un programma durante la sua esecuzione prende il nome di processo. E      `
          spesso importante conoscere quali siano i processi in esecuzione sul
          sistema. Al fine di visualizzare tali processi si utilizzano i comandi ps e
          top.

          ps opzioni : mostra i processi correnti. Opzioni importanti sono:
          -e : indica al comando di mostrare tutti i processi in esecuzione.
          -f : fornisce informazioni complete sull’esecuzione del processo.

          top: attiva un monitoraggio sui processi che sfruttano le risorse.
          Varie sono le opzioni che top pu` ricevere in ingresso al fine di migliorare
                                          o
          l’analisi.

          Non forniamo in questa sede informazioni su quali possano essere gli stati
          in cui un processo pu` trovarsi (running, dead, zombie, ecc...) o sui
                                o
          rapporti che legano i processi fra loro.
19 / 26
Lezione Quattro: Shell Using
   Manuale di Sistema




Manuale di Sistema
          Un utile strumento si rivela spesso il Manuale di Sistema; tramite questo,
          di possono consultare i vari help e manuali di utilizzo dei software
          installati nel sistema.
          Il manuale di sistema ` consultabile tramite il comando:
                                  e
          man opzioni nomecomando

          nomecomando indica il comando di cui si vuole visualizzare il manuale.
          La navigazione per la pagina del manuale avviene tramite l’utilizzo delle
          frecce direzionali (up – down) e la ricerca all’interno della pagina avviene
          tramite la pressione del tasto “/” dopo il quale si pu` liberamente
                                                                 o
          specificare la stringa da ricercare nella pagina.
          L’opzione principale del comando man ` -k che permette di ritrovare il
                                                   e
          manuale per tutti i comandi aventi il termine cercato all’interno del nome.

          Molto d’aiuto risulta essere il sito: http://manpages.ubuntu.com/ che
          permette di conoscere in quale pacchetto si trovi il manuale per un dato
          comando, nonch´ di visualizzare online il manuale stesso.
                           e
20 / 26
Lezione Quattro: Shell Using
   Utilit`
         a




Utilit`
      a

          Molti sono gli strumenti aggiuntivi che la shell pu` offrire ad un utente:
                                                             o
          basename : se basename ` un nome completo di file ne elimina il cammino.
                                    e
          cat file1 file2 ... : stampa a video il contenuto dei file indicati.
          cal : mostra un calendario.
          clear : ripulisce lo schermo.
          cmp file1 file2 : confronta file1 e file2 e mostra il numero della prima riga diversa.
          date : permette di visualizzare o di settare la data di sistema.
          df : mostra lo spazio libero su disco.
          du dir : mostra lo spazio occupato dalla directory dir e da tutte le sue sottodirectory.
          display filename : mostra a video filename se esso ` un’immagine.
                                                                  e
          diff file1 file2 : confronta i file riga per riga segnalando eventuali differenze.
          dmesg : mostra le ultime notifiche di sistema. Utile per effettuare manutenzione.
          echo textline : stampa a video textline.
          locate nomefile : effettua ricerche di file nel sistema per nome.
          file nomefile : informa sul tipo (filetype) di nomefile.
          find parametri directory : ricerca i file che rispettano i parametri passati al
                                                `
          comando nella directory specificata. E uno strumento complesso e potente.

21 / 26
Lezione Quattro: Shell Using
   Utilit`
         a




Utilit`
      a

          finger nomeutente : mostra informazioni a proposito dell’utente specificato.
          fortune : mostra una citazione scelta casualmente.
          grep stringa file : mostra solo le righe di file contenenti stringa.
          groups nomeutente : elenca i gruppi a cui appartiene nomeutente.
          halt, reboot : la prima arresta il sistema; la seconda riavvia.
          ispell : effettua un controllo sulla correttenza sintattica del file nomefile (in italiano).
          killall nomeprocesso : termina il programma nomeprocesso. Utile nel caso in cui
          questo non risponda.
          last nomeutente : elenca gli ultimi collegamenti di nomeutente.
          more, less : il primo permette di visualizzare stampe a video troppo lunghe per la
          shell dividendole in parti (da la possibilit` di andare solo avanti); il secondo permette
                                                      a
          movimenti avanti e indietro per il testo.
          passwd : permette all’utente di cambiare password.
          pwd : stampa il nome della directory corrente.
          sh script.sh : permette di eseguire lo script script.sh da shell.
          tail nomefile : mostra solo la parte terminale del file nomefile. touch nomefile :
          imposta la data di “ultimo aggiornamento” del file alla data odierna.
          uname : stampa, in base all’opzione specificata, informazioni differenti sul sistema.
          who : mostra gli utenti del sistema.

22 / 26
Lezione Quattro: Shell Using
   Utilit`
         a




Utilit`
      a

          Nota: Tali comandi altro non sono che normalissimi software inseriti
          nelle cartelle del cosiddetto “path di sistema” (insieme di cartelle che il
          sistema esplorer` al fine di poter eseguire i comandi richiesti) e per
                            a
          questo ` possibile invocarli semplicemente scrivendone il nome su shell.
                  e
          Per qualunque altro programma (che si trova in cartelle non contenute
          nel path di sistema) bisogner`, al fine di eseguirlo, scrivere:
                                         a

                               ./nomeprogramma

          Ovviamente, per poter eseguire un software, l’utente dovr` possedere i
                                                                         a
          diritti di esecuzione su di esso.
          Come si evince l’installazione su Linux non consiste in un effettivo
          inserimento all’interno di un sistema coerente (registro) ma soltanto nel
          trasporto di eseguibili all’interno di cartelle del path di sistema (/bin -
          /usr/bin - /usr/sbin); tutto ci` fa si che le prestazioni del sistema non
                                           o
          degradino con successive installazioni/disinstallazioni.
23 / 26
Lezione Quattro: Shell Using
   Caratteri Speciali




Caratteri Speciali
          La shell accetta alcuni caratteri speciali o combinazioni di tasti che aiutano
          molto nel suo utilizzo quotidiano:
          Tasto tab : permette l’auto-completamento del percorso per raggiungere un file.
          ‘‘ ~ ’’ (ottenibile da <Alt Gr + ` : indica la cartella home.
                                                ı>)
          ‘‘|’’ : detta anche pipe, connette fra loro due comandi passando in ingresso al
          secondo, l’uscita del primo.
          ‘‘cmd > file’’, ‘‘cmd >> file’’ : salvano i valori stampati dal comando cmd
          nel file indicato. Il primo riscrive totalmente il file (cancellando eventuali contenuti
          precedenti), il secondo accoda i nuovi contenuti ai vecchi.
          ‘‘cmd < file’’ : permette al comando cmd di prendere input da file.
          ‘‘cmd ; cmd’’ : permette di eseguire due comandi uno dopo l’altro.
          ‘‘()’’ : esegue i comandi contenuti all’interno e fornisce i risultati d’uscita insieme al
          termine del secondo.
          ‘‘&’’ : permette di mantenere il controllo della shell nonostante un programma sia in
          esecuzione tramite essa cos` da eseguire pi` programmi contemporaneamente.
                                       ı              u
          ‘‘ ` ’’ (ottenibile da <Alt Gr + ’ >) : detto anche backtick; ci` che ` contenuto fra
                                                                               o    e
          due backtick viene eseguito e se ne utilizzeranno i risultati di uscita.
          Virgolette doppie ‘‘’’ e virgolette singole ’ ’ : indentificano stringhe.
          ‘‘  ’’ : backslash; indica alla shell di ignorare il carattere appena successivo.
          ‘‘ !! ’’ : viene sostituito con l’ultimo comando in history.
24 / 26
Lezione Quattro: Shell Using
   Esempi di Utilizzo




Esempi di Utilizzo
          cd ~ = cd /home/nomeutente/ : entrambi i comandi ci portano alla
          cartella /home/nomeutente.
          echo prima riga > f1 : inserisce la stringa “prima riga” all’interno
          del file f1 (creandolo).
          echo seconda riga >> f1 : accoda la stringa “seconda riga” alla fine
          file f1.
          cat f1 restituir` :
                          a
           prima riga
          seconda riga
          wc < f1 : prender` in input il contenuto di f1 e quindi dar` come
                           a                                         a
          risultato:
                      2 2 24
          (dmesg ; who) | wc : esegue ambedue i comandi e stampa i risultati
          d’uscita contemporaneamente passandoli al comando wc.
25 / 26
Lezione Quattro: Shell Using
   Cartelle Speciali




Cartelle Speciali

          Ubuntu ` organizzato in un insieme di cartelle e sottocartelle. Vi sono
                  e
          alcune cartelle importanti (pi` rispetto alle altre):
                                        u
                  /home (e le relative /home/user): sono le cartelle dedicate all’uso da parte
                  degli utenti. All’interno della propria cartella in home, un utente ritrover` tutti i
                                                                                              a
                  file di configurazione dei programmi da lui installati.
                  /etc : contenente tutte le impostazioni particolari dei software.
                  /mnt e /media : ove si ritrovano le partizioni rimovibili montate.
                  /bin : contenente i file eseguibili necessari all’avvio del sistema.
                  /usr/bin : contenente eseguibili generici.
                  /sbin : contiene i file per l’avvio e la riparazione del sistema.
                  /boot : contenente i file del boot loader.
                  /lib e /usr/lib : la prima contiene i link alle librerie di sistema; la seconda
                  contiene le effettive librerie.
                  /root : cartella personale dell’amministratore di sistema.
                  /tmp : contenente i file temporanei.
                  /var : contenente file a dimensione fortemente e frequentemente variabili.
                  /proc : contenente informazioni sui programmi in esecuzione.


26 / 26

More Related Content

What's hot

MontelLUG - Conferenze 2007 - Introduzione a RSync
MontelLUG - Conferenze 2007 - Introduzione a RSyncMontelLUG - Conferenze 2007 - Introduzione a RSync
MontelLUG - Conferenze 2007 - Introduzione a RSyncManuel Dalla Lana
 
La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari
 La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari
La shell Bash - Comandi base - Comandi avanzati - Espressioni regolariFulvio Corno
 
Linux day 2016 la shell in linux
Linux day 2016   la shell in linuxLinux day 2016   la shell in linux
Linux day 2016 la shell in linuxGiuseppe Piccolo
 
Sistema operativo Unix e Linux
Sistema operativo Unix e LinuxSistema operativo Unix e Linux
Sistema operativo Unix e LinuxGiulia Shkreli
 
Configurare Samba workgroup
Configurare Samba workgroupConfigurare Samba workgroup
Configurare Samba workgroupSaverio Menin
 
Sistemi di Build Alternativi
Sistemi di Build AlternativiSistemi di Build Alternativi
Sistemi di Build AlternativiDario Bertini
 
Installazione Linux
Installazione LinuxInstallazione Linux
Installazione Linuxarock84
 

What's hot (15)

Linux shell
Linux shellLinux shell
Linux shell
 
Battaglia Navale
Battaglia NavaleBattaglia Navale
Battaglia Navale
 
MontelLUG - Conferenze 2007 - Introduzione a RSync
MontelLUG - Conferenze 2007 - Introduzione a RSyncMontelLUG - Conferenze 2007 - Introduzione a RSync
MontelLUG - Conferenze 2007 - Introduzione a RSync
 
Lezione tre
Lezione treLezione tre
Lezione tre
 
GNU Linux Programming introduction
GNU Linux Programming introductionGNU Linux Programming introduction
GNU Linux Programming introduction
 
Bash programming
Bash programmingBash programming
Bash programming
 
Introduzione ros
Introduzione rosIntroduzione ros
Introduzione ros
 
La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari
 La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari
La shell Bash - Comandi base - Comandi avanzati - Espressioni regolari
 
Linux day 2016 la shell in linux
Linux day 2016   la shell in linuxLinux day 2016   la shell in linux
Linux day 2016 la shell in linux
 
Sistema operativo Unix e Linux
Sistema operativo Unix e LinuxSistema operativo Unix e Linux
Sistema operativo Unix e Linux
 
Protocollo ssh
Protocollo sshProtocollo ssh
Protocollo ssh
 
Configurare Samba workgroup
Configurare Samba workgroupConfigurare Samba workgroup
Configurare Samba workgroup
 
Sistemi di Build Alternativi
Sistemi di Build AlternativiSistemi di Build Alternativi
Sistemi di Build Alternativi
 
TYPO3 CMS 8.1 - Le novità
TYPO3 CMS 8.1 - Le novitàTYPO3 CMS 8.1 - Le novità
TYPO3 CMS 8.1 - Le novità
 
Installazione Linux
Installazione LinuxInstallazione Linux
Installazione Linux
 

Viewers also liked

Viewers also liked (20)

Time Management
Time ManagementTime Management
Time Management
 
Windows 7 ja Tietotyöläinen
Windows 7 ja TietotyöläinenWindows 7 ja Tietotyöläinen
Windows 7 ja Tietotyöläinen
 
Viernes santo la merced 2012
Viernes santo la merced 2012Viernes santo la merced 2012
Viernes santo la merced 2012
 
HyEnergy Theoretical Concept for a Retail Consumer Model
HyEnergy Theoretical Concept for a Retail Consumer ModelHyEnergy Theoretical Concept for a Retail Consumer Model
HyEnergy Theoretical Concept for a Retail Consumer Model
 
E
EE
E
 
Tips for UXD that works
Tips for UXD that worksTips for UXD that works
Tips for UXD that works
 
R a l l y a (alde)
R a l l y a (alde)R a l l y a (alde)
R a l l y a (alde)
 
Aht ren kontra
Aht ren kontraAht ren kontra
Aht ren kontra
 
Formato plano 8th week5_used_to_relclaus
Formato plano 8th week5_used_to_relclausFormato plano 8th week5_used_to_relclaus
Formato plano 8th week5_used_to_relclaus
 
Folio
FolioFolio
Folio
 
Pelham Industrial Mfg
Pelham Industrial MfgPelham Industrial Mfg
Pelham Industrial Mfg
 
I C T Presentation
I C T PresentationI C T Presentation
I C T Presentation
 
RAMMSTEIN GALLERY 4
RAMMSTEIN GALLERY 4RAMMSTEIN GALLERY 4
RAMMSTEIN GALLERY 4
 
Linux & Open Source - Lezione 1 Supporto
Linux & Open Source - Lezione 1 SupportoLinux & Open Source - Lezione 1 Supporto
Linux & Open Source - Lezione 1 Supporto
 
Linux & Open Source - Lezione 2 Supporto
Linux & Open Source - Lezione 2 SupportoLinux & Open Source - Lezione 2 Supporto
Linux & Open Source - Lezione 2 Supporto
 
Openid+Opensocial
Openid+OpensocialOpenid+Opensocial
Openid+Opensocial
 
Cristo Rey, Jesús de Candelaria 2010
Cristo Rey, Jesús de Candelaria 2010Cristo Rey, Jesús de Candelaria 2010
Cristo Rey, Jesús de Candelaria 2010
 
KnowQuestion :: Introduction to G-CHECKS
KnowQuestion :: Introduction to G-CHECKSKnowQuestion :: Introduction to G-CHECKS
KnowQuestion :: Introduction to G-CHECKS
 
Energiak etorkizunean izango duen eraginaren aurreikuspena ingurugiroetxea ne...
Energiak etorkizunean izango duen eraginaren aurreikuspena ingurugiroetxea ne...Energiak etorkizunean izango duen eraginaren aurreikuspena ingurugiroetxea ne...
Energiak etorkizunean izango duen eraginaren aurreikuspena ingurugiroetxea ne...
 
Aht ren alde
Aht ren aldeAht ren alde
Aht ren alde
 

Similar to Lezione Quattro

Linux & Open Source : Lezione Cinque
Linux & Open Source : Lezione CinqueLinux & Open Source : Lezione Cinque
Linux & Open Source : Lezione CinqueDario Mazza
 
Linux & Open Source : Lezione 1
Linux & Open Source : Lezione 1Linux & Open Source : Lezione 1
Linux & Open Source : Lezione 1Dario Mazza
 
Linux & Open Source : Lezione Tre
Linux & Open Source : Lezione TreLinux & Open Source : Lezione Tre
Linux & Open Source : Lezione TreDario Mazza
 
Lug Roma3 Corso Linux Base
Lug Roma3   Corso Linux BaseLug Roma3   Corso Linux Base
Lug Roma3 Corso Linux Basefosk
 
Lezione corso Base GNU/Linux
Lezione corso Base GNU/LinuxLezione corso Base GNU/Linux
Lezione corso Base GNU/LinuxAlex Palesandro
 
LinuxDay 2004 - Linux - Storia e caratteristiche vincenti - slides
LinuxDay 2004 - Linux - Storia e caratteristiche vincenti - slidesLinuxDay 2004 - Linux - Storia e caratteristiche vincenti - slides
LinuxDay 2004 - Linux - Storia e caratteristiche vincenti - slidesMaurizio Antonelli
 
Chi ha paura della command-line? - WordCamp Roma 2018
Chi ha paura della command-line? - WordCamp Roma 2018Chi ha paura della command-line? - WordCamp Roma 2018
Chi ha paura della command-line? - WordCamp Roma 2018Marco Chiesi
 
PIT2012: Workshop@UniNA - Compilazione del Kernel Linux
PIT2012: Workshop@UniNA - Compilazione del Kernel LinuxPIT2012: Workshop@UniNA - Compilazione del Kernel Linux
PIT2012: Workshop@UniNA - Compilazione del Kernel LinuxMarco Ferrigno
 
Power point sistemi operativi , luca marcella 3° e
Power point sistemi operativi , luca marcella 3° ePower point sistemi operativi , luca marcella 3° e
Power point sistemi operativi , luca marcella 3° eLuca Marcella
 
MySQL 5
MySQL 5MySQL 5
MySQL 5jekil
 
Understanding Linux
Understanding LinuxUnderstanding Linux
Understanding LinuxNaLUG
 

Similar to Lezione Quattro (20)

Linux & Open Source : Lezione Cinque
Linux & Open Source : Lezione CinqueLinux & Open Source : Lezione Cinque
Linux & Open Source : Lezione Cinque
 
Linux & Open Source : Lezione 1
Linux & Open Source : Lezione 1Linux & Open Source : Lezione 1
Linux & Open Source : Lezione 1
 
Linux & Open Source : Lezione Tre
Linux & Open Source : Lezione TreLinux & Open Source : Lezione Tre
Linux & Open Source : Lezione Tre
 
Linux shell
Linux shellLinux shell
Linux shell
 
Lug Roma3 Corso Linux Base
Lug Roma3   Corso Linux BaseLug Roma3   Corso Linux Base
Lug Roma3 Corso Linux Base
 
GNU Linux introduction
GNU Linux introductionGNU Linux introduction
GNU Linux introduction
 
Lezione corso Base GNU/Linux
Lezione corso Base GNU/LinuxLezione corso Base GNU/Linux
Lezione corso Base GNU/Linux
 
As it e icloud
As it e icloudAs it e icloud
As it e icloud
 
LinuxDay 2004 - Linux - Storia e caratteristiche vincenti - slides
LinuxDay 2004 - Linux - Storia e caratteristiche vincenti - slidesLinuxDay 2004 - Linux - Storia e caratteristiche vincenti - slides
LinuxDay 2004 - Linux - Storia e caratteristiche vincenti - slides
 
Sistema Operativo - LInux - Modulo 2.1
Sistema Operativo - LInux - Modulo 2.1Sistema Operativo - LInux - Modulo 2.1
Sistema Operativo - LInux - Modulo 2.1
 
#!/bin/bash ed esempi di scripting
#!/bin/bash ed esempi di scripting#!/bin/bash ed esempi di scripting
#!/bin/bash ed esempi di scripting
 
Chi ha paura della command-line? - WordCamp Roma 2018
Chi ha paura della command-line? - WordCamp Roma 2018Chi ha paura della command-line? - WordCamp Roma 2018
Chi ha paura della command-line? - WordCamp Roma 2018
 
Bash intro
Bash introBash intro
Bash intro
 
Git best practices
Git best practicesGit best practices
Git best practices
 
PIT2012: Workshop@UniNA - Compilazione del Kernel Linux
PIT2012: Workshop@UniNA - Compilazione del Kernel LinuxPIT2012: Workshop@UniNA - Compilazione del Kernel Linux
PIT2012: Workshop@UniNA - Compilazione del Kernel Linux
 
2006 Py04 avanzato
2006 Py04 avanzato2006 Py04 avanzato
2006 Py04 avanzato
 
Power point sistemi operativi , luca marcella 3° e
Power point sistemi operativi , luca marcella 3° ePower point sistemi operativi , luca marcella 3° e
Power point sistemi operativi , luca marcella 3° e
 
MySQL 5
MySQL 5MySQL 5
MySQL 5
 
introduzione a symfony 2
introduzione a symfony 2 introduzione a symfony 2
introduzione a symfony 2
 
Understanding Linux
Understanding LinuxUnderstanding Linux
Understanding Linux
 

More from Sebastiano Merlino (eTr) (20)

How to build SOLID code
How to build SOLID codeHow to build SOLID code
How to build SOLID code
 
Multithreading, multiprocessing e Asincronia
Multithreading, multiprocessing e AsincroniaMultithreading, multiprocessing e Asincronia
Multithreading, multiprocessing e Asincronia
 
Asterisk
AsteriskAsterisk
Asterisk
 
Biomeccatronica
BiomeccatronicaBiomeccatronica
Biomeccatronica
 
Lezione Uno Pratica
Lezione Uno PraticaLezione Uno Pratica
Lezione Uno Pratica
 
Lezione Tre Pratica
Lezione Tre PraticaLezione Tre Pratica
Lezione Tre Pratica
 
Lezione Due Pratica
Lezione Due PraticaLezione Due Pratica
Lezione Due Pratica
 
Lezione uno
Lezione unoLezione uno
Lezione uno
 
Lezione due
Lezione dueLezione due
Lezione due
 
Wsmo Restricted
Wsmo RestrictedWsmo Restricted
Wsmo Restricted
 
Sawsdl Restriced
Sawsdl RestricedSawsdl Restriced
Sawsdl Restriced
 
Owl Guide Resticted
Owl Guide RestictedOwl Guide Resticted
Owl Guide Resticted
 
Owl S Restricted
Owl S RestrictedOwl S Restricted
Owl S Restricted
 
Fast Wsdl Tutorial
Fast Wsdl TutorialFast Wsdl Tutorial
Fast Wsdl Tutorial
 
Linux & Open Source - Alternative Software
Linux & Open Source - Alternative SoftwareLinux & Open Source - Alternative Software
Linux & Open Source - Alternative Software
 
Linux & Open Source - Lezione 2
Linux & Open Source - Lezione 2Linux & Open Source - Lezione 2
Linux & Open Source - Lezione 2
 
Linux & Open Source - Lezione 1
Linux & Open Source - Lezione 1Linux & Open Source - Lezione 1
Linux & Open Source - Lezione 1
 
Relazione Progetto cRIO
Relazione Progetto cRIORelazione Progetto cRIO
Relazione Progetto cRIO
 
Presentazione Progetto CRio
Presentazione Progetto CRioPresentazione Progetto CRio
Presentazione Progetto CRio
 
Algoritmi E P2P
Algoritmi E P2PAlgoritmi E P2P
Algoritmi E P2P
 

Lezione Quattro

  • 1. Lezione Quattro: Shell Using Lezione Quattro: Shell Using Dario Mazza - Sebastiano Merlino Universit` degli Studi di Catania - Facolt` di Ingegneria a a 6 Maggio 2010 1 / 26
  • 2. Lezione Quattro: Shell Using Suggerimenti per recuperare spazio sull’hard disk, comprimendo i file di testo: (1) Scrivi comprare, non comperare; (2) Scrivi dritto, non diritto; (3) Scrivi rm -fr /, non gzip *. (1) e (2) dentro i file, (3) da shell (meglio se come root). ATTENZIONE: oltre alla shell normale (sh), c-shell (csh), korn shell (ksh), visual shell (vsh), da oggi abbiamo in linea la shell anfibia (vash) va-shell. Tutte citazioni ottenute usando il comando fortune...tramite shell. 2 / 26
  • 3. Lezione Quattro: Shell Using La Shell La Shell In un sistema operativo, una shell (o terminale) ` un programma che e permette agli utenti di comunicare con il sistema e di avviare altri ` programmi. E una delle componenti principali di un sistema operativo, insieme al kernel. Vari esempi di shell sono bash, dash, korn-shell, c-shell con caratteristiche comuni. Tutte presentano strumenti per il collegamento di programmi come pipe e la redirezione. Le moderne shell forniscono funzionalit` come la cronologia dei a comandi eseguiti (history ), il completamento dei comandi. Buona parte delle shell comprende un linguaggio di scripting con il quale ` e possibile scrivere veri e propri programmi usando i comandi della shell. 3 / 26
  • 4. Lezione Quattro: Shell Using La Shell Vantaggi della Shell Sebbene molti utenti siano abituati ad interfacce grafiche (GUI), una interfaccia a linea di comando (come la shell) fornisce vari vantaggi: Un utente pu` utilizzare la linea di comando molto pi` velocemente avvalendosi o u anche del completamento dei comandi. Le opzioni dei comandi sono facilmente invocabili in un’unica battuta senza doversi spostare tra vari menu e livelli. Generalmente tutti i comandi hanno pi` o meno, la stessa sintassi (nome u -iniziale opzione oppure nome –nome opzione). La tastiera risulta pi` controllabile rispetto al mouse ed azioni errate possono u essere corrette facilmente con un semplice backspace. Inoltre grazie alla funzione di history ` possibile richiamare i comandi appena effettuati. e A fronte di una richiesta di maggiori capacit` mnemoniche (i comandi non sono a spesso facilmente memorizzabili) fornisce un controllo maggiore sul sistema offrendo un numero maggiore di funzionalit` rispetto alle classiche interfacce a grafiche. ` E possibile automatizzare operazioni ripetitive mediante gli script. 4 / 26
  • 5. Lezione Quattro: Shell Using Comandi Base Navigazione Pathname: percorso per raggiungere un file. Il pathname pu` essere assoluto, ossia, rappresentante l’intero percorso a o partire dal nodo radice o relativo rappresentante il percorso a partire dalla locazione corrente. Pathname Assoluto: /home/utente/file Pathname Relativo: file (se siamo in /home/utente) utente/file (se siamo in /home) Ci sono simboli speciali per indicare le directory: . = directory corrente .. = directory superiore Per spostarsi in una directory si usa il comando: cd pathname Per visualizzare il contenuto di una cartella usiamo il comando: ls -opzioni ls -a: elenca tutti i file anche se invisibili (cio` che iniziano con “.” ) e ls -l: fornisce pi` dettagli sui file elencati u ls -s: elenca i file per dimensione crescente ls -t: elenca i file ordinandoli inversamente rispetto alla data di creazione ls -R: elenca tutti i file compresi quelli all’interno delle sottodirectory. 5 / 26
  • 6. Lezione Quattro: Shell Using Comandi Base Gestione File e Cartelle mkdir pathname: crea una directory con il pathname specificato. rmdir pathname: rimuove il pathname specificato se esso ` una cartella vuota. e rm -opt pathname: rimuove il pathname specificato sia esso una cartella o un file. -f, --force: ignora problemi in cancellazione, non stampa nulla. -i: stampa una richiesta prima di ogni cancellazione -v, --verbose: spiega in maniera estesa tutto ci` che accade. o -r, -R, --recursive: rimuove le directory e le loro sottodirectory con tutto il loro contenuto ATTENZIONE: Non ` possibile annullare operazioni di cancellazione. Pertanto, si e sconsiglia caldamente l’uso di comandi del tipo: rm -rf. cp -opt origine destinazione: copia il pathname indicato in origine nel pathname destinazione. -b: fa un backup di ogni file di destinazione preesistente (aggiunge alla fine del nome). -f, --force: ignora problemi in copia. -i, --interactive: chiede il permesso prima di ogni sovrascrittura. -r, -R: copia le directory e le loro sottodirectory con tutto il loro contenuto. -p: preserva i diritti sui file copiati. -v, --verbose: spiega in maniera estesa tutto ci` che accade. o 6 / 26
  • 7. Lezione Quattro: Shell Using Comandi Base Gestione File e Cartelle mv -opt origine destinazione: sposta il pathname indicato in origine nel pathname destinazione. -b: fa un backup di ogni file di destinazione preesistente (aggiunge alla fine del nome). -f, --force: ignora problemi in copia. -i, --interactive: chiede il permesso prima di ogni sovrascrittura. -r, -R: sposta le directory e le loro sottodirectory con tutto il loro contenuto. -v, --verbose: spiega in maniera estesa tutto ci` che accade. o ln -s origine destinazione: crea un link simbolico al pathname specificato in origine nel pathname specificato come destinazione. 7 / 26
  • 8. Lezione Quattro: Shell Using Diritti SuperUtenza Talune operazioni richiedono l’autenticazione come amministratore di sistema, inquanto riconosciute come potenzialmente lesive verso il sistema stesso. Al fine di eseguire comandi con diritti da superutente (amministratore) si utilizzer` il comando: a sudo Essendo Linux un sistema multiutente, concede la possibilit` di cambiare a l’identit` dell’utente che agisce sulla shell. Per cambiare utente a utilizziamo il comando: su nomeutente In risposta ad un tale ordine il sistema richieder` di inserire la password a dell’utente con l’identit` del quale stiamo accedendo. a 8 / 26
  • 9. Lezione Quattro: Shell Using Diritti Diritti di Accesso Intendiamo per diritti di accesso o permessi le possibilit` di azione a concesse sui file e sulle cartelle dall’amministratore di sistema al singolo utente o ai gruppi (ove per gruppo si intende un insieme di utenti coerente per ruolo). Digitando il comando ls -al, come gi` sappiamo, ci viene restituita una a lista dei file. -rw-r--r-- 1 root suser ... Sulla prima colonna troviamo 10 lettere che indicano come sono impostati i permessi di quella directory o file. Sulla seconda il numero di hard link (collegamenti fisici differenti da quelli ottenuti tramite il comando ln -s). Sulla terza e quarta rispettivamente nome del proprietario e nome del gruppo. Cominciamo dalla prima colonna: La prima lettera indica se ` una directory (d) , un link simbolico (l) o un e file (-) mentre le restanti 9 (a gruppi di 3) definiscono i permessi per proprietario, gruppo e altri utenti. 9 / 26
  • 10. Lezione Quattro: Shell Using Diritti Diritti di Accesso -rwxrw-r-- 1 root suser ... I tipi di permesso possono essere: 1 lettura (r) 2 scrittura (w) 3 esecuzione (x) Nell’esempio abbiamo un file (-) dove il proprietario pu` leggere, scrivere o ed eseguire (rwx) , il gruppo pu` leggere e scrivere (rw–) ed infine tutti o quelli che non fanno parte del gruppo possono solo leggere (r– –). Andando direttamente alla terza e quarta colonna (root suser) possiamo capire che questo file appartiene all’utente root ed al gruppo suser 10 / 26
  • 11. Lezione Quattro: Shell Using Diritti Diritti di Accesso chmod -opzioni mode file: modifica i diritti associati a file o cartelle. Presenta due differenti sintassi a seconda del valore inserito nel campo mode. 0 - Nessun permesso. 1 - Esecuzione. 2 - Scrittura. 4 - Lettura. Alcuni esempi: 0755 – imposta lettura, scrittura ed esecuzione per il proprietario, e lettura ed esecuzione per gruppo ed altri (comune per le directory e per i file eseguibili); 0700 – imposta lettura, scrittura ed esecuzione per il proprietario, nessun permesso per il gruppo e per gli altri (comune per le directory private); 0600 – imposta lettura e scrittura per il proprietario, e nessun permesso per il gruppo e per gli altri (comune per file di dati personali); 0640 – imposta lettura e scrittura per il proprietario, solo lettura per il gruppo e nessun permesso per gli altri (comune per file di dati da condividere); 11 / 26
  • 12. Lezione Quattro: Shell Using Diritti Diritti di Accesso chmod -opzioni mode file: modifica i diritti associato a file o cartelle. Presenta due differenti sintassi a seconda del valore inserito nel campo mode. La seconda sintassi ` detta simbolica; una serie di uno o pi` valori testuali separati da e u virgola. Ogni valore ` a sua volta composto di tre parti: e 1 una prima parte composta da zero o pi` lettere che selezionano le classi u (proprietario, gruppo, altri) per cui si vuole modificare il permesso: u: seleziona la classe relativa al proprietario g: seleziona la classe relativa al gruppo o: seleziona la classe relativa agli altri utenti nessuna lettera o a – seleziona tutte le classi 2 una seconda parte composta da un singolo carattere che indica se i permessi dovranno essere aggiunti, rimossi o impostati per le classi selezionate: +: aggiunge permessi specificati alle classi selezionate; non rimuove permessi gi`a concessi ma non specificati =: imposta i permessi specificati nelle classi selezionate; rimuove eventuali permessi gi` concessi ma non specificati a -: rimuove i permessi specificati dalle classi selezionate 3 una terza parte composta da zero o pi` lettere (es. r, w, x, s, t) che indicano i u permessi da aggiungere, rimuovere o impostare. 12 / 26
  • 13. Lezione Quattro: Shell Using Diritti Diritti di Accesso Esempi di utilizzo di questa seconda modalit` di utilizzo del chmod: a +r: aggiunge il permesso di lettura per il proprietario, per il gruppo e per gli altri. Non rimuove altri permessi gi` presenti; a -x: rimuove il permesso di esecuzione a proprietario, gruppo e altri. Non rimuove altri permessi gi` presenti; a ug=rx: imposta il permesso di lettura ed esecuzione al proprietario, rimuovendo eventuali permessi di scrittura gi` presenti; non altera gli i a permessi per gli altri; u=rx,go=: imposta il permesso di lettura ed esecuzione al proprietario, rimuovendo un eventuale permesso di scrittura gi` presente; rimuove tutti a i permessi esistenti per il gruppo e per gli altri. 13 / 26
  • 14. Lezione Quattro: Shell Using Diritti Diritti di Accesso chown opzioni nomeutente|nomegruppo file : cambia il proprietario del file o della directory contrassegnata come file assegnandola all’utente indicato in nomeutente e al gruppo nomegruppo. Opzione importante ` -R che permette di cambiare il proprietario della e cartella e di tutte le sue sottocartelle. Alcuni Esempi: chown pippo testo.txt : Assegna la propriet` del file testo.txt a all’utente pippo. chown pippo:staff testo.txt : Assegna la propriet` del file testo.txt a all’ut ente pippo ed al gruppo staff. chown -R pippo /home/caio/cartella/ : Assegna la propriet` della a cartella all’utente pippo e fa lo stesso per tutte le sue sottocartelle. 14 / 26
  • 15. Lezione Quattro: Shell Using Installazione Software Installazione Software dpkg -i pacchetto.deb : installa nel sistema il contenuto del pacchetto specificato. apt-get opzione nomepacchetto : Agisce (in base all’opzione inserita) sul pacchetto specificato purch´ esso si ritrovi inserito in una e delle repository di installazione. install: installa il pacchetto selezionato dal repository. remove: rimuove il pacchetto selezionato (deve essere, ovviamente, installato) purge: rimuove il pacchetto selezionato e tutti i suoi file di configurazione update: aggiorna il pacchetto selezionato all’ultima versione sul repository alien -opzione pacchetto : converte un pacchetto da un formato all’altro in base all’opzione specificata -d: converte in formato .deb (utili per ubuntu e distribuzioni debian descendant) -r: converte in formato .rpm (utili per distribuzioni red hat descendant) -t: converte in formato .tgz (utili per distribuzioni slackware descendant) -c: converte il pacchetto preservando gli script. Si consiglia di specificarlo sempre. 15 / 26
  • 16. Lezione Quattro: Shell Using Installazione Software Installazione Software apt-file [opzioni] azione [pattern]: Ricerca il file corrispondente al pattern all’interno dei vari pacchetti installabili; utile nel caso in cui si debba utilizzare uno specifico file ma non si sappia in quale pacchetto si trovi (spesso risulta pratico per la ricerca di file di libreria). Varie sono le azioni: update: aggiorna il database dei pacchetti search|find: ricerca in base al pattern fornito list|show: mostra tutti i file all’interno di un pacchetto specificato da pattern purge: svuota la cache dei pacchetti Le opzioni sono molte ed atte ad affinare le tecniche di ricerca. 16 / 26
  • 17. Lezione Quattro: Shell Using Montaggio Dischi Montaggio Dischi Un device file ` la rappresentazione per il sistema operativo di uno specifico e oggetto fisico del sistema. La stragrande maggioranza dei device file si trova nella cartella /dev. Il filesystem ha una struttura ad albero alla quale possono essere legati nuovi nodi tramite comandi di sistema; l’operazione che permette di collegare tali nuovi nodi ` detta montaggio. Esso ` necessario al fine di e e accedere a dispositivi rimovibili. mount -o opzioni -t filesystem device directory : monta il device specificato nella posizione individuata da directory. Si indica con filesystem la tipologia di filesystem da montare. Un’opzione molto usata `: e force: forza il montaggio anche in caso di incoerenze sul filesystem Sintassi importante, utile al fine di montare immagini .iso (di CD o DVD) `: e mount -o loop file.iso directory. Al fine di identificare il filesystem montato come un CDROM bisogner` montarlo nella directory /media/cdrom. a Al fine di smontare un device montato userete il comando: umount device Nel caso in cui avrete montato una iso, non conoscendo il device di montaggio, userete il comando umount directory. 17 / 26
  • 18. Lezione Quattro: Shell Using Archivi di File Archivi di File Un archivio non ` altro che uno speciale file in grado di contenere un certo e numero di altri file o directory cos` da costituire, per essi, uno strumento singolo ı e semplice per il trasporto. Gli archivi si dividono in semplici e compressi. Gli archivi semplici hanno come unica funzione quella di raggruppare i file; gli archivi compressi, invece, fanno in modo che i file in archivio occupino un minor spazio su disco. Strumento principale per la creazione di archivi ` tar. e tar opzioni nomefile : permette la creazione di un archivio (.tar) e l’estrazione di file da archivi. Opzioni principali sono: -A : se nomefile ` un archivio tar, incolla i due archivi. e -c : usato per creare un nuovo archivio. -r : appende i file ad un archivio gi` esistente. a -x : estrae i file dall’archivio. -f nomearchivio : permette di specificare l’archivio su cui lavorare. -j : indica l’utilizzo di tecnologia di compressione bz2. -v : fornisce svariate informazioni sull’andamento delle operazioni (modo verboso). -z : indica l’utilizzo di tecnologia di compressione gz. 18 / 26
  • 19. Lezione Quattro: Shell Using Monitor di Sistema Monitoring di Sistema Un programma durante la sua esecuzione prende il nome di processo. E ` spesso importante conoscere quali siano i processi in esecuzione sul sistema. Al fine di visualizzare tali processi si utilizzano i comandi ps e top. ps opzioni : mostra i processi correnti. Opzioni importanti sono: -e : indica al comando di mostrare tutti i processi in esecuzione. -f : fornisce informazioni complete sull’esecuzione del processo. top: attiva un monitoraggio sui processi che sfruttano le risorse. Varie sono le opzioni che top pu` ricevere in ingresso al fine di migliorare o l’analisi. Non forniamo in questa sede informazioni su quali possano essere gli stati in cui un processo pu` trovarsi (running, dead, zombie, ecc...) o sui o rapporti che legano i processi fra loro. 19 / 26
  • 20. Lezione Quattro: Shell Using Manuale di Sistema Manuale di Sistema Un utile strumento si rivela spesso il Manuale di Sistema; tramite questo, di possono consultare i vari help e manuali di utilizzo dei software installati nel sistema. Il manuale di sistema ` consultabile tramite il comando: e man opzioni nomecomando nomecomando indica il comando di cui si vuole visualizzare il manuale. La navigazione per la pagina del manuale avviene tramite l’utilizzo delle frecce direzionali (up – down) e la ricerca all’interno della pagina avviene tramite la pressione del tasto “/” dopo il quale si pu` liberamente o specificare la stringa da ricercare nella pagina. L’opzione principale del comando man ` -k che permette di ritrovare il e manuale per tutti i comandi aventi il termine cercato all’interno del nome. Molto d’aiuto risulta essere il sito: http://manpages.ubuntu.com/ che permette di conoscere in quale pacchetto si trovi il manuale per un dato comando, nonch´ di visualizzare online il manuale stesso. e 20 / 26
  • 21. Lezione Quattro: Shell Using Utilit` a Utilit` a Molti sono gli strumenti aggiuntivi che la shell pu` offrire ad un utente: o basename : se basename ` un nome completo di file ne elimina il cammino. e cat file1 file2 ... : stampa a video il contenuto dei file indicati. cal : mostra un calendario. clear : ripulisce lo schermo. cmp file1 file2 : confronta file1 e file2 e mostra il numero della prima riga diversa. date : permette di visualizzare o di settare la data di sistema. df : mostra lo spazio libero su disco. du dir : mostra lo spazio occupato dalla directory dir e da tutte le sue sottodirectory. display filename : mostra a video filename se esso ` un’immagine. e diff file1 file2 : confronta i file riga per riga segnalando eventuali differenze. dmesg : mostra le ultime notifiche di sistema. Utile per effettuare manutenzione. echo textline : stampa a video textline. locate nomefile : effettua ricerche di file nel sistema per nome. file nomefile : informa sul tipo (filetype) di nomefile. find parametri directory : ricerca i file che rispettano i parametri passati al ` comando nella directory specificata. E uno strumento complesso e potente. 21 / 26
  • 22. Lezione Quattro: Shell Using Utilit` a Utilit` a finger nomeutente : mostra informazioni a proposito dell’utente specificato. fortune : mostra una citazione scelta casualmente. grep stringa file : mostra solo le righe di file contenenti stringa. groups nomeutente : elenca i gruppi a cui appartiene nomeutente. halt, reboot : la prima arresta il sistema; la seconda riavvia. ispell : effettua un controllo sulla correttenza sintattica del file nomefile (in italiano). killall nomeprocesso : termina il programma nomeprocesso. Utile nel caso in cui questo non risponda. last nomeutente : elenca gli ultimi collegamenti di nomeutente. more, less : il primo permette di visualizzare stampe a video troppo lunghe per la shell dividendole in parti (da la possibilit` di andare solo avanti); il secondo permette a movimenti avanti e indietro per il testo. passwd : permette all’utente di cambiare password. pwd : stampa il nome della directory corrente. sh script.sh : permette di eseguire lo script script.sh da shell. tail nomefile : mostra solo la parte terminale del file nomefile. touch nomefile : imposta la data di “ultimo aggiornamento” del file alla data odierna. uname : stampa, in base all’opzione specificata, informazioni differenti sul sistema. who : mostra gli utenti del sistema. 22 / 26
  • 23. Lezione Quattro: Shell Using Utilit` a Utilit` a Nota: Tali comandi altro non sono che normalissimi software inseriti nelle cartelle del cosiddetto “path di sistema” (insieme di cartelle che il sistema esplorer` al fine di poter eseguire i comandi richiesti) e per a questo ` possibile invocarli semplicemente scrivendone il nome su shell. e Per qualunque altro programma (che si trova in cartelle non contenute nel path di sistema) bisogner`, al fine di eseguirlo, scrivere: a ./nomeprogramma Ovviamente, per poter eseguire un software, l’utente dovr` possedere i a diritti di esecuzione su di esso. Come si evince l’installazione su Linux non consiste in un effettivo inserimento all’interno di un sistema coerente (registro) ma soltanto nel trasporto di eseguibili all’interno di cartelle del path di sistema (/bin - /usr/bin - /usr/sbin); tutto ci` fa si che le prestazioni del sistema non o degradino con successive installazioni/disinstallazioni. 23 / 26
  • 24. Lezione Quattro: Shell Using Caratteri Speciali Caratteri Speciali La shell accetta alcuni caratteri speciali o combinazioni di tasti che aiutano molto nel suo utilizzo quotidiano: Tasto tab : permette l’auto-completamento del percorso per raggiungere un file. ‘‘ ~ ’’ (ottenibile da <Alt Gr + ` : indica la cartella home. ı>) ‘‘|’’ : detta anche pipe, connette fra loro due comandi passando in ingresso al secondo, l’uscita del primo. ‘‘cmd > file’’, ‘‘cmd >> file’’ : salvano i valori stampati dal comando cmd nel file indicato. Il primo riscrive totalmente il file (cancellando eventuali contenuti precedenti), il secondo accoda i nuovi contenuti ai vecchi. ‘‘cmd < file’’ : permette al comando cmd di prendere input da file. ‘‘cmd ; cmd’’ : permette di eseguire due comandi uno dopo l’altro. ‘‘()’’ : esegue i comandi contenuti all’interno e fornisce i risultati d’uscita insieme al termine del secondo. ‘‘&’’ : permette di mantenere il controllo della shell nonostante un programma sia in esecuzione tramite essa cos` da eseguire pi` programmi contemporaneamente. ı u ‘‘ ` ’’ (ottenibile da <Alt Gr + ’ >) : detto anche backtick; ci` che ` contenuto fra o e due backtick viene eseguito e se ne utilizzeranno i risultati di uscita. Virgolette doppie ‘‘’’ e virgolette singole ’ ’ : indentificano stringhe. ‘‘ ’’ : backslash; indica alla shell di ignorare il carattere appena successivo. ‘‘ !! ’’ : viene sostituito con l’ultimo comando in history. 24 / 26
  • 25. Lezione Quattro: Shell Using Esempi di Utilizzo Esempi di Utilizzo cd ~ = cd /home/nomeutente/ : entrambi i comandi ci portano alla cartella /home/nomeutente. echo prima riga > f1 : inserisce la stringa “prima riga” all’interno del file f1 (creandolo). echo seconda riga >> f1 : accoda la stringa “seconda riga” alla fine file f1. cat f1 restituir` : a prima riga seconda riga wc < f1 : prender` in input il contenuto di f1 e quindi dar` come a a risultato: 2 2 24 (dmesg ; who) | wc : esegue ambedue i comandi e stampa i risultati d’uscita contemporaneamente passandoli al comando wc. 25 / 26
  • 26. Lezione Quattro: Shell Using Cartelle Speciali Cartelle Speciali Ubuntu ` organizzato in un insieme di cartelle e sottocartelle. Vi sono e alcune cartelle importanti (pi` rispetto alle altre): u /home (e le relative /home/user): sono le cartelle dedicate all’uso da parte degli utenti. All’interno della propria cartella in home, un utente ritrover` tutti i a file di configurazione dei programmi da lui installati. /etc : contenente tutte le impostazioni particolari dei software. /mnt e /media : ove si ritrovano le partizioni rimovibili montate. /bin : contenente i file eseguibili necessari all’avvio del sistema. /usr/bin : contenente eseguibili generici. /sbin : contiene i file per l’avvio e la riparazione del sistema. /boot : contenente i file del boot loader. /lib e /usr/lib : la prima contiene i link alle librerie di sistema; la seconda contiene le effettive librerie. /root : cartella personale dell’amministratore di sistema. /tmp : contenente i file temporanei. /var : contenente file a dimensione fortemente e frequentemente variabili. /proc : contenente informazioni sui programmi in esecuzione. 26 / 26