Appunti di Programmazione

Linux: la Shell

La Shell, conosciuta anche come Terminale, Console o "riga di comando" altro non è che una finestra testuale in cui inserire i comandi per l'avvio delle applicazioni e le istruzioni per la gestione del sistema operativo.

Linux è nato per gestire la multi-utenza e le reti, pertanto c'è da distinguere fra la figura dell'Utente, che ha un accesso LIMITATO alle risorse del sistema, e l'Amministratore che è colui il quale può fare TUTTO.

L'AMMINISTRATORE, detto anche Utente Root o semplicemente Root, è la figura più importante del sistema, in quanto ha accesso ad ogni comando e ad ogni area del file-system, è colui che può fornire accessi e permessi agli utenti, aggiungere o eliminare account, manipolare QUALUNQUE file e installare/rimuovere qualunque cosa.

L'UTENTE, al contrario, è colui che può usare SOLO una piccola parte del sistema e ha accesso solo ad alcuni comandi il cui utilizzo gli è concesso dall'Amministratore.
Solitamente OGNI utente ha una sua zona riservata del file-system in cui inserire, conservare e gestire i suoi documenti. Solo lui e l'Amministratore hanno accesso totale a questa zona.

In una normale finestra di terminale generalmente il prompt ha il seguente significato:

ID_Utente@ Nome_Macchina: Directory Privilegi

è composto da 4 parti:

  1. ID_Utente: indica il nome utente, quello con cui avviene l'autenticazione per accedere al terminale, per esempio "rossi".
  2. Nome_Macchina: il nome del computer che stiamo usando, per esempio "linux"
  3. Directory: dopo i due punti è presente l'indirizzo assoluto della directory in cui ci troviamo, per esempio "/etc/apt".
  4. Privilegi: è rappresentato da un simbolo che può essere “$” o “#”.
    • Il simbolo dollaro "$" indica che l'utente ha i privilegi di un comune account di utilizzatore.
    • Il simbolo cancelletto "#" indica che l'utente è l'Amministratore.

Esempi:

rossi@linux: /home/rossi/Documenti$
gandalfrank@host:/bin$
root@linux:/etc/apt#

Esistono vari modi per avviare una Shell.

  1. Programma Terminale
  2. Programma Terminale Root
  3. I terminali TTY1, TTY2, TTY3, TTY4, TTY5, TTY6

Terminale

Il programma Terminale (Menù>Accessori>Terminale) avvia una normale finestra che dà accesso a tutti i comandi eseguibili in Linux. Di norma, tale applicazione si avvia con i privilegi dell'utente con il quale abbiamo eseguito l'accesso al sistema.
Resta comunque la possibilità di cambiarlo o di autenticarsi come Root. Per fare ciò esistono due comandi:

$ su [ID Utente]
Password:

"su" [Switch User] permette di cambiare utente autenticandosi con altre credenziali. È sufficiente inserire l'ID dell'altro utente seguito dalla password per usufruire dei privilegi riservati ad esso. Usare "su" senza ID consente di effettuare il login come Amministratore. L'aggiunta dell'opzione -s permette di scegliere la shell che desideriamo:

$ su -s sh
Password:

In questo caso passiamo il testimone all'Amministratore usando la Bourne Shell "sh".
Per tornare all'utente originario basta uscire:

# exit

L'altro comando per impartire istruzioni come Amministratore è "sudo" [Super User DO]:

rossi@linux:~$ sudo [comando]
[sudo] password for rossi:

sudo va usato in combinazione con il comando che richiede i privilegi di Root.
A differenza di su, in sudo è necessario inserire la propria password per godere per un tempo limitato, dei vantaggi offerti dall'essere Amministratore. Trascorso il tempo impostato si ritorna ad avere i privilegi limitati di utente normale.

Terminale Root

Il programma Terminale Root (Menù>Accessori>Terminale Root), ci proietta in una shell con tutti i vantaggi dell'utente Root. Ovviamente vi si accede inserendo la password di Amministratore.

Terminale TTY

I 6 terminali TTY1...TTY6 (TTY=sigla usata per indicare le telescriventi) si avviano usando la combinazione di tasti CTRL+Alt+F1....F6 e per usarle è obbligatorio autenticarsi fornendo ID utente e password. Per uscire da queste finestre va usata la combinazione di tasti CTRL+Alt+F7. È consentito aprirle quante ne vogliamo, anche tutte se necessario. Per passare dall'una all'altra è sufficiente premere la combinazione di pulsanti usata per avviarle.