Breve introduzione alla shell Linux ed ai comandi principali
1 of 26
Download to read offline
More Related Content
Linux shell
1. La shell di Linux
A CURA DELL’ING. BUTTOLO MARCO
2. La shell è un interprete dei comandi , ossia un’interfaccia tra due livelli: il livello superiore che è l’utente
ed il livello inferiore che è il sistema operativo.
In linux la shell più nota è la shell BASH (Bourne Again Shell).
SHELL
KERNEL S.O
HARDWARE
3. La shell analizza il comando fornito come input dall’utente, lo interpreta e lo esegue. Nell’esempio
seguente viene mostrato un esempio di visualizzazione, tramite il comando
Linux WHO, dell’utente attualmente connesso al sistema, sfruttando uno script shell:
4. Uno script shell è un semplice file di testo che contiene la lista dei comandi che in sequenza dovranno
essere eseguiti dalla shell medesima. Può essere creato con un qualsiasi editor (pico, vim, emacs,…).
Hanno estensione .sh. Per poter eseguire tale script è necessario salvarlo (es: test.sh), e fornire al file i
permessi di esecuzione, come viene mostrato di seguito:
5. Chiaramente in uno script shell è possibile aggiungere costrutti per il controllo del flusso di esecuzione
del programmino (if-then, ciclo for,…) e si può lavorare anche con le funzioni.
L’esempio seguente mostra come creare uno script che visualizza a video 10 volte il medesimo
messaggio:
7. Pertanto, uno script shell è semplicemente un file di testo che contiene tuta una serie di comandi che la
shell può leggere ed interpretare come se li avessimo in qualche modo digitati all’interno di un
terminale.
Il seguente esempio mostra invece come creare un semplice menu in cui l’operatore può scegliere che
azione compiere ed in funzione di essa verranno eseguiti determinati comandi. Il menu è semplice.
9. Quando si scrivono script shell in Linux le variabili si utilizzano senza specificarne il tipo in modo
esplicito. Il seguente esempio mostra come inizializzare una variabile chiamata ‘x’ dandogli il valore 2. Il
carattere speciale $, ci permette di visualizzarne il suo contenuto. Si presti attenzione al fatto che la
shell BASH, come il linguaggio di programmazione PERL e PHP è a tipizzazione dinamica ossia non è
necessario specificare il tipo delle variabili.
10. Anche gli array si possono utilizzare negli script Linux. Per esempio:
12. I comandi digitabili nella shell Linux (es: BASH) sono comandi che devono avere il seguente formato:
Nome comando –opzione argomento
Chiaramete opzioni e argomenti sono facoltativi. Esempi:
• ls -> comando simile al DIR del vecchio DOS. Visualizza a video tutti i files e la directory presenti
nella directory corrente.
• Ls –l -> con l’argomento ‘l’ è possibile visualizzare anche i dettagli di ogni directory o file (esempio:
nome proprietario, diritti di accesso,…)
• history -> comando comodo per visualizzare lo storico di ogni comando inserito nel prompt
recentemente.
• pwd -> mostra la directory di lavoro corrente
• cat test.txt -> mostra il contenuto del file denominato test.txt
• cp sorgente destinazione -> il comando CP copia un file da una sorgente ad una destinazione.
13. La shell BASH di Linux è sicuramente una delle shell più utilizzate. La shell BASH ha delle impostazioni
standard generali per tutti gli utenti.
Chiaramente ogni utente può personalizzarla modificando opportuni file di configurazione.
I file di configurazione della shell BASH sono:
• Ect/profile
• Etc/bashrc
Altri comandi per poter leggere determinati file sono:
• Less -> visualizza a video il contenuto di un file
L’esempio seguente mostra l’utilizzo di tale comando:
14. Per uscire dalla schermata di visualizzazione premere il carattere ‘q’.
15. Il comando ‘rm’ che significa REMOVE permette di eliminare un file o una directory.
Es: rm test.sh -> elimina il file chiamato test.sh
Spesso può risultare utile inviare l’output di un comando non a video ma ad un altro
comando prima di essere effettivamente visualizzato. Questa cosa può essere fatta con il
comando more.
Tale comando accetta come input dei dati e li visualizza a video sotto forma di pagine
formattate. Per collegare l’output prodotto dal comando al comando more si utilizza
l’operatore di pipe ‘|’, come viene mostrato di seguito:
17. Le tre directory di base di un sistema Linux sono le seguenti tre directory di sistema:
• /bin
• /sbin
• /lib
La prima e la seconda directory contengono i programmi necessari al funzionamento del sistema,
Mentre la terza directory contiene tutte le librerie indispensabili a Linux. Mentre la directory /bin
contiene tutti i programmi, la directory /sbin contiene tutti i programmi che vengono eseguiti da root
(l’utente amministratore).
Esiste un’altra classificazione simile nella directory USR, come viene mostrato di seguito:
• /usr/bin
• /usr/sbin
• /usr/lib
In questo caso i programmi non sono quelli di sistema ma quelli utente.
19. La directory VAR contiene tutti quei file utilizzati dai vari programmi e che possono crescere
rapidamente. Per esempio in tale directory sono presenti i file di log di sistema (/var/log).
20. Siccome Linux è un sistema operativo multi utente, come root, è possibile aggiungere utente al sistema.
Per aggiungere un utente si utilizza il seguente comando (solo root può farlo):
Una volta inserita la password dell’utente root è possibile associare all’utente appena creato
(ho chiamato l’utente per comodità ‘test’) una password.
21. Una volta creato l’utente è possibile accedere con esso al sistema. Essendo Linux un sistema
multiutente, ad ogni risorsa (file, directory) sono associati determinati permessi. Pertanto alcuni file
hanno permessi di scrittura per alcuni utenti, per altri solo permessi di lettura, eccetera.
I permessi sono:
• R -> lettura
• W -> scrittura
• X -> esecuzione
Supponiamo di creare un file con l’utente appena creato. Creiamo poi un altro utente e cerchiamo di
Accedere in lettura al file appena creato.
22. Una volta creato l’utente è possibile accedere con esso al sistema. Essendo Linux un sistema
Multi utente, ad ogni utente è associata una directory nella directory HOME.
Creiamo, con l’utente di prova UTENTE1, un file di testo come mostrato in seguito:
23. Successivamente accediamo con l’UETNTE2 al sistema e cerchiamo di aprire il file appena creato
Con il precedente utente.
24. L’utente 2 non ha i permessi di scrittura sul file creato dall’utente 1. Per vedere i permessi associati al file
basta usare il seguente comando:
I permessi sono, in ordine da sinistra verso destra, i permessi associati al proprietario, i permessi associati
Agli utenti facenti parte del gruppo del proprietario, i permessi relativi agli altri utente. La sequenza di
10 caratteri inizia sempre con un segno ‘-’, seguito dai permessi veri e propri (read, write, executable).
25. Per impostare i permessi si usa il comando CHMOD:
In questo modo sono stati assegnati i permessi in scrittura agli altri utenti. La sintassi:
U = utente
G = utenti di gruppo
O = Other
Chmod (U/G/O) +/- permesso nome del file