Vai al contenuto
Home » IL Blog del mondo IRC e Linux » Introduzione all’uso della shell

Introduzione all’uso della shell

Forum IRCwebNET

Che cos’è una shell e come si usa

In questa introduzione all’uso della shell spieghero’ i concetti base su cosa sia e come funziona una shell.

Nota: se sai già conosci una shell e cerchi un aiuto sui comandi, puoi consultare la pagina Guida ai comandi base della shell in GNU/Linux.

Indice

Introduzione all’uso della shell  a cura di AkTaRuS.

Che cos’è una shell

 

In questo breve articolo non ci limiteremo a dare una definizione ( per quello c’è wikipedia), noi faremo un introduzione all’ uso della shell vera e prpria. , Con il termine shell si intende un programma che permette all’uomo di dialogare con un computer e attraverso la quale vengono impartiti i comandi (maggiori informazioni su Wikipedia).

Contestualmente ai sistemi UNIX, con shell si intende generalmente la shell testuale o riga di comando, attraverso la quale i comandi vengono impartiti come stringhe di testo immesse da tastiera.

L’utilizzo della shell è molto importante nei sistemi UNIX, in quando consente di comunicare con il sistema in modo efficace e veloce, consente di intervenire immediatamente sulla configurazione del sistema ed è uno strumento prezioso per individuare eventuali problemi.

Aprire una shell

All’avvio un sistema GNU/Linux avvia generalmente 7 terminali virtuali, 6 con una shell testuale e 1 con una shell grafica (che è quella più usata). Il passaggio da un terminale in modalità testo può essere effettuato attraverso la pressione contemporanea di:

CTRL+ALT+F1
.
.
CTRL+ALT+F6

per passare da un terminale ad un’altro, mentre per tornare al terminale grafico è sufficiente utilizzare la sequenza:

CTRL+ALT+F7

Per utilizzare la shell testuale (d’ora in poi chiamata semplicemente shell) è necessario passare ad uno dei terminali testuali, oppure utilizzare un emulatore di terminale con l’interfaccia grafica. Ogni ambiente desktop ha un emulatore di terminale, solitamente associato ad un’icona che rappresenta uno schermo nero:

Alcuni emulatori di terminale per interfaccia grafica sono:

 

Terminale XtermIntroduzione all'uso della shell

Introduzione all'uso della shell
Konsole terminale.

.

Avvio con l’emulatore di terminale

Per accedere alla shell utilizzando un emulatore di terminale è sufficiente avviare l’emulatore stesso, che poi avvierà la shell vera e propria al suo interno, con l’identità dell’utente con cui è stato fatto effettuato il login.

Avvio con terminale testuale

Utilizzando un terminale reale è necessario effettuare il login per essere identificati dal sistema. Ogni terminale, quindi, presenterà all’utente la riga:

login:

in cui viene chiesto il nome utente, seguito da <INVIO>. Bisogna poi immettere la password relativa all’utente:

password:

Durante la digitazione della password non viene mostrato assolutamente nulla, nemmeno degli asterischi, il tutto per garantire la massima riservatezza.

Ecco un esempio di accesso alla shell da terminale:

debian login: Aktarus
Password:
Last login: Fry Dic 11 20:53:39 2020 on tty2
Linux debian 2.6.17-2-k7 #1 SMP Wed Sep 13 17:18:46 UTC 2020 i686

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
You have new mail.
ramius@debian:~$

Per chiudere una shell si utilizza il comando exit.

Convenzioni e sintassi

 

Nota: le indicazioni qui riportate fanno riferimento alla shell bash, che è la più diffusa e dovrebbe essere presente in ogni distribuzione. Tuttavia esistono diverse shell utilizzabili sui sistemi GNU/Linux e che, benché siano sostanzialmente compatibili con bash, possono differire in qualche dettaglio.

Indipendentemente dal terminale sul quale fate girare la vostra shell, vi troverete di fronte una riga che termina con il segno del dollaro ($), ad indicare che siete stati identificati come utenti e la shell è pronta ad eseguire i vostri comandi. La presenza del simbolo del cancelletto (#) indica che si è effettuato il login come root (o Super User): in questo caso bisogna prestare molta attenzione ai comandi impartiti, perché si possono danneggiare il sistema e i dati contenuti.

Ad esempio, il comando su serve all’utente per diventare root, previa l’immissione della password di root:

ramius@debian:~$ su
Password:
debian:/home/Aktarus#

Alla prima riga l’utente Aktarus ha richiesto di diventare root, e il sistema ne ha domandato l’autenticazione (seconda riga), attraverso l’immissione della relativa password.

Alla  terza riga vediamo di nuovo il prompt, questa volta con il carattere #, ad indicare la nuova identità di super utente.

Nella configurazione considerata, il prompt ha la seguente forma:

<nome utente>@<nome macchina>:<directory corrente>$

Nell’esempio precedente, il simbolo ~ identifica la directory home dell’utente corrente, che corrisponde a /home/Aktarus. Quando l’utente diventa root, la directory corrente non cambia, tuttavia non è più la directory home dell’utente corrente (root), quindi bash propone il percorso esplicito.

Nota: l’esempio qui riportato non funziona su distribuzioni che hanno l’utente root disabilitato (ad esempio Ubuntu). In questi casi si guadagnano i diritti di Super User attraverso il comando sudo.

Immissione dei comandi

Quando si vuole riportare l’immissione di un comando (ad esempio nei messaggi del forum), è pratica comune includere il $ o il #, per indicare se il comando deve essere eseguito con i diritti di utente o di amministratore. Se ad esempio si volesse rappresentare l’utilizzo del comando su, si scrive:

$ su

La struttura dei comandi ricalca generalmente lo schema:

comando [argomenti] [oggetto del comando]

Le parentesi graffe indicano convenzionalmente degli oggetti facoltativi. Alcuni comandi,  ad esempio, possono essere lanciati senza argomenti ed oggetto, oppure possono ammettere più oggetti.  Supponiamo ad esempio di voler elencare il contenuto della propria directory home, attraverso il comando ls:

$ ls ~/

il simbolo ~ indica la propria home directory. In questo caso il comando ha l’oggetto, che dice a ls quale deve essere la directory della quale deve mostrare il contenuto (~/). Se però volessimo qualche ulteriore dettaglio sui files contenuti, possiamo passare a ls l’opzione -l:

$ ls -l ~/

Ora, l’elenco dei files mostra molti altri dettagli, come ad esempio la maschera dei permessi e la dimensione. Se vogliamo che ls utilizzi un formato più leggibile per le dimensioni dei files, aggiungiamo l’opzione -h:

$ ls -l -h ~/

oppure, utilizzando una forma contratta:

 $ ls -lh ~/

Se omettiamo l’oggetto, ls assumerà implicitamente che vorremo conoscere il contenuto della directory corrente; basta dare:

$ ls

oppure:

$ ls -lh

In ogni cartella del sistema (ad eccezione della / ) troveremo sempre due directory apparentemente strane:

ercoppa@gentoo ~/beryl-dir $ ls -a
.  ..  cartella_mia  mio_file

Come possiamo vedere dall’output del comando ls (che dovrà avere l’opzione -a) sono presenti le directory

. ..

Il singolo punto rappresenterà la directory attuale (in cui ci troviamo), invece la directory con due punti rappresentera la directory madre della directory in cui ci troviamo. Facciamo qualche esempio per chiarirci le idee

ercoppa@gentoo ~ $ cd Desktop/
ercoppa@gentoo ~/Desktop $ cd ..
ercoppa@gentoo ~ $ 

Le dovute attenzioni all’ Introduzione all’uso della shell non possono mancare.  Come è possibili notare, con il primo comando sono entrato nella directory Desktop, con il successivo comando invece sono ritornato alla directory madre di Desktop (ossia la home). Un’altra semplice convenzione in cui ci possiamo imbattere sono le directory nascoste, a differenza di altri sistemi operativi, in GNU/Linux una cartella è nascosta se il suo nome è preceduto da un punto (lo stesso discroso è valido anche per i singoli file), ad esempio:

ercoppa@gentoo ~ $ ls -a
.amsn .aMule

In questo caso .amsn e .aMule sono cartelle nascoste. E’ utile ricordarsi questa convenzione, in quanto tutte le configurazione dell’utente risiedono in cartelle nascoste sotto la propria home.

Informazioni sui comandi

Ora che avete preso dimestichezza con l’immissione di comandi da shell, vorrete probabilmente sapere quali sono i comandi più utili, e, soprattutto come si usano. Avere queste informazioni è facile: basta infatti usare… due comandi!

In particolare il comando

$ apropos argomento

cercherà fra tutti i comandi disponibili quelli che riguardano la parola chiave “argomento”, e ne presenterà una lista con una breve descrizione. Una volta che avrete trovato il comando da voi cercato, potete raccogliere le prime veloci informazioni su come funzioni usando:

$ comando --help

che vi restituirà un breve messaggio di aiuto relativo al comando “comando”. Se invece avete bisogno di ulteriori informazioni, potete ricorrere a “man”, una vera e propria raccolta di manuali per tutti (o quasi) i comandi presenti in linux. Basterà digitare:

$ man comando

o anche in alcuni casi

$ info comando

Ovviamente questa era solo una piccola introduzione all’uso della shell ed è logico che i piu’ esperti si aspettavano di piu’. Se volete consultare invece i manuali dei comandi e più comodamente sul web, potete andare su Man.openbsd Documentazione dove sono raccolti tutti i manuali e gli HowTo disponibili in lingua inglese per Linux.

 

5 commenti su “Introduzione all’uso della shell”

  1. Pingback: Servizi avanzati della shell Linux * IRCwebNET - Linux Inside

  2. Pingback: Accesso root su Ubuntu 22.04 * Come ottenere l'accesso SSH

  3. Pingback: Sessioni SSH dopo la disconnessione - Come mantenerle in esecuzione *

  4. Ehi, ho appena trovato il tuo sito, domanda veloce …

    Mi chiamo Eric, ho trovato ircwebnet.com dopo aver fatto una rapida ricerca: sei apparso in cima alle classifiche, quindi qualunque cosa tu stia facendo per il SEO, sembra che funzioni bene.

    Quindi ecco la mia domanda: Ti occupi di SEO? se si, potresti contattarmi? Grazie

  5. Pingback: Editare i files di testo con NANO * Guida Linux. * IRCwebNET

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *