## page was renamed from CommandlineHowto
##docs intrepid
#format wiki
#LANGUAGE it
<
>
<>
<>
= Introduzione =
'''Shell''', '''terminale''' e '''riga di comando''' sono termini che indicano in maniera equivalente un dispositivo a interfaccia testuale. Può servire a svolgere gran parte delle mansioni in un sistema operativo: muoversi attraverso il file system per creare, cancellare o rinominare file, scaricare, installare o rimuovere programmi, per configurare l'hardware, per creare script e molto altro.
Tante delle azioni sopra elencate, come noto alla maggior parte degli utenti, possono essere svolte tramite programmi a interfaccia grafica. La riga di comando può essere utile qualora sussistano dei malfunzionamenti di tali programmi e si vogliano tracciare eventuali bug, nel caso non esistano programmi a interfaccia grafica o semplicemente perché l'utente ritiene comodo usarla.
Gli esempi contenuti in questa guida sono volutamente banali, poiché la maggior parte delle seguenti operazioni possono essere svolte facilmente con pochi clic del mouse. Ciò non toglie che la conoscenza di alcuni concetti base può permettere anche agli utenti tecnicamente meno preparati di riuscire a svolgere le procedure più comuni.
<>
= Avviare il terminale =
== Terminale preinstallato ==
In questa modalità viene usato il terminale integrato nell'[[AmbienteGrafico|ambiente grafico]] usato, che verrà aperto all'interno di un [[https://it.wikipedia.org/wiki/Terminale_virtuale|emulatore di terminale]], cioè all'interno di un'apposita finestra alla pari di un qualsiasi altro programma (cioè senza uscire dalla sessione e dall'ambiente grafico).
Seguire le indicazioni adatte alla versione del sistema in uso:
* '''Ubuntu''': selezionare il '''[[AmbienteGrafico/Gnome/Glossario#menuapplicazioni|menu delle applicazioni]]''' e scrivere '''Terminale'''.
* '''Kubuntu''': selezionare '''''Menu K → Sistema → Konsole''''', in alternativa per avviare il '''Terminale''' direttamente nel '''[[AmbienteGrafico/FileManager |file manager]]''' '''''Dolphin''''' o nel browser '''''Konqueror''''' fare clic sul tasto '''F4'''.
* '''Xubuntu''': selezionare '''''Menu delle Applicazioni → Tutto → Emulatore di Terminale'''''.
* '''Ubuntu MATE''': selezionare '''''Applicazioni → Strumenti di sistema → Terminale di MATE'''''.
* '''Lubuntu'''
* '''20.04 e successive''': selezionare '''''Menu → Strumenti di sistema → QTerminal'''''.
* '''18.04 e precedenti''': selezionare '''''Menu → Strumenti di sistema → LXTerminal'''''.
* '''Ubuntu Budgie''':
* '''20.04 e successive''': selezionare '''''Menu → Utilità → Tilix'''''.
* '''18.04 e precedenti''': selezionare '''''Menu → Utilità → Terminix'''''.
* '''Ubuntu Unity''': selezionare '''[[AmbienteGrafico/Unity/Glossario#pulsante_home|Pulsante Ubuntu]]''' e scrivere '''Terminale'''.
== Terminale integrativo a scomparsa ==
Per chi ha necessità di avviare il terminale in maniera rapida o frequente, è possibile installare specifici terminali a scomparsa, diversi a seconda dell'[[AmbienteGrafico#Altri_ambienti_grafici|ambiente grafico]] utilizzato.
Solitamente per mostrare o nascondere il terminale bisogna fare clic sul tasto '''F12''', con possibilità di configurare allo scopo un altro tasto.
* '''Ubuntu''': [[AmministrazioneSistema/InstallareProgrammi|installare]] il pacchetto [[apt://guake |guake]].
* '''Kubuntu''': [[AmministrazioneSistema/InstallareProgrammi|installare]] il pacchetto [[apt://yakuake |yakuake]].
* '''Xubuntu''': [[AmministrazioneSistema/InstallareProgrammi|installare]] il pacchetto [[apt://yeahconsole |yeahconsole]].
* '''Ubuntu MATE''': [[AmministrazioneSistema/InstallareProgrammi|installare]] il pacchetto [[apt://tilda |tilda]].
* '''Lubuntu''':
* '''20.04 e successive''': selezionare '''''Menu → Strumenti di sistema → QTerminal a discesa'''''.
* '''18.04 e precedenti''': [[AmministrazioneSistema/InstallareProgrammi|installare]] il pacchetto [[apt://stjerm |stjerm]].
* '''Ubuntu Budgie''': [[AmministrazioneSistema/InstallareProgrammi|installare]] il pacchetto [[apt://guake |guake]].
{{{#!wiki tip
Sono disponibili nei [[Repository|repository]] ulteriori emulatori di terminale, sia per usi generici sia per usi specifici. Per cercarli e/o per visionarne le caratteristiche usare come termini ''terminal'' e/o ''shell'' nella funzione di [[AmministrazioneSistema/InstallareProgrammi/Apt#Altre_operazioni|ricerca di apt]] o in un [[AmministrazioneSistema/InstallareProgrammi#Tramite_interfaccia_grafica|gestore pacchetti grafico]].
}}}
== Modalità console ==
È inoltre possibile utilizzare la riga di comando terminando la sessione grafica, premendo la combinazione di tasti '''Ctrl+Alt+F2'''.
In questo modo verrà terminato il [[https://it.wikipedia.org/wiki/X_Window_System|server grafico]] e la relativa sessione, aprendo così una shell con riga di comando a schermo intero. Questa operazione può rivelarsi utile in casi di emergenza, come ad esempio malfunzionamenti improvvisi della sessione grafica.<
>Per ritornare alla sessione grafica digitare il comando `startx` o premere '''Ctrl+Alt+F7'''.
== Emulatore di terminale alternativo ==
Per impostare un emulatore di terminale diverso da quello preinstallato, aprire con un [[Ufficio/EditorDiTesto|editor di testo]] il file `~/.bashrc` e aggiungere la seguente variabile:{{{
export TERMINAL=emulatore_di_terminale
}}}
modificando «`emulatore_di_terminale`» con il nome dell'emulatore desiderato.
= Spostarsi fra le cartelle e primi comandi =
Con il terminale è possibile spostarsi attraverso le cartelle presenti sul sistema operativo. A tal proposito viene data nei seguenti paragrafi una breve spiegazione della struttura delle directory, in modo che anche ai meno esperti risultino chiare le informazioni mostrate sulla riga di comando.
Viene preso come esempio un utente che durante l'installazione abbia impostato:
* nome utente: '''mario'''
* nome del computer: '''mario-desktop'''.
== Il file system ==
<>
Il [[AmministrazioneSistema/Filesystem|file system]], inteso come la directory che contiene tutte le altre, è rappresentato dal simbolo '''/''' chiamato '''root''' (da non confondere con la cartella `/root` la '''Home''' dell'amministratore). Si può accedere alla radice del file system selezionando nel file manager [[AmbienteGrafico/FileManager#ubuntu|Nautilus]] le voci '''''Altre posizioni → Computer'''''.
== La directory /home/ ==
<>
È la directory che contiene tutte le '''Home''' degli utenti presenti nel sistema. Nel sistema in figura è presente solo la '''Home''' dell'utente '''mario''', ma aggiungendo utenti al sistema verranno create le relative cartelle '''Home'''.
== La cartella Home ==
A disposizione di ogni utente all'interno della cartella `/home`, ci sarà una cartella con il suo stesso nome, nel nostro esempio `mario`. Il suo percorso completo sarà `/home/mario`, che nel terminale può essere sinteticamente rappresentato dal simbolo '''~''' chiamato ''tilde'', ottenuto premendo i tasti '''Alt``Gr+ì''').<
>
Tale cartella, alla quale è possibile accedervi dalla '''[[AmbienteGrafico/Gnome/Glossario#dock|dock]]''' o dal '''[[AmbienteGrafico/Gnome/Glossario#menuapplicazioni|menu]]''', è nota anche come '''home utente'''. Essa riveste una grande importanza all'interno del sistema, dato che al suo interno sotto forma di file nascosti, sono memorizzati tutti i file di configurazione dei programmi.
{{{#!wiki tip
Per visualizzare i file nascosti, premere la combinazione di tasti '''Alt``Gr+H''' (scorciatoia da tastiera valida nella maggior parte dei [[AmbienteGrafico/FileManager|file manager]]).
}}}
Per esempio, nella sottocartella `~/.mozilla` vengono memorizzati i dati riguardanti il browser '''Firefox''': segnalibri, estensioni, impostazioni menu, ecc.
{{{#!wiki note
Per nascondere un file è sufficiente preporre un punto prima del nome. Ad es. per nascondere il file `script.sh` è sufficiente [[AmministrazioneSistema/ComandiBase#mv|rinominarlo]] in `.script.sh`.
}}}
<>
Nella directory `/home/mario` sono presenti alcuni file, alcuni memorizzati dall'utente stesso e altri già presenti dalla prima installazione come, ad esempio, la directory `Scrivania` che ovviamente andrà a contenere tutti i file, cartelle e icone di avvio presenti sulla scrivania.
== Digitare comandi nel terminale ==
[[#aprire|Aprendo un terminale]] l'utente '''mario''' otterrà un risultato simile al seguente:
<>
Il messaggio della figura mostra alcune informazioni.
* L'utente '''mario''', all'interno del computer '''mario-desktop''', si trova attualmente nella propria '''Home''', cioè `/home/mario/`, indicata con il simbolo '''~'''.
* È attiva la ''modalità utente'', indicata dal simbolo '''$'''. Esiste anche una '''modalità amministratore''', attivabile con il comando '''sudo -s''' e caratterizzata dal simbolo '''#'''. Per maggiori informazioni sui privilegi di amministrazione consultare la [[AmministrazioneSistema/PrivilegiDiAmministrazione/Sudo|relativa guida]].
Per avere la conferma di essere nella cartella `/home/mario/` è utile eseguire il comando [[AmministrazioneSistema/ComandiBase#pwd|pwd]], il quale stamperà a schermo il percorso corrente. Digitare il seguente comando:
{{{
pwd
}}}
Il risultato sarà simile al seguente:
<>
Se invece si digiterà il comando [[AmministrazioneSistema/ComandiBase#ls|ls]] si otterrà l'elenco dei file presenti nella cartella `/home/mario/`:
{{{
Documenti lettera.odt Pubblici Scrivania examples.desktop Modelli Scaricati Video Immagini Musica scheda.ods
}}}
L'utente può muoversi attraverso il file system con il terminale utilizzando il comando [[AmministrazioneSistema/ComandiBase#cd|cd]]. Se si desidera spostarsi nella cartella `/usr/share/doc` sarà utile digitare il comando '''cd /usr/share/doc''', come nel seguente esempio:
{{{
mario@mario-desktop:~$ cd /usr/share/doc
}}}
Il risultato sarà simile al seguente:
{{{
mario@mario-desktop:/usr/share/doc$
}}}
Dopo aver digitato il precedente comando, alla sinistra del simbolo '''$''', viene indicata la nuova posizione nella cartella `/usr/share/doc`.
= Esempi e suggerimenti =
== Tasti di selezione rapida ==
=== Autocompletamento ===
Per evitare di digitare ogni singola lettera si può utilizzare il tasto '''Tab''', posto solitamente sulla sinistra della tastiera accanto al tasto '''Q''' e raffigurante la doppia freccia orizzontale '''⇆'''.
Ad esempio, digitando `/h` e premendo il tasto '''Tab''', la stringa si autocompleterà in `/home/`. Aggiungendo la "`m`" e premendo nuovamente '''Tab''' si otterrà la stringa `/home/mario/` e così via fino a ottenere `/home/mario/Scrivania`.
Se nella cartella `/home/` sono presenti gli utenti '''mario''' e '''michele''', alla pressione del tasto '''Tab''' non accadrà niente poiché ci si trova di fronte a un'ambiguità. Premendo una seconda volta il tasto '''Tab''' verrà stampato l'elenco dei file e delle directory che iniziano per "`m`". Se successivamente si digita anche la lettera "`a`" l'ambiguità sarà risolta, dunque premendo nuovamente '''Tab''' la stringa `mario` verrà completata. Se oltre a ''mario'' e ''michele'' è presente anche ''maria'', l'autocompletamento si bloccherà correttamente a `/home/mari` e l'utente dovrà aggiungere l'ultima lettera.
{{{#!wiki note
Il terminale è [[http://it.wikipedia.org/wiki/Sensibile_alle_maiuscole|sensibile alle maiuscole]]. Le lettere minuscole sono diverse da quelle maiuscole quindi la digitazione dei comandi e dei percorsi deve necessariamente rispettare la corretta sintassi.
}}}
=== Posizione del cursore ===
Poiché non è possibile selezionare con il mouse una delle parole interne a un comando per modificarlo o cancellarlo, è necessario spostare il cursore con i tasti '''Freccia destra''' e '''Freccia sinistra''' per portarlo nella posizione desiderata.
Per velocizzare lo spostamento del cursore si possono usare alcune combinazioni con i tasti sopracitati e i tasti '''Fine''' e '''Home''' (tasto con la freccia obliqua diretta in alto a sinistra). Seguono alcuni esempi:
||'''Combinazione''' ||<:>'''Descrizione'''||
||<:>'''Ctrl + →''' || sposta il cursore di una parola a destra ||
||<:>'''Ctrl + ←''' || sposta il cursore di una parola a sinistra ||
||<:>'''↖''' || sposta il cursore all'inizio della stringa ||
||<:>'''Fine''' || sposta il cursore alla fine della stringa ||
=== Cancellare parole ===
Le seguenti combinazioni di tasti sono utili per cancellare velocemente le parole digitate:
||'''Combinazione''' ||<:>'''Descrizione'''||
||<:>'''Ctrl+W''' || cancella la parola a sinistra del cursore ||
||<:>'''Ctrl+U''' || cancella tutte le parole a sinistra del cursore ||
||<:>'''Ctrl+K''' || cancella tutte le parole a destra del cursore ||
=== Comandi in memoria ===
I comandi impartiti rimangono in memoria. Per poterli richiamare è sufficiente usare i tasti '''Freccia su''' (per lo scorrimento a ritroso) e '''Freccia giù''' (per lo scorrimento in avanti).
In molte circostanze questa funzione può essere comoda per non dover riscrivere un intero comando da capo o per modificarne solo una parte.
== Percorsi ==
Per [[AmministrazioneSistema/ComandiBase#gestionefiledirectory|agire sui file]] occorre indicare sempre i percorsi completi oppure spostarsi all'interno della cartella in cui si trova il file interessato. Supponiamo di voler rimuovere attraverso il comando [[AmministrazioneSistema/ComandiBase#rm|rm]] il file `canzone.ogg`, memorizzato in `/home/mario/Scrivania`. A tale scopo è possibile digitare il seguente comando, nel quale viene specificato il percorso completo del file:
{{{
rm /home/mario/Scrivania/canzone.ogg
}}}
In alternativa è possibile spostarsi nella cartella `Scrivania` per poi procedere alla rimozione del file con i seguenti comandi:
{{{
cd /home/mario/Scrivania
}}}{{{
rm canzone.ogg
}}}
Alcuni comandi non necessitano della digitazione di alcun percorso. Ad esempio, per [[AmministrazioneSistema/InstallareProgrammi|installare]] un pacchetto con [[AmministrazioneSistema/InstallareProgrammi/Apt|apt-get]] è sufficiente specificarne solo il nome. La sintassi del comando sarà dunque simile alla seguente:
{{{
sudo apt-get install nome_pacchetto
}}}
== Spazi ==
Affinchè i comandi vengano correttamente eseguiti è necessario rispettare gli spazi durante la digitazione. Nel'esempio precedente relativo alla cancellazione di un file è stata rispettata la seguente forma:
{{{
comando [spazio] percorso_file
}}}
Più parole verranno incluse nel comando e maggiore sarà l'attenzione necessaria. Ad esempio, supponendo di voler creare una copia del file `/home/mario/Scrivania/canzone.ogg` in `/home/mario/Scrivania/archivio_musica/`, assegnando a tale copia il nome `song.ogg`, sarà utile digitare il seguente comando:
{{{
cp /home/mario/Scrivania/canzone.ogg /home/mario/Scrivania/archivio_musica/song.ogg
}}}
Dall'esempio precedente si può notare come sia stata rispettata la seguente forma:
{{{
comando [spazio] percorso_file [spazio] percorso_file_copiato_con_nuovo_nome
}}}
== Assegnare nomi a file e cartelle ==
La riga di comando può avere problemi a riconoscere nomi di cartelle contenenti simboli di spaziatura. Ad esempio, il seguente comando non viene riconosciuto dal terminale:
{{{
cd /home/mario/cartella miei documenti
}}}
Il precedente comando verrebbe riconosciuto se digitato con questa formattazione, facilmente ottenibile con l'uso del tasto '''Tab''':
{{{
cd /home/mario/cartella\ miei\ documenti/
}}}
In alternativa, è possibile inserire l'apostrofo all'inizio e alla fine del percorso, come nel seguente comando:
{{{
cd '/home/mario/cartella miei documenti'
}}}
{{{#!wiki tip
È consigliabile non inserire spazi all'interno dei nomi di file e cartelle, sostituendoli preferibilmente con il simbolo '''_''' detto ''underscore''.
}}}
Il carattere punto '''`.`''' viene usato per contraddistinguere un tipo di file, limitandone l'uso si riduce il rischio di incorrere in ambiguità. Inoltre, come visto in precedenza, può essere utilizzato anteponendolo al nome di un file che si desidera nascondere.
== Immissione della password ==
La password viene richiesta quando si desidera eseguire un'azione con i [[AmministrazioneSistema/PrivilegiDiAmministrazione/Sudo|privilegi di amministrazione]]. In questo modo si ha la possibilità di accedere a cartelle non accessibili all'utente normale e modificare eventuali file di sistema.
Ad esempio, se si desidera modificare con l'editor di testo [[Ufficio/EditorDiTesto/Nano|nano]] il file `/etc/fstab` è utile digitare il seguente comando:
{{{
sudo nano /etc/fstab
}}}
Dopo la pressione del tasto '''Invio''' verrà richiesta la password:
{{{
Password:
}}}
Per motivi legati alla sicurezza durante la digitazione della password non apparirà alcun carattere nel relativo campo.
== Stampa degli errori ==
Se i comandi digitati non contengono errori non verrà stampato alcun messaggio.<
>
Ad esempio, se si desidera creare una cartella `musica` all'interno di `/home/mario/Scrivania/` è utile digitare il seguente comando:
{{{
mario@mario-desktop:~$ mkdir /home/mario/Scrivania/musica
}}}
Una volta premuto '''Invio''' verrà creata la cartella desiderata e la riga di comando apparirà come nel seguente esempio:
{{{
mario@mario-desktop:~$
}}}
Andando a controllare sulla '''Scrivania''', l'utente '''mario''' troverà la sua nuova cartella.<
>
Il terminale non stampa la conferma dell'esecuzione dei comandi digitati, bensì solo messaggi di errore nel caso in cui in tali comandi siano presenti degli errori.
= Ulteriori risorse =
* [[https://wiki.debian.org/it/Console|Console]] (Debian Wiki)
* [[https://it.wikipedia.org/wiki/Shell_(informatica)|Shell]] (voce enciclopedica)
* [[https://it.wikipedia.org/wiki/Shell_Unix|Unix Shell]] (voce enciclopedica)
* [[AmministrazioneSistema/ComandiBase|Guida ai comandi fondamentali]]
* [[AmministrazioneSistema/Sudo|Guida ai privilegi di amministrazione]]
* [[AmministrazioneSistema/PermessiFile|Guida ai permessi dei file]]
* [[AmministrazioneSistema/InstallareProgrammi|Guida all'installazione dei programmi]]
----
CategoryAmministrazione