Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "RigaDiComando"
Differenze tra le versioni 61 e 77 (in 16 versioni)
Versione 61 del 19/10/2007 14.43.42
Dimensione: 16282
Commento: spazi, da terminare
Versione 77 del 14/03/2011 12.54.44
Dimensione: 48
Autore: localhost
Commento: converted to 1.6 markup
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 1: Linea 1:
## page was renamed from CommandlineHowto
#format wiki
#LANGUAGE it
[[BR]]
||<tablebgcolor="#f1f1ed" tablewidth="35%" tablestyle="margin: 0pt 0pt 1em 1em; float: right; font-size: 0.9em;"style="padding: 0.5em;">'''Indice'''[[BR]][[TableOfContents()]] ||

= 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 molte altre cose.

Tante delle azioni sopra elencate, come noto alla maggior parte degli utenti, possono essere svolte tramite programmi a interfaccia grafica. La shell può essere utile qualora sussistano dei malfunzionamenti di tali programmi e si vogliano tracciare eventuali [:Bug:bug], nel caso non esistano programmi a interfaccia grafica o semplicemente perché l'utente ritiene comodo usarla.

La guida introduce gli utenti alle prime armi alla linea di comando e ad alcuni aspetti del file system. Per approfondire l'uso dei singoli comandi si consulti la [:ComandiBase:relativa guida].

= Come funziona il terminale =

[[Anchor(aprire)]]
== Aprire una finestra di terminale ==

Seguire le indicazioni adatte alla versione del sistema in uso:

 * '''Ubuntu''':
  * fare clic su '''''Applicazioni -> Accessori -> Terminale''''';

 * '''Kubuntu''':
  * fare clic su '''''Menu K -> Sistema -> Konsole''''';

 * '''Xubuntu''':
  * fare clic su '''''Applications -> Accessories -> Terminale'''''.

== Home utente e file system ==

=== Il contenuto della cartella Home ===

Per capire come funziona la riga di comando si prenda come modello un utente che durante l'installazione, fra le varie cose, abbia impostato come nome utente '''mario''' e come nome del computer '''mario-desktop'''.

A disposizione di tale utente, all'interno della cartella `/home`, ci sarà una cartella con il suo stesso nome, cioè `mario`, il cui percorso completo sarà `/home/mario`, alla quale potrà accedervi dal menu '''''Risorse -> Cartella Home'''''. Tale cartella, nota anche come '''home utente''', riveste una grande importanza all'interno del sistema, dato che al suo interno, sotto forma di file nascosti, sono memorizzate tutti file di configurazione dei programmi.

||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%>[[Immagine(Icone/Grandi/info.png,,center)]] ||<style="padding:0.5em; border:none;">Per visualizzare file nascosti, fare clic su '''''Visualizza -> Mostra file nascosti'''''. ||

Per esempio, nella sottocartella `~/.mozilla` vengono memorizzati i dati riguardanti il browser '''Firefox''': segnalibri, estensioni, impostazioni menu, etc; nel caso sia installato il programma di posta '''Thunderbird''', in `~/.mozilla-thunderbird` saranno archiviate le email, gli indirizzi di posta etc.

||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''Per nascondere un file è sufficiente preporre un punto prima del suo nome. Ad esempio, per nascondere il file'' `script.sh` ''è sufficiente [:ComandiBase#mv:rinominarlo] in'' `.script.sh`. ||

=== Il file system ===

attachment:file_system70.png

Si può accedere alla radice del file system scegliendo '''''Risorse -> Computer''''', facendo clic sull'icona «'''File system'''» oppure selezionando «'''File system'''» dalla barra laterale sinistra. Il 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. Se si desiderano maggiori informazioni sulle partizioni consultare la [:Hardware/DispositiviPartizioni/PartizioniUbuntu:relativa guida].

=== La directory /home/ ===

attachment:home70.png

È 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 ===

attachment:home_utente70.png

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 `Desktop` che ovviamente andrà a contenere tutti i file, cartelle e icone di avvio presenti sulla scrivania.
  
== Digitare i comandi nel terminale ==

La cartella '''Home''' viene generalmente indicata con il simbolo «~», chiamato ''tilde''. Per ottenerlo, occorre premere i tasti '''Alt``Gr+ì'''.

[#aprire Aprendo un terminale] l'utente '''mario''' otterrà un risultato simile al seguente:

attachment:shell.png

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 «~»;
 * è attiva la ''modalità utente'', indicata dal simbolo «$». Esiste anche una ''modalità amministratore'', attivabile con il comando '''sudo su''', caratterizzata dal simbolo «#». Per maggiori informazioni sui privilegi di amministrazione consultare la [:Sudo:relativa guida].

Per avere la conferma di essere nella cartella `/home/mario/` è utile eseguire il comando [:ComandiBase#pwd:pwd], il quale stamperà a schermo il percorso corrente. Digitare il seguente comando:
{{{
pwd
}}}

Il risultato sarà simile al seguente:

attachment:shell_pwd.png

Se invece si digiterà il comando [:ComandiBase#ls:ls] si otterrà l'elenco dei file presenti nella cartella `/home/mario/`:
{{{
Desktop documenti Examples foto lettera.odt scheda.ods
}}}

L'utente può muoversi attraverso il file system con il terminale utilizzando il comando [: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ò usare il tasto «'''Tab'''» (posto solitamente sulla sinistra della tastiera, accanto al tasto «'''Q'''»).

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 ad ottenere «/home/mario/Desktop».

Se nella cartella `/home/` sono presenti degli utenti '''mario''' e '''michele''', alla pressione del tasto «'''Tab'''» non accadrà niente poichè ci si trova di fronte ad 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.

||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''Poichè il terminale è [http://it.wikipedia.org/wiki/Sensibile_alle_maiuscole sensibile alle maiuscole], le lettere minuscole sono diverse da quelle maiuscole. 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 ad 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 diretta in alto a sinistra). Quelli che seguono sono degli esempi:

 * '''Ctrl+Freccia destra''': sposta il cursore di una parola a destra;
 * '''Ctrl+Freccia sinistra''': sposta il cursore di una parola a sinistra;
 * '''Home''': 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:

 * '''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 [: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 [ComandiBase#rm:rm], il file `canzone.ogg`, memorizzato in `/home/mario/Desktop`. A tale scopo è possibile digitare il seguente comando, nel quale viene specificato il percorso completo del file:
{{{
rm /home/mario/Desktop/canzone.ogg
}}}

In alternativa è possibile spostarsi nella cartella `Desktop` per poi procedere alla rimozione del file con i seguenti comandi:
{{{
cd /home/mario/Desktop
rm canzone.ogg
}}}

Alcuni comandi non necessitano della digitazione di alcun percorso. Ad esempio, per [:InstallareProgrammi:installare] un pacchetto con [:Apt:apt-get] è sufficiente specificarne solo il nome; la sintassi del comando sarà dunque simile alla seguente:
{{{
sudo apt-get 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/Desktop/canzone.ogg` in `/home/mario/Desktop/archivio_musica/`, assegnando a tale copia il nome `song.ogg`, sarà utile digitare il seguente comando:
{{{
cp /home/mario/Desktop/canzone.ogg /home/mario/Desktop/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 ==

||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%>[[Immagine(Icone/Grandi/info.png,,center)]] ||<style="padding:0.5em; border:none;">È consigliato non inserire spazi all'interno dei nomi di file e cartelle. È suggerito sostituire il carattere di spaziatura con quello di ''underscore'' «'''_'''». ||

Il terminale può avere problemi a riconoscere una directory con un nome {{{cartella miei documenti}}}. Il comando:
{{{
cd /home/mario/cartella miei documenti
}}}
non viene riconosciuto. Verrebbe riconosciuto se riformulato con questa formattazione:
{{{
cd /home/mario/cartella\ miei\ documenti/
}}}
ottenibile usando il tasto '''Tab'''.
Oppure mettendo l'apostrofo all'inizio e alla fine del percorso:
{{{
cd '/home/mario/cartella miei documenti'
}}}
Quindi conviene dare dei nomi del tipo {{{cartella_miei_documenti}}} o
{{{cartella-miei-documenti}}}.

'''È bene usare con parsimonia il punto «.»'''

Essendo usato per contraddistinguere un formato tipo {{{foto.jpg}}}, {{{canzone.ogg}}}, ecc., evitando di usarlo si possono evitare possibili equivoci. Il punto anteposto al nome, come già visto, viene usato per indicare un file nascosto (per esempio {{{.file_nascosto}}}).

== Immissione della password ==

La password viene richiesta quando dobbiamo agire con i privilegi dell'amministratore. In questo modo si ha la possibilità di accedere a directory non accessibili al singolo utente e modificare eventuali file di sistema.

Supponiamo di voler modificare con l'editor di testo '''[:Nano:nano]''' il file `sources.list` appartenente alla directory `apt` (percorso: `/etc/apt/sources.list`). Per farlo occorre usare il comando '''[:Sudo:sudo]''' che viene sempre anteposto a tutti gli altri comandi: {{{
sudo nano /etc/apt/sources.list
}}} dopo l'invio verrà richiesta la password: {{{
Password:
}}}

Quando verrà immessa la password, per motivi di sicurezza, non appariranno i caratteristici asterischi (****), bensì il campo rimarrà vuoto. Non preoccupatevi, digitate la password e date l'invio.

Per alcuni minuti la password rimane attiva, quindi se bisogna riusare '''sudo''', non ci sarà bisogno di ridigitarla. Se vogliamo interrompere il suo effetto, basterà digitare: {{{
sudo -k
}}}

== Errori ==

In caso di errori la shell ci avvertirà con dei messaggi. Al contrario, quando il comando è andato a buon fine, non avremo nessuna segnalazione.

Torniamo all'utente '''mario''' che vuole creare la cartella {{{musica}}} sul ''Desktop'' con il comando «'''mkdir'''»: {{{
mario@mario-desktop:~$ mkdir /home/mario/Desktop/musica
}}} dopo aver dato '''Invio''' otterrà: {{{
mario@mario-desktop:~$
}}}

A volte questo può spiazzare un utente alle prime armi che magari si aspetterebbe un segnale di conferma dell'avvenuta creazione della directory {{{musica}}}. Andando a controllare sul ''Desktop'', '''mario''' troverà la sua nuova cartella.

= Considerazioni finali =

Gli esempi mostrati sono volutamente banali. Nella maggior parte dei casi le operazioni citate possono essere svolte con pochi clic del mouse. Lo scopo era quello di prendere confidenza con la shell, partendo da nozioni già conosciute quali: la copia/rimozione di un file, la creazione di una directory, ecc.

Come avrete notato, la linea di comando è molto sfruttata all'interno delle guide. Questo, per il semplice motivo che in questo modo, oltre ad ottenere una guida molto sintetica, c'è il vantaggio di avere comandi che possono rimanere immutati nel tempo. Al contrario, descrivere passaggi in modalità grafica genera guide più lunghe e si crea il rischio di avere una guida presto obsoleta, dal momento che un'interfaccia grafica è soggetta a cambiamenti all'uscita di nuove versioni.

La conoscenza di alcuni concetti base può permettere anche agli utenti tecnicamente meno preparati di riuscire a destreggiarsi nel mondo dei comandi. Non occorre conoscere a memoria tutti i dettagli (se ciò avviene tanto meglio), bastano poche nozioni per porsi davanti a un'eventuale guida comprendendo dove si andrà a parare senza abbandonarsi al mero copia/incolla.

= Ulteriori risorse =

 * [http://help.ubuntu-it.org/6.06/ubuntu/desktopguide/it/linux-basics.html Una presentazione di un sistema GNU/Linux nei suoi aspetti principali]
 * [:ComandiBase:Guida ai comandi fondamentali]
 * [:Sudo:Guida ai comandi per ottenere il privilegio dell'amministratore di sistema]
 * [:PermessiFile:Guida agli strumenti di modifica dei permessi sui file]
 * [:Apt:Guida all'installazione di programmi tramite apt-get]
 * [:InstallareProgrammi/DaSorgenti:Guida alla compilazione del codice sorgente]
 * [:Programmazione/Checkinstall:Guida alternativa all'installazione da sorgenti]
----
CategoryDaRevisionare CategoryAmministrazione
#redirect AmministrazioneSistema/RigaDiComando