Guida ai comandi da terminale: differenze tra le versioni

nessun oggetto della modifica
Nessun oggetto della modifica
Riga 3: Riga 3:
Quale utente Linux non ha mai avuto bisogno di una raccolta di comandi base per gestire il suo sistema operativo al migliore dei modi da terminale?<br>
Quale utente Linux non ha mai avuto bisogno di una raccolta di comandi base per gestire il suo sistema operativo al migliore dei modi da terminale?<br>
Questa pagina nasce in loro supporto. Qui proverò a creare una raccolta dei comandi base più utili, in modo da venire in aiuto di coloro che ne cercano uno per compiere la rispettiva operazione.<br>
Questa pagina nasce in loro supporto. Qui proverò a creare una raccolta dei comandi base più utili, in modo da venire in aiuto di coloro che ne cercano uno per compiere la rispettiva operazione.<br>
{{ Warningbox | Nella guida viene talvolta usata l'opzione <tt>-r</tt> abbinata ad alcuni comandi. E' utile rimarcare e tenere a mente che la ricorsività del comando derivante dall'utilizzo di questa opzione può avere effetti distruttivi sul sistema e che va quindi usata con cognizione di causa.}}
{{ Warningbox | Nella guida viene talvolta usata l'opzione <code>-r</code> abbinata ad alcuni comandi. E' utile rimarcare e tenere a mente che la ricorsività del comando derivante dall'utilizzo di questa opzione può avere effetti distruttivi sul sistema e che va quindi usata con cognizione di causa.}}


=Gestione di repository e pacchetti=
=Gestione di repository e pacchetti=
Riga 10: Riga 10:


==Modifica della lista dei repository==
==Modifica della lista dei repository==
La lista dei repository configurati per il vostro sistema si trova nel file <tt>/etc/apt/sources.list</tt>. Per modificarla basta aprire il file con un qualsiasi editor di testo. Quindi, se vogliamo aprirlo con Gedit (editor di testo visuale; occorre avere un ambiente grafico installato) digiteremo:
La lista dei repository configurati per il vostro sistema si trova nel file <code>/etc/apt/sources.list</code>. Per modificarla basta aprire il file con un qualsiasi editor di testo. Quindi, se vogliamo aprirlo con Gedit (editor di testo visuale; occorre avere un ambiente grafico installato) digiteremo:
<pre>
<pre>
gedit /etc/apt/sources.list
gedit /etc/apt/sources.list
Riga 22: Riga 22:
vim /etc/apt/sources.list
vim /etc/apt/sources.list
</pre>
</pre>
E così via. Vi ricordo che questo file ha i permessi di scrittura riservati all’amministratore (root) o ad un sudoer. Se avete impostato al vostro utente i permessi di sudoer, o siete su Ubuntu, vi basterà aggiungere sudo prima di ogni comando (<tt>sudo gedit</tt> invece di <tt>gedit</tt>, ad esempio) per avere i permessi di scrittura e poter salvare il file. Se siete root, potete copiare ed incollare i comandi citati sopra sul terminale senza modificarli nella sintassi.
E così via. Vi ricordo che questo file ha i permessi di scrittura riservati all’amministratore (root) o ad un sudoer. Se avete impostato al vostro utente i permessi di sudoer, o siete su Ubuntu, vi basterà aggiungere sudo prima di ogni comando (<code>sudo gedit</code> invece di <code>gedit</code>, ad esempio) per avere i permessi di scrittura e poter salvare il file. Se siete root, potete copiare ed incollare i comandi citati sopra sul terminale senza modificarli nella sintassi.


==Aggiornamento del sistema operativo==
==Aggiornamento del sistema operativo==
Riga 110: Riga 110:
Per poter eseguire il comando di reinstallazione descritto avrete bisogno di permessi di sudoer o di root.
Per poter eseguire il comando di reinstallazione descritto avrete bisogno di permessi di sudoer o di root.
==Rimozione di un pacchetto non disinstallato completamente==
==Rimozione di un pacchetto non disinstallato completamente==
Per rimuovere completamente i pacchetti già disinstallati che, per qualche motivo, non riuscite a eliminare con <tt>apt</tt>, digitare:
Per rimuovere completamente i pacchetti già disinstallati che, per qualche motivo, non riuscite a eliminare con <code>apt</code>, digitare:
<pre>
<pre>
dpkg -P programma
dpkg -P programma
Riga 154: Riga 154:
</pre>
</pre>
==Installazione di un file .bin==
==Installazione di un file .bin==
Se abbiamo scaricato un installer in .bin, per avviare la sua installazione da terminale non si deve fare altro che dirigersi nella directory in cui il .bin è stato salvato e lanciarlo scrivendo il nome del file. L’unico problema può nascere quando l’installer non da nativamente i permessi di esecuzione all’utente normale, la cosa si risolve con il comando <tt>chmod</tt>.<br>
Se abbiamo scaricato un installer in .bin, per avviare la sua installazione da terminale non si deve fare altro che dirigersi nella directory in cui il .bin è stato salvato e lanciarlo scrivendo il nome del file. L’unico problema può nascere quando l’installer non da nativamente i permessi di esecuzione all’utente normale, la cosa si risolve con il comando <code>chmod</code>.<br>
Se, per esempio, abbiamo scaricato il programma mio_programma.bin dobbiamo compiere le seguenti operazioni.<br>
Se, per esempio, abbiamo scaricato il programma mio_programma.bin dobbiamo compiere le seguenti operazioni.<br>
L'installer avrà bisogno prima di tutto di una rettifica sui permessi. Entriamo nella cartella in cui si trova il file e lanciamo questi comandi:
L'installer avrà bisogno prima di tutto di una rettifica sui permessi. Entriamo nella cartella in cui si trova il file e lanciamo questi comandi:
Riga 166: Riga 166:


==Installazione di un file .rpm==
==Installazione di un file .rpm==
Se abbiamo scaricato un installer con estensione .rpm (RedHat Package Manager, sistema di gestione dei pacchetti originario di Red Hat Linux), per installarlo dalla nostra distro dovremo per forza convertirlo in .deb . Il programma che ci consente di farlo è <tt>alien</tt>. Quindi installiamolo digitando:
Se abbiamo scaricato un installer con estensione .rpm (RedHat Package Manager, sistema di gestione dei pacchetti originario di Red Hat Linux), per installarlo dalla nostra distro dovremo per forza convertirlo in .deb . Il programma che ci consente di farlo è <code>alien</code>. Quindi installiamolo digitando:
<pre>
<pre>
apt-get install alien
apt-get install alien
Riga 180: Riga 180:
dpkg -i nomefile.deb
dpkg -i nomefile.deb
</pre>
</pre>
Per disinstallarlo possiamo normalmente seguire una delle strade per la disinstallazione viste in precedenza, utilizzando <tt>apt</tt>.
Per disinstallarlo possiamo normalmente seguire una delle strade per la disinstallazione viste in precedenza, utilizzando <code>apt</code>.
==Scompattare un file .tar==
==Scompattare un file .tar==
Se abbiamo un archivio in formato compresso .tar, per decomprimerlo dovremo usare lo strumento <tt>tar</tt>. Se non lo abbiamo, digitiamo da terminale:
Se abbiamo un archivio in formato compresso .tar, per decomprimerlo dovremo usare lo strumento <code>tar</code>. Se non lo abbiamo, digitiamo da terminale:
<pre>
<pre>
apt-get install tar
apt-get install tar
Riga 191: Riga 191:
</pre>
</pre>
dove
dove
* <tt>tar</tt> è il nome del programma decompressore
* <code>tar</code> è il nome del programma decompressore
* <tt>x</tt> significa “estrazione”
* <code>x</code> significa “estrazione”
* <tt>v</tt> sta per "verbose", e serve per ottenere informazioni dettagliate durante il processo di estrazione
* <code>v</code> sta per "verbose", e serve per ottenere informazioni dettagliate durante il processo di estrazione
* <tt>f</tt> infine salva i file nella stessa posizione dell’archivio.
* <code>f</code> infine salva i file nella stessa posizione dell’archivio.
Lanciando il comando
Lanciando il comando
<pre>
<pre>
Riga 203: Riga 203:


==Scompattare un file .tar.bz2==
==Scompattare un file .tar.bz2==
Se abbiamo un archivio in formato compresso .tar.bz2, per decomprimerlo dovremo usare lo strumento <tt>tar</tt>. Se non lo abbiamo, digitiamo da terminale:
Se abbiamo un archivio in formato compresso .tar.bz2, per decomprimerlo dovremo usare lo strumento <code>tar</code>. Se non lo abbiamo, digitiamo da terminale:
<pre>
<pre>
apt-get install tar
apt-get install tar
Riga 212: Riga 212:
</pre>
</pre>
dove
dove
* <tt>tar</tt> è il nome del programma decompressore
* <code>tar</code> è il nome del programma decompressore
* <tt>j</tt> indica che il file da decomprimere è in formato compresso .bz2
* <code>j</code> indica che il file da decomprimere è in formato compresso .bz2
* <tt>x</tt> significa “estrazione”
* <code>x</code> significa “estrazione”
* <tt>v</tt> sta per "verbose", e serve per ottenere informazioni dettagliate durante il processo di estrazione
* <code>v</code> sta per "verbose", e serve per ottenere informazioni dettagliate durante il processo di estrazione
* <tt>f</tt> infine salva i file nella stessa posizione dell’archivio.
* <code>f</code> infine salva i file nella stessa posizione dell’archivio.
Lanciando il comando
Lanciando il comando
<pre>
<pre>
Riga 225: Riga 225:


==Scompattare un file .tar.gz==
==Scompattare un file .tar.gz==
Se abbiamo un archivio in formato compresso .tar.gz, per decomprimerlo dovremo usare lo strumento <tt>tar</tt>. Se non lo abbiamo, digitiamo da terminale:
Se abbiamo un archivio in formato compresso .tar.gz, per decomprimerlo dovremo usare lo strumento <code>tar</code>. Se non lo abbiamo, digitiamo da terminale:
<pre>
<pre>
apt-get install tar
apt-get install tar
Riga 234: Riga 234:
</pre>
</pre>
dove
dove
* <tt>tar</tt> è il nome del programma decompressore
* <code>tar</code> è il nome del programma decompressore
* <tt>z</tt> indica che il file da decomprimere è in formato compresso .gz
* <code>z</code> indica che il file da decomprimere è in formato compresso .gz
* <tt>x</tt> significa “estrazione”
* <code>x</code> significa “estrazione”
* <tt>v</tt> sta per "verbose", e serve per ottenere informazioni dettagliate durante il processo di estrazione
* <code>v</code> sta per "verbose", e serve per ottenere informazioni dettagliate durante il processo di estrazione
* <tt>f</tt> infine salva i file nella stessa posizione dell’archivio.
* <code>f</code> infine salva i file nella stessa posizione dell’archivio.
Lanciando il comando
Lanciando il comando
<pre>
<pre>
Riga 247: Riga 247:


==Scompattare un file .rar==
==Scompattare un file .rar==
Se siamo in possesso di un archivio .rar , per decomprimerlo avremo bisogno dello strumento <tt>unrar</tt>. Se non lo abbiamo, digitiamo da terminale:
Se siamo in possesso di un archivio .rar , per decomprimerlo avremo bisogno dello strumento <code>unrar</code>. Se non lo abbiamo, digitiamo da terminale:
<pre>
<pre>
apt-get install unrar
apt-get install unrar
</pre>
</pre>
La differenza tra <tt>tar</tt> e <tt>unrar</tt> è che il pacchetto <tt>tar</tt> è tuttofare, e consente sia l’archiviazione che la decompressione dei file su cui è in grado di lavorare. <tt>unrar</tt> invece è in grado soltanto di decomprimere, e se volessimo creare un archivio .rar avremmo bisogno di un altro pacchetto, chiamato <tt>rar</tt>.<br>
La differenza tra <code>tar</code> e <code>unrar</code> è che il pacchetto <code>tar</code> è tuttofare, e consente sia l’archiviazione che la decompressione dei file su cui è in grado di lavorare. <code>unrar</code> invece è in grado soltanto di decomprimere, e se volessimo creare un archivio .rar avremmo bisogno di un altro pacchetto, chiamato <code>rar</code>.<br>
Per decomprimere il file .rar digitiamo ora semplicemente:
Per decomprimere il file .rar digitiamo ora semplicemente:
<pre>
<pre>
Riga 259: Riga 259:


==Scompattare un file .zip==
==Scompattare un file .zip==
Se siamo in possesso di un file .zip, possiamo decomprimerlo con lo strumento “<tt>unzip</tt>. Se non abbiamo dovremo installarlo con:
Se siamo in possesso di un file .zip, possiamo decomprimerlo con lo strumento “<code>unzip</code>. Se non abbiamo dovremo installarlo con:
<pre>
<pre>
apt-get install unzip
apt-get install unzip
</pre>
</pre>
Come per gli archivi .rar, <tt>unzip</tt> è in grado soltanto di decomprimere, e la compressione può avvenire grazie a <tt>zip</tt> che si installa allo stesso modo.<br>
Come per gli archivi .rar, <code>unzip</code> è in grado soltanto di decomprimere, e la compressione può avvenire grazie a <code>zip</code> che si installa allo stesso modo.<br>
Per decomprimere un file .zip, digitiamo semplicemente:
Per decomprimere un file .zip, digitiamo semplicemente:
<pre>
<pre>
Riga 272: Riga 272:
=Gestione di files e directory=
=Gestione di files e directory=
==Muoversi tra le directory==
==Muoversi tra le directory==
Accedere da terminale ad una directory è semplicissimo, perchè il comando è uguale a quello del DOS.<br>
Accedere da terminale ad una directory è semplicissimo, perché il comando è uguale a quello del DOS.<br>
Per entrare nella directory “cartella” digitiamo:
Per entrare nella directory “cartella” digitiamo:
<pre>
<pre>
Riga 281: Riga 281:
cd /percorso/assoluto/per/arrivare/a/cartella
cd /percorso/assoluto/per/arrivare/a/cartella
</pre>
</pre>
Si noti che per utilizzare il percorso assoluto dobbiamo per prima cosa inserire il <tt>/</tt> che stà ad indicare la radice del filesystem.
Si noti che per utilizzare il percorso assoluto dobbiamo per prima cosa inserire il <code>/</code> che sta ad indicare la radice del filesystem.
Per entrare nella directory “sottocartella” presente in “cartella” con un solo comando, digitiamo:
Per entrare nella directory “sottocartella” presente in “cartella” con un solo comando, digitiamo:
<pre>
<pre>
Riga 308: Riga 308:
ls -a
ls -a
</pre>
</pre>
con cui si potranno visualizzare anche gli eventuali file nascosti, compresi <tt>.</tt> e <tt>..</tt> (directory corrente e directory superiore)
con cui si potranno visualizzare anche gli eventuali file nascosti, compresi <code>.</code> e <code>..</code> (directory corrente e directory superiore)
<pre>
<pre>
ls -A
ls -A
Riga 316: Riga 316:
ls -la
ls -la
</pre>
</pre>
con cui si potranno visualizzare i files nascosti (<tt>a</tt>) e produrre un listato (<tt>l</tt>) con diversi dettagli utili (permessi di lettura/scrittura/esecuzione, utente e gruppo proprietari, dimensione, data di ultima modifica, ecc... )
con cui si potranno visualizzare i files nascosti (<code>a</code>) e produrre un listato (<code>l</code>) con diversi dettagli utili (permessi di lettura/scrittura/esecuzione, utente e gruppo proprietari, dimensione, data di ultima modifica, ecc... )


==Creare una directory==
==Creare una directory==
Riga 344: Riga 344:
       |__ directory
       |__ directory
</pre>
</pre>
e di voler spostare la directory <tt>sottocartella</tt>  dalla directory <tt>cartella</tt> alla directory <tt>directory</tt>:
e di voler spostare la directory <code>sottocartella</code>  dalla directory <code>cartella</code> alla directory <code>directory</code>:
<pre>
<pre>
cd /home/ferdy/cartella
cd /home/ferdy/cartella
Riga 366: Riga 366:
       |__ directory
       |__ directory
</pre>
</pre>
e di voler copiare la directory <tt>sottocartella</tt> dalla directory <tt>cartella</tt> alla directory <tt>directory</tt>:
e di voler copiare la directory <code>sottocartella</code> dalla directory <code>cartella</code> alla directory <code>directory</code>:
<pre>
<pre>
cd /home/ferdy/cartella
cd /home/ferdy/cartella
Riga 375: Riga 375:
cp -r /home/ferdy/cartella/sottocartella /home/ferdy/directory
cp -r /home/ferdy/cartella/sottocartella /home/ferdy/directory
</pre>
</pre>
L'opzione <tt>-r</tt> permette di estendere ricorsivamente l'opzione di copia alle eventuali sottodirectory contenute della directory "sottocartella".
L'opzione <code>-r</code> permette di estendere ricorsivamente l'opzione di copia alle eventuali sottodirectory contenute della directory "sottocartella".
==Cancellare una directory vuota==
==Cancellare una directory vuota==
Volendo cancellare la directory “cartella”, dobbiamo scrivere:
Volendo cancellare la directory “cartella”, dobbiamo scrivere:
Riga 390: Riga 390:
rm -rf cartella
rm -rf cartella
</pre>
</pre>
L'opzione <tt>-rf</tt> è in grado di cancellare ogni file. Prestate attenzione a come utilizzate il comando, perchè '''non viene chiesta alcuna conferma''' e rischiate di eliminare files o directory di sistema.
L'opzione <code>-rf</code> è in grado di cancellare ogni file. Prestate attenzione a come utilizzate il comando, perché '''non viene chiesta alcuna conferma''' e rischiate di eliminare files o directory di sistema.
==Visualizzare la struttura di una drectory==
==Visualizzare la struttura di una drectory==
<tt>tree</tt> è un  comando shell che ha il compito di listare ad albero una data directory. La sintassi del comando è:
<code>tree</code> è un  comando shell che ha il compito di listare ad albero una data directory. La sintassi del comando è:
<pre>
<pre>
tree [-adfgilnopqrstuxACDFNS][-L level [-R]][-H baseHREF][-T title][-o filename][--nolinks][-P pattern]
tree [-adfgilnopqrstuxACDFNS][-L level [-R]][-H baseHREF][-T title][-o filename][--nolinks][-P pattern]
Riga 398: Riga 398:
</pre>
</pre>
Alcune delle numerose opzioni che possiamo passare al comando tree sono:
Alcune delle numerose opzioni che possiamo passare al comando tree sono:
* <tt>-a</tt>: Stampa a video tutti i file, compresi quelli nascosti
* <code>-a</code>: Stampa a video tutti i file, compresi quelli nascosti
* <tt>-d</tt>: Lista soltanto le directory
* <code>-d</code>: Lista soltanto le directory
* <tt>-f</tt>: Stampa tutto il percorso di ogni file
* <code>-f</code>: Stampa tutto il percorso di ogni file
* <tt>-i</tt>: Non stampa un output ad 'albero'
* <code>-i</code>: Non stampa un output ad 'albero'
* <tt>-s</tt>: Stampa affianco al nome del file la sua dimensione
* <code>-s</code>: Stampa affianco al nome del file la sua dimensione
* <tt>-r</tt>: Riordina alfabeticamente l'output
* <code>-r</code>: Riordina alfabeticamente l'output
Se vogliamo ad esempio listare la cartella /home/user/tmp, basta dare il comando:
Se vogliamo ad esempio listare la cartella /home/user/tmp, basta dare il comando:
<pre>
<pre>
Riga 410: Riga 410:


==Rinominare un file==
==Rinominare un file==
Per rinominare un file da terminale deve essere usato il comando <tt>mv</tt>. Volendo rinominare il file “testo.txt” in “text.txt” dovremo dirigerci prima nella directory in cui il file è presente, e poi digitare:
Per rinominare un file da terminale deve essere usato il comando <code>mv</code>. Volendo rinominare il file “testo.txt” in “text.txt” dovremo dirigerci prima nella directory in cui il file è presente, e poi digitare:
<pre>
<pre>
mv testo.txt text.txt
mv testo.txt text.txt
</pre>
</pre>
==Spostare (tagliare ed incollare) un file==
==Spostare (tagliare ed incollare) un file==
Anche per questa operazione deve essere usato il comando <tt>mv</tt>. Supponiamo di avere il file "testo.txt" in una specifica directory e di volerlo spostare nella nostra directory Home. Dirigiamoci da terminale nella directory in cui il file è presente, e lanciamo:
Anche per questa operazione deve essere usato il comando <code>mv</code>. Supponiamo di avere il file "testo.txt" in una specifica directory e di volerlo spostare nella nostra directory Home. Dirigiamoci da terminale nella directory in cui il file è presente, e lanciamo:
<pre>
<pre>
mv testo.txt /home/vostronomeutente/
mv testo.txt /home/vostronomeutente/
Riga 421: Riga 421:


==Copiare un file==
==Copiare un file==
Se intendiamo duplicare un file, dobbiamo usare il comando <tt>cp</tt>. Con questo comando si possono fare più cose:
Se intendiamo duplicare un file, dobbiamo usare il comando <code>cp</code>. Con questo comando si possono fare più cose:
* copiare un file da una directory ad un’altra:
* copiare un file da una directory ad un’altra:
<pre>
<pre>
Riga 430: Riga 430:
cp testo.txt text.txt
cp testo.txt text.txt
</pre>
</pre>
* creare un diplicato e cambiare anche l’estensione:
* creare un duplicato e cambiare anche l’estensione:
<pre>
<pre>
cp testo.txt testo.bak
cp testo.txt testo.bak
</pre>
</pre>
==Cancellare un file==
==Cancellare un file==
La cancellazione di un file da terminale è semplice, basterà digitare il comando <tt>rm</tt> seguito dal nome del file che si vuole cancellare.
La cancellazione di un file da terminale è semplice, basterà digitare il comando <code>rm</code> seguito dal nome del file che si vuole cancellare.
Ad esempio:
Ad esempio:
<pre>
<pre>
Riga 441: Riga 441:
</pre>
</pre>
==Cancellare definitivamente un file==
==Cancellare definitivamente un file==
<tt>shred</tt> è un  comando shell che sovrascrive ripetutamente i FILE specificati in modo da rendere più difficile recuperare i dati, e opzionalmente li cancella. La sintassi del comando è:
<code>shred</code> è un  comando shell che sovrascrive ripetutamente i FILE specificati in modo da rendere più difficile recuperare i dati, e opzionalmente li cancella. La sintassi del comando è:
<pre>
<pre>
shred [OPZIONI] FILE [...]
shred [OPZIONI] FILE [...]
</pre>
</pre>
Le opzioni che possiamo passare al comando sono:
Le opzioni che possiamo passare al comando sono:
* <tt>-f, --force</tt>: change permissions to allow writing if necessary
* <code>-f, --force</code>: change permissions to allow writing if necessary
* <tt>-n, --iterations=N</tt>: Overwrite N times instead of the default (25)
* <code>-n, --iterations=N</code>: Overwrite N times instead of the default (25)
* <tt>--random-source=FILE</tt>: get random bytes from FILE (default /dev/urandom)
* <code>--random-source=FILE</code>: get random bytes from FILE (default /dev/urandom)
* <tt>-s, --size=N</tt>: shred this many bytes (suffixes like K, M, G accepted)
* <code>-s, --size=N</code>: shred this many bytes (suffixes like K, M, G accepted)
* <tt>-u, --remove</tt>: truncate and remove file after overwriting
* <code>-u, --remove</code>: truncate and remove file after overwriting
* <tt>-v, --verbose</tt>: show progress
* <code>-v, --verbose</code>: show progress
* <tt>-x, --exact</tt>: do not round file sizes up to the next full block; this is the default for non-regular files
* <code>-x, --exact</code>: do not round file sizes up to the next full block; this is the default for non-regular files
* <tt>-z, --zero</tt>: add a final overwrite with zeros to hide shredding
* <code>-z, --zero</code>: add a final overwrite with zeros to hide shredding
==Visualizzare il contenuto di un file==
==Visualizzare il contenuto di un file==
Il comando <tt>cat</tt> (che analizzeremo nel dettaglio tra pochi paragrafi) visualizza i contenuti di un intero file sullo schermo. Ad esempio, digitate:
Il comando <code>cat</code> (che analizzeremo nel dettaglio tra pochi paragrafi) visualizza i contenuti di un intero file sullo schermo. Ad esempio, digitate:
<pre>
<pre>
cat filename.txt
cat filename.txt
Riga 464: Riga 464:
</pre>
</pre>
==Confrontare due files==
==Confrontare due files==
<tt>diff</tt> è un comando shell che trova la differenza tra due file. La sintassi del comando è:
<code>diff</code> è un comando shell che trova la differenza tra due file. La sintassi del comando è:
<pre>
<pre>
diff [opzioni] da-file verso-file
diff [opzioni] da-file verso-file
</pre>
</pre>
Alcune delle opzioni che possiamo passare al comando sono:
Alcune delle opzioni che possiamo passare al comando sono:
* <tt>-righe</tt>: Mostra righe (un intero) righe di contesto. Questa opzione non specifica da sola un formato di output; non ha nessun effetto a meno che venga combinata con -c o -u.  Questa opzione è obsoleta. Per operare correttamente,patch ha, di solito, bisogno di almeno due righe di contesto.
* <code>-righe</code>: Mostra righe (un intero) righe di contesto. Questa opzione non specifica da sola un formato di output; non ha nessun effetto a meno che venga combinata con -c o -u.  Questa opzione è obsoleta. Per operare correttamente,patch ha, di solito, bisogno di almeno due righe di contesto.
* <tt>-a</tt>: Tratta tutti i file come testo confrontandoli riga per riga, anche se non sembrano essere testo.
* <code>-a</code>: Tratta tutti i file come testo confrontandoli riga per riga, anche se non sembrano essere testo.
* <tt>-b</tt>: Ignora differenza nella quantità di spazi bianchi.
* <code>-b</code>: Ignora differenza nella quantità di spazi bianchi.
* <tt>-B</tt>: Ignora differenze che consistono solo in righe vuote (eccedenti o mancanti).
* <code>-B</code>: Ignora differenze che consistono solo in righe vuote (eccedenti o mancanti).
* <tt>--brief</tt>: Riferisce solo se i file sono diversi, e non i particolari della differenza.
* <code>--brief</code>: Riferisce solo se i file sono diversi, e non i particolari della differenza.
* <tt>-c</tt>: Usa il formato «a contesto» (context output, in inglese).
* <code>-c</code>: Usa il formato «a contesto» (context output, in inglese).
* <tt>-d</tt>: Usa un algoritmo diverso per trovare un, probabilmente, minore insieme di modifiche da fare. Questo rende  diff  più  lento (a volte molto più lento).
* <code>-d</code>: Usa un algoritmo diverso per trovare un, probabilmente, minore insieme di modifiche da fare. Questo rende  diff  più  lento (a volte molto più lento).


==Modificare l'ora di accesso a un file==
==Modificare l'ora di accesso a un file==
<tt>touch</tt> è un comando shell che modifica l'orario di accesso o/e modifica di un file (il cosiddetto '''timestamp'''). I file vengono modificati con l'orario corrente. La sintassi del comando è:
<code>touch</code> è un comando shell che modifica l'orario di accesso o/e modifica di un file (il cosiddetto '''timestamp'''). I file vengono modificati con l'orario corrente. La sintassi del comando è:
<pre>
<pre>
touch    [-acfm] [-r    file][-t orario_decimale] [-d    orario]
touch    [-acfm] [-r    file][-t orario_decimale] [-d    orario]
Riga 485: Riga 485:
</pre>
</pre>
Le opzioni che possiamo passare al comando sono:
Le opzioni che possiamo passare al comando sono:
* <tt>-a</tt>: Cambia l'ora di accesso di file.
* <code>-a</code>: Cambia l'ora di accesso di file.
* <tt>-c</tt>: Non crea file.
* <code>-c</code>: Non crea file.
* <tt>-m</tt>: Cambia l'ora di modifica di file.
* <code>-m</code>: Cambia l'ora di modifica di file.
* <tt>-r ref_file</tt>: Usa  i  corrispondenti  orari  di  ref_file come i nuovi valori per gli orari da cambiare.
* <code>-r ref_file</code>: Usa  i  corrispondenti  orari  di  ref_file come i nuovi valori per gli orari da cambiare.
* <tt>-t orario</tt>: Usa l'orario specificato come nuovo  valore  per  gli  orari  cambiati. L'argomento è un numero decimale nella forma [[SS]AA]MMGGoomm[.ss]
* <code>-t orario</code>: Usa l'orario specificato come nuovo  valore  per  gli  orari  cambiati. L'argomento è un numero decimale nella forma [[SS]AA]MMGGoomm[.ss]
* <tt>-d, --date=orario</tt>: Usa  orario  al posto dell'ora corrente. Può contenere il nomi di mese, fusi orari, «am» e «pm», ecc
* <code>-d, --date=orario</code>: Usa  orario  al posto dell'ora corrente. Può contenere il nomi di mese, fusi orari, «am» e «pm», ecc


==Manipolazione di files==
==Manipolazione di files==
Un modo veloce (soprattutto negli script) per modificare il contenuto di un file o per accodare altro testo alla sua fine è utilizzare il comando <tt>cat</tt>.<br>
Un modo veloce (soprattutto negli script) per modificare il contenuto di un file o per accodare altro testo alla sua fine è utilizzare il comando <code>cat</code>.<br>
<tt>cat</tt> è un comando shell che legge file in sequenza e può scrivere i loro contenuti sullo standard output nella stessa sequenza. La sintassi del comando è:
<code>cat</code> è un comando shell che legge file in sequenza e può scrivere i loro contenuti sullo standard output nella stessa sequenza. La sintassi del comando è:
<pre>
<pre>
cat [opzioni][file ...]
cat [opzioni][file ...]
</pre>
</pre>
Note:
Note:
* <tt>'''>''' file.estensione</tt>: Se nomefile.estensione non esiste, viene creato e viene scritto il valore al suo interno. Nel caso esistesse già, il suo valore '''verrebbe sovrascritto'''.
* <code>'''>''' file.estensione</code>: Se nomefile.estensione non esiste, viene creato e viene scritto il valore al suo interno. Nel caso esistesse già, il suo valore '''verrebbe sovrascritto'''.
* <tt>'''>>''' nomefile.estensione</tt>: Aggiunge alla fine del file il valore che gli date a riga di comando.<br>
* <code>'''>>''' nomefile.estensione</code>: Aggiunge alla fine del file il valore che gli date a riga di comando.<br>
Altri comandi utili per la manipolazione veloce di files sono:
Altri comandi utili per la manipolazione veloce di files sono:
* <tt>head</tt>, che mostra le prime dieci linee di un file. Utile quando si vuole avere un'idea del contenuto di un file senza doverlo aprire con un editor
* <code>head</code>, che mostra le prime dieci linee di un file. Utile quando si vuole avere un'idea del contenuto di un file senza doverlo aprire con un editor
* <tt>tail</tt>, che mostra al contrario le ultime dieci linee di un file
* <code>tail</code>, che mostra al contrario le ultime dieci linee di un file
===Esempi===
===Esempi===
Se vogliamo mostrare il contenuto del file di testo /home/ferdy/prova.txt, dobbiamo dare il comando:
Se vogliamo mostrare il contenuto del file di testo /home/ferdy/prova.txt, dobbiamo dare il comando:
Riga 509: Riga 509:
cat /home/ferdy/prova.txt
cat /home/ferdy/prova.txt
</pre>
</pre>
Se vogliamo aggiungere il contenuto del file <tt>/home/ferdy/aggiunte.txt</tt> alla fine del file, diamo il seguente comando:
Se vogliamo aggiungere il contenuto del file <code>/home/ferdy/aggiunte.txt</code> alla fine del file, diamo il seguente comando:
<pre>
<pre>
cat /home/ferdy/aggiunte.txt >> /home/ferdy/prova.txt
cat /home/ferdy/aggiunte.txt >> /home/ferdy/prova.txt
Riga 527: Riga 527:
</pre>
</pre>
Nell'ultimo comando sono stati usati:
Nell'ultimo comando sono stati usati:
* <tt>'''-f</tt>''' che permette a <tt>tail</tt> di seguire (follow) il file e i suoi cambiamenti
* <code>'''-f</code>''' che permette a <code>tail</code> di seguire (follow) il file e i suoi cambiamenti
* <tt>'''| ccze'''</tt> che dirige l'output di tail verso il programma <tt>ccze</tt>, che colorerà l'output del log rendendolo facilmente leggibile
* <code>'''| ccze'''</code> che dirige l'output di tail verso il programma <code>ccze</code>, che colorerà l'output del log rendendolo facilmente leggibile
In quest'ultimo esempio, per rilasciare il terminale e riottenerne il pieno utilizzo bisogna stoppare <tt>tail</tt> con la combinazione di tasti <tt>CTRL</tt>+<tt>C</tt>.
In quest'ultimo esempio, per rilasciare il terminale e riottenerne il pieno utilizzo bisogna stoppare <code>tail</code> con la combinazione di tasti <code>CTRL</code>+<code>C</code>.


==Creare un collegamento==
==Creare un collegamento==
Un collegamento è un particolare tipo di file che non è altro che un rimando ad un altro file o directory. Per creare un collegamento tra file o directory si deve usare il comando <tt>ln</tt>.
Un collegamento è un particolare tipo di file che non è altro che un rimando ad un altro file o directory. Per creare un collegamento tra file o directory si deve usare il comando <code>ln</code>.
<pre>
<pre>
ln <file da collegare> <directory di collegamento>
ln <file da collegare> <directory di collegamento>
</pre>
</pre>
Supponiamodi avere il file testo.txt nella nostra home di voler creare un collegamento in usr/bin. Scriverò:
Supponiamo di avere il file testo.txt nella nostra home di voler creare un collegamento in usr/bin. Scriverò:
<pre>
<pre>
ln /home/ferdy/testo.txt /usr/bin
ln /home/ferdy/testo.txt /usr/bin
Riga 544: Riga 544:
==Cambiare i permessi di lettura, scrittura ed esecuzione==
==Cambiare i permessi di lettura, scrittura ed esecuzione==
Può succedere di aver bisogno di dover cambiare i permessi ad un file, per consentire la lettura, la scrittura o l’esecuzione ad ogni utente, oppure al contrario per proteggerlo da utilizzi indesiderati e restringerlo ad un particolare utente o gruppo.
Può succedere di aver bisogno di dover cambiare i permessi ad un file, per consentire la lettura, la scrittura o l’esecuzione ad ogni utente, oppure al contrario per proteggerlo da utilizzi indesiderati e restringerlo ad un particolare utente o gruppo.
Il comando da utilizzare per queste operazioni è <tt>chmod</tt>. Per cambiare i permessi, ad esempio, al file "testo.txt" dovremo agire da autori del file e digitare:
Il comando da utilizzare per queste operazioni è <code>chmod</code>. Per cambiare i permessi, ad esempio, al file "testo.txt" dovremo agire da autori del file e digitare:
<pre>
<pre>
chmod xxx testo.txt
chmod xxx testo.txt
</pre>
</pre>
Al posto delle lettere <tt>xxx</tt> devono essere indicati dei numeri ottali:
Al posto delle lettere <code>xxx</code> devono essere indicati dei numeri ottali:
* 755 – Lettura, scrittura, esecuzione per il proprietario, lettura, esecuzione per il gruppo ed altri utenti.
* 755 – Lettura, scrittura, esecuzione per il proprietario, lettura, esecuzione per il gruppo ed altri utenti.
* 644 – Lettura, scrittura per il proprietario, lettura per il gruppo ed altri utenti.
* 644 – Lettura, scrittura per il proprietario, lettura per il gruppo ed altri utenti.
Riga 580: Riga 580:


==Cambiare l'utente proprietario di un file==
==Cambiare l'utente proprietario di un file==
Per cambiare l'utente e il gruppo proprietari di ciascun file dato (specificato dal primo argomento che non sia un'opzione) si utilizza il comando <tt>chown</tt> nel seguente modo: se viene dato solo un nome utente (o una user ID numerica), quell'utente diventa proprietario di ciascun file dato, il cui gruppo non viene modificato. Se il nome utente è seguito da <tt>:</tt> e un nome di gruppo (o una group ID numerica), senza spazi frapposti, allora anche il gruppo proprietario del file viene cambiato.<br>
Per cambiare l'utente e il gruppo proprietari di ciascun file dato (specificato dal primo argomento che non sia un'opzione) si utilizza il comando <code>chown</code> nel seguente modo: se viene dato solo un nome utente (o una user ID numerica), quell'utente diventa proprietario di ciascun file dato, il cui gruppo non viene modificato. Se il nome utente è seguito da <code>:</code> e un nome di gruppo (o una group ID numerica), senza spazi frapposti, allora anche il gruppo proprietario del file viene cambiato.<br>
La sintassi del comando è:
La sintassi del comando è:
<pre>
<pre>
Riga 586: Riga 586:
</pre>
</pre>
===Esempi===
===Esempi===
* Cambiare il proprietario del file <tt>prova.txt</tt>
* Cambiare il proprietario del file <code>prova.txt</code>
<pre>
<pre>
chown ferdy prova.txt
chown ferdy prova.txt
</pre>
</pre>
* Cambiare proprietario e gruppo proprietario del file <tt>prova.txt</tt>
* Cambiare proprietario e gruppo proprietario del file <code>prova.txt</code>
<pre>
<pre>
chown ferdy:gruppo_desiderato prova.txt
chown ferdy:gruppo_desiderato prova.txt
</pre>
</pre>
* Cambiare ricorsivamente il proprietario di tutti i files della directory <tt>prova</tt>
* Cambiare ricorsivamente il proprietario di tutti i files della directory <code>prova</code>
<pre>
<pre>
chown -R ferdy prova/
chown -R ferdy prova/
</pre>
</pre>
==Cambiare il gruppo proprietario di un file==
==Cambiare il gruppo proprietario di un file==
Per cambiare il gruppo proprietario di un file si utilizza il comando <tt>chgrp</tt>. Il gruppo può essere identificato col nome o con l'ID. La sintassi del comando è:
Per cambiare il gruppo proprietario di un file si utilizza il comando <code>chgrp</code>. Il gruppo può essere identificato col nome o con l'ID. La sintassi del comando è:
<pre>
<pre>
chgrp [opzioni] gruppo file...
chgrp [opzioni] gruppo file...
</pre>
</pre>
Ad esempio, per cambiare il gruppo proprietario di tutti i files contenuti nella directory <tt>prova</tt> si digiti:
Ad esempio, per cambiare il gruppo proprietario di tutti i files contenuti nella directory <code>prova</code> si digiti:
<pre>
<pre>
chgrp -R gruppo_voluto prova/
chgrp -R gruppo_voluto prova/
Riga 610: Riga 610:
==Ricerca di file nel sistema==
==Ricerca di file nel sistema==
Se siamo alla ricerca di un determinato file all’interno del nostro computer, il mio consiglio è andare su Risorse e selezionare Cerca file. In questo modo il processo sarà più rapido e meno macchinoso, ma in questa guida siamo qui per vedere come è possibile farlo anche da terminale.<br>
Se siamo alla ricerca di un determinato file all’interno del nostro computer, il mio consiglio è andare su Risorse e selezionare Cerca file. In questo modo il processo sarà più rapido e meno macchinoso, ma in questa guida siamo qui per vedere come è possibile farlo anche da terminale.<br>
Il motore di ricerca da terminale si chiama <tt>locate</tt> e possiamo installarlo normalmente digitando:
Il motore di ricerca da terminale si chiama <code>locate</code> e possiamo installarlo normalmente digitando:
<pre>
<pre>
apt-get install locate
apt-get install locate
Riga 623: Riga 623:
</pre>
</pre>
==Scaricare un file da Internet==
==Scaricare un file da Internet==
Da terminale è possibile anche scaricare file da Internet, utilizzando il comando <tt>wget</tt> con i protocolli http o ftp. Ad esempio se volessimo scaricare il file http://www.sito.it/file.rar ,ci basterà digitare:
Da terminale è possibile anche scaricare file da Internet, utilizzando il comando <code>wget</code> con i protocolli http o ftp. Ad esempio se volessimo scaricare il file http://www.sito.it/file.rar ,ci basterà digitare:
<pre>
<pre>
wget http://www.sito.it/file.rar
wget http://www.sito.it/file.rar
Riga 673: Riga 673:
Dove “nomeutente” deve essere sostituito con il nome dell’utente che si vuole cancellare. Non sono richiesti altri comandi o informazioni e l’operazione avverrà in meno di un secondo.
Dove “nomeutente” deve essere sostituito con il nome dell’utente che si vuole cancellare. Non sono richiesti altri comandi o informazioni e l’operazione avverrà in meno di un secondo.
==Modifica della password di un utente==
==Modifica della password di un utente==
Per la modifica da terminale della password di un utente si utilizza il comando <tt>passwd</tt>. Facciamo login come utente root e diamo il comando:
Per la modifica da terminale della password di un utente si utilizza il comando <code>passwd</code>. Facciamo login come utente root e diamo il comando:
<pre>
<pre>
passwd nomeutente
passwd nomeutente
Riga 680: Riga 680:
=Compiere operazioni con sudo=
=Compiere operazioni con sudo=
==Definizione di sudo==
==Definizione di sudo==
Il comando <tt>sudo</tt> (super user do) è una stringa di comando usata su sistemi operativi Unix-like per eseguire operazioni ottenendo temporanei privilegi di root (ovvero di amministratore).<br>
Il comando <code>sudo</code> (super user do) è una stringa di comando usata su sistemi operativi Unix-like per eseguire operazioni ottenendo temporanei privilegi di root (ovvero di amministratore).<br>
A differenza del comando <tt>su</tt> (substitute user), <tt>sudo</tt> richiede all’utente solo la propria password, e non quella dell’amministratore; perciò non occorre conoscere password altrui, con ovvi vantaggi sulla sicurezza, ma è sufficiente essere stati precedentemente abilitati. Il file di configurazione <tt>/etc/sudoers</tt> stabilisce chi può sostituire chi, su quali macchine, e relativamente a quali operazioni.<br>
A differenza del comando <code>su</code> (substitute user), <code>sudo</code> richiede all’utente solo la propria password, e non quella dell’amministratore; perciò non occorre conoscere password altrui, con ovvi vantaggi sulla sicurezza, ma è sufficiente essere stati precedentemente abilitati. Il file di configurazione <code>/etc/sudoers</code> stabilisce chi può sostituire chi, su quali macchine, e relativamente a quali operazioni.<br>
Fonte: Wikipedia
Fonte: Wikipedia
==Installazione di sudo==
==Installazione di sudo==
In una installazione di default di Debian <tt>sudo</tt> non è compreso. Per installarlo basta digitare:
In una installazione di default di Debian <code>sudo</code> non è compreso. Per installarlo basta digitare:
<pre>
<pre>
apt-get install sudo
apt-get install sudo
Riga 693: Riga 693:
visudo
visudo
</pre>
</pre>
Potremo così modificare il file <tt>/etc/sudoers</tt> ed aggiungere i permessi di sudoer ad un utente specifico.<br>
Potremo così modificare il file <code>/etc/sudoers</code> ed aggiungere i permessi di sudoer ad un utente specifico.<br>
Un esempio di file <tt>/etc/sudoers</tt>:
Un esempio di file <code>/etc/sudoers</code>:
<pre>
<pre>
# /etc/sudoers
# /etc/sudoers
Riga 723: Riga 723:
%admin ALL=(ALL) ALL
%admin ALL=(ALL) ALL
</pre>
</pre>
Una volta che il nostro utente sarà abilitato all'utilizzo di sudo, potremo lanciare qualsiasi operazione di sistema che richieda permessi speciali, aggiungendo <tt>sudo</tt> all’inizio di ogni sintassi. Per esempio, per l’installazione di VLC:
Una volta che il nostro utente sarà abilitato all'utilizzo di sudo, potremo lanciare qualsiasi operazione di sistema che richieda permessi speciali, aggiungendo <code>sudo</code> all’inizio di ogni sintassi. Per esempio, per l’installazione di VLC:
<pre>
<pre>
sudo apt-get install vlc
sudo apt-get install vlc
</pre>
</pre>
e così via. Il comando <tt>sudo</tt> è molto comodo, ma ovviamente comporta più rischi per la sicurezza, specialmente nel caso in cui il sistema è utilizzato da più utenti. Usatelo con discrezione.
e così via. Il comando <code>sudo</code> è molto comodo, ma ovviamente comporta più rischi per la sicurezza, specialmente nel caso in cui il sistema è utilizzato da più utenti. Usatelo con discrezione.
=Gestione del sistema=
=Gestione del sistema=
==Visualizzare i processi di sistema in uso e le loro dipendenze==
==Visualizzare i processi di sistema in uso e le loro dipendenze==
Riga 759: Riga 759:
man ls
man ls
</pre>
</pre>
il quale visualizzerà la pagina di manuale che può essere scorsa e letta tranquillamente e comodamente a video. Per uscire dalla visualizzazione della pagina di manuale dobbiamo premere il tasto <tt>q</tt>.
il quale visualizzerà la pagina di manuale che può essere scorsa e letta tranquillamente e comodamente a video. Per uscire dalla visualizzazione della pagina di manuale dobbiamo premere il tasto <code>q</code>.
===Sezioni delle man pages===
===Sezioni delle man pages===
Come abbiamo detto in precedenza, le pagine di manuale sono una vasta moltitudine (praticamente ogni comando possiede la propria pagina di manuale) e proprio per questo motivo si è scelto di dividere le varie man page in diverse sezioni numerate. Questo sistema è utilizzato in sostanza dalla nascita del sistema operativo GNU/Linux e spesso vi capiterà di incontrare riferimenti a comandi, programmi e anche a funzioni di librerie software assieme al relativo numero di sezione della pagina del manuale come ad esempio man(1). Questa indicazione significa che la documentazione relativa al comando man è inserita all'interno della sezione 1 (comandi utente). Possiamo visualizzare la sezione 1 del manuale per "man" attraverso il comando
Come abbiamo detto in precedenza, le pagine di manuale sono una vasta moltitudine (praticamente ogni comando possiede la propria pagina di manuale) e proprio per questo motivo si è scelto di dividere le varie man page in diverse sezioni numerate. Questo sistema è utilizzato in sostanza dalla nascita del sistema operativo GNU/Linux e spesso vi capiterà di incontrare riferimenti a comandi, programmi e anche a funzioni di librerie software assieme al relativo numero di sezione della pagina del manuale come ad esempio man(1). Questa indicazione significa che la documentazione relativa al comando man è inserita all'interno della sezione 1 (comandi utente). Possiamo visualizzare la sezione 1 del manuale per "man" attraverso il comando
Riga 778: Riga 778:
==Denominazione dei dischi fissi==
==Denominazione dei dischi fissi==
Linux indica i dischi fissi collegati nel sistema in questo modo:
Linux indica i dischi fissi collegati nel sistema in questo modo:
* <tt>'''hdX'''</tt> se si tratta di un disco IDE
* <code>'''hdX'''</code> se si tratta di un disco IDE
* <tt>'''sdX'''</tt> se si tratta di un disco SATA
* <code>'''sdX'''</code> se si tratta di un disco SATA
dove <tt>X</tt> è una lettera dell'alfabeto. Al primo disco del sistema sarà assegnata la lettera <tt>a</tt> (<tt>hda</tt> oppure <tt>sda</tt>) e via via saranno assegnate tutte le lettere che servono.<br>
dove <code>X</code> è una lettera dell'alfabeto. Al primo disco del sistema sarà assegnata la lettera <code>a</code> (<code>hda</code> oppure <code>sda</code>) e via via saranno assegnate tutte le lettere che servono.<br>
Le partizioni di ogni disco vengono indicate con dei numeri progressivi:
Le partizioni di ogni disco vengono indicate con dei numeri progressivi:
* <tt>1-4</tt> indicano le partizioni primarie
* <code>1-4</code> indicano le partizioni primarie
* da <tt>5</tt> in poi sono le partizioni logiche
* da <code>5</code> in poi sono le partizioni logiche
Ad esempio:
Ad esempio:
* <tt>sda1</tt> è la prima partizione primaria del nostro primo disco SATA
* <code>sda1</code> è la prima partizione primaria del nostro primo disco SATA
* <tt>hdc5</tt> è la prima partizione logica del nostro terzo disco IDE
* <code>hdc5</code> è la prima partizione logica del nostro terzo disco IDE
Tutti i dischi presenti nel sistema vengono "elencati" sotto la directory <tt>/dev</tt>. Perciò il "nome completo" dei due dischi visti nell'esempio precedente sarà:
Tutti i dischi presenti nel sistema vengono "elencati" sotto la directory <code>/dev</code>. Perciò il "nome completo" dei due dischi visti nell'esempio precedente sarà:
* <tt>/dev/sda1</tt>
* <code>/dev/sda1</code>
* <tt>/dev/hdc5</tt>
* <code>/dev/hdc5</code>


==Lista dei File System montati==
==Lista dei File System montati==
Riga 797: Riga 797:
</pre>
</pre>
Per ottenere in output la lista che cerchiamo.<br>
Per ottenere in output la lista che cerchiamo.<br>
Il file che dice a Linux quali dispositivi vanno montati all'avvio del sistema e dove vanno montati è <tt>/etc/fstab</tt>.
Il file che dice a Linux quali dispositivi vanno montati all'avvio del sistema e dove vanno montati è <code>/etc/fstab</code>.


==Struttura del filesystem==
==Struttura del filesystem==
In ambiente Windows ogni nuovo disco e ogni nuova partizione installati nel sistema si vedono attribuiti la lettera dell'alfabeto successiva all'ultima utilizzata. Ad esempio, se installassimo un nuovo disco fisso in un sistema Windows che utilizza:
In ambiente Windows ogni nuovo disco e ogni nuova partizione installati nel sistema si vedono attribuiti la lettera dell'alfabeto successiva all'ultima utilizzata. Ad esempio, se installassimo un nuovo disco fisso in un sistema Windows che utilizza:
* <tt>A:</tt> per il floppy
* <code>A:</code> per il floppy
* <tt>C:</tt> per il disco di sistema
* <code>C:</code> per il disco di sistema
* <tt>D:</tt> per un secondo disco di dati
* <code>D:</code> per un secondo disco di dati
* <tt>E:</tt> pr il masterizzatore
* <code>E:</code> pr il masterizzatore
al nuovo disco verrebbe automaticamente assegnata la lettera <tt>F:</tt>.<br>
al nuovo disco verrebbe automaticamente assegnata la lettera <code>F:</code>.<br>
In ambiente Linux le cose funzionano diversamente. Il filesystem è strutturato a partire dalla sua '''radice''' (indicata con <tt>'''/'''</tt> e chiamata '''root''') e tutti i dischi e i dispositivi removibili vengono "agganciati" (l'operazione si chiama '''montaggio''', in inglese '''mount''') in una directory sotto <tt>/</tt>.<br>
In ambiente Linux le cose funzionano diversamente. Il filesystem è strutturato a partire dalla sua '''radice''' (indicata con <code>'''/'''</code> e chiamata '''root''') e tutti i dischi e i dispositivi removibili vengono "agganciati" (l'operazione si chiama '''montaggio''', in inglese '''mount''') in una directory sotto <code>/</code>.<br>
Una comune struttura di filesystem Linux è la seguente:
Una comune struttura di filesystem Linux è la seguente:
<pre>
<pre>
Riga 844: Riga 844:


==Montaggio di nuovi dischi==
==Montaggio di nuovi dischi==
L'operazione di '''montaggio''' di un disco (in inglese '''mount''') rende possibile "agganciare" un dispositivo tra quelli elencati in <tt>/dev</tt> a una directory del file system, per renderlo utilizzabile all'interno del sistema.<br>
L'operazione di '''montaggio''' di un disco (in inglese '''mount''') rende possibile "agganciare" un dispositivo tra quelli elencati in <code>/dev</code> a una directory del file system, per renderlo utilizzabile all'interno del sistema.<br>
Se ad esempio avessimo collegato un nuovo disco fisso al PC, se questo fosse visto da Linux come <tt>/dev/hdd1</tt> e se volessimo renderlo raggiungibile sotto la directory <tt>/mnt</tt>, dovremmo:
Se ad esempio avessimo collegato un nuovo disco fisso al PC, se questo fosse visto da Linux come <code>/dev/hdd1</code> e se volessimo renderlo raggiungibile sotto la directory <code>/mnt</code>, dovremmo:
# creare all'interno di <tt>/mnt</tt> una directory a cui "agganciare" il disco:<pre>mkdir /mnt/disco_dati</pre>
# creare all'interno di <code>/mnt</code> una directory a cui "agganciare" il disco:<pre>mkdir /mnt/disco_dati</pre>
# eseguire il mount del disco:
# eseguire il mount del disco:
<pre>
<pre>
mount -t auto /dev/hdd1 /mnt/disco_dati
mount -t auto /dev/hdd1 /mnt/disco_dati
</pre>
</pre>
L'opzione <tt>-t auto</tt> dice a Linux di riconoscere automaticamente il filesystem con cui il nostro disco è stato formattato.<br>
L'opzione <code>-t auto</code> dice a Linux di riconoscere automaticamente il filesystem con cui il nostro disco è stato formattato.<br>
Da questo momento i dati contenuti nel nostro hard disk saranno raggiungibili andando nella directory <tt>/mnt/disco_dati</tt>.<br><br>
Da questo momento i dati contenuti nel nostro hard disk saranno raggiungibili andando nella directory <code>/mnt/disco_dati</code>.<br><br>
Il comando <tt>mount</tt> viene molto utile quando abbiamo un'immagine ISO di un CD-Rom e vogliamo vederne il contenuto senza masterizzarla:
Il comando <code>mount</code> viene molto utile quando abbiamo un'immagine ISO di un CD-Rom e vogliamo vederne il contenuto senza masterizzarla:
<pre>
<pre>
mount -t iso9660 -o loop /cartella/immagine.iso /cartella/di/montaggio
mount -t iso9660 -o loop /cartella/immagine.iso /cartella/di/montaggio
Riga 872: Riga 872:
=Gestione dell'Hardware=
=Gestione dell'Hardware=
==Ricavare informazioni sul sistema==
==Ricavare informazioni sul sistema==
Il comando <tt>uname</tt> restituisce in output diverse informazioni sul sistema. La sintassi del comando è:
Il comando <code>uname</code> restituisce in output diverse informazioni sul sistema. La sintassi del comando è:
<pre>
<pre>
uname [OPZIONE]...
uname [OPZIONE]...
</pre>
</pre>
Le opzioni che possiamo passare al comando sono:
Le opzioni che possiamo passare al comando sono:
* <tt>-s</tt>: Mostra il nome del kernel
* <code>-s</code>: Mostra il nome del kernel
* <tt>-n</tt>: Mostra il nome dell'host nel nodo di rete  
* <code>-n</code>: Mostra il nome dell'host nel nodo di rete  
* <tt>-r</tt>: Release del kernel
* <code>-r</code>: Release del kernel
* <tt>-v</tt>: Versione del kernel
* <code>-v</code>: Versione del kernel
* <tt>-m</tt>: Nome hardware della macchina
* <code>-m</code>: Nome hardware della macchina
* <tt>-p</tt>: Tipo di processore
* <code>-p</code>: Tipo di processore
* <tt>-i</tt>: Piattaforma hardware
* <code>-i</code>: Piattaforma hardware
* <tt>-o</tt>: Sistema Operativo
* <code>-o</code>: Sistema Operativo
* <tt>-a</tt>: Mostra tutte le opzioni precedenti
* <code>-a</code>: Mostra tutte le opzioni precedenti
==Lista delle periferiche USB montate==
==Lista delle periferiche USB montate==
Quando abbiamo bisogno di venire a conoscenza delle periferiche USB collegate al sistema (utile, spesso, per sapere se in qualche modo il nostro sistema ha riconosciuto una determinata periferica), possiamo lanciare, da root o con “sudo”, il seguente comando:
Quando abbiamo bisogno di venire a conoscenza delle periferiche USB collegate al sistema (utile, spesso, per sapere se in qualche modo il nostro sistema ha riconosciuto una determinata periferica), possiamo lanciare, da root o con “sudo”, il seguente comando:
Riga 903: Riga 903:
df -h
df -h
</pre>
</pre>
L'opzione <tt>-h</tt> dice al comando di fornire l'output in un formato facilmente comprensibile.
L'opzione <code>-h</code> dice al comando di fornire l'output in un formato facilmente comprensibile.
==Visualizzare lo stato della memoria RAM e della cache==
==Visualizzare lo stato della memoria RAM e della cache==
Per visualizzare lo stato di utilizzo della RAM e della cache si digiti:
Per visualizzare lo stato di utilizzo della RAM e della cache si digiti:
Riga 910: Riga 910:
</pre>
</pre>
==Visualizzare l'utilizzo delle risorse del sistema==
==Visualizzare l'utilizzo delle risorse del sistema==
Il programma <tt>top</tt> fornisce una visualizzazione in tempo reale della situazione sull'utilizzo delle risorse di sistema attraverso una tabella dell'attività principale della CPU. <tt>top</tt> mostra la lista dei task del sistema che fanno un utilizzo più intenso della CPU e mette a disposizione un'interfaccia interattiva per la manipolazione dei processi. I task possono essere ordinati in base all'utilizzo della CPU, all'utilizzo della memoria e al tempo di esecuzione. L'utilizzo più semplice di top prevede la seguente sintassi:
Il programma <code>top</code> fornisce una visualizzazione in tempo reale della situazione sull'utilizzo delle risorse di sistema attraverso una tabella dell'attività principale della CPU. <code>top</code> mostra la lista dei task del sistema che fanno un utilizzo più intenso della CPU e mette a disposizione un'interfaccia interattiva per la manipolazione dei processi. I task possono essere ordinati in base all'utilizzo della CPU, all'utilizzo della memoria e al tempo di esecuzione. L'utilizzo più semplice di top prevede la seguente sintassi:
<pre>
<pre>
top [opzioni]
top [opzioni]
Riga 923: Riga 923:
* <code>'''M'''</code> Ordina i task in base all’uso di memoria residente.
* <code>'''M'''</code> Ordina i task in base all’uso di memoria residente.
* <code>'''P'''</code> Ordina i task in base all’uso della CPU (default).
* <code>'''P'''</code> Ordina i task in base all’uso della CPU (default).
* <code>'''T'''</code> Ordina i task in base al tempo (o al tempo comulativo).
* <code>'''T'''</code> Ordina i task in base al tempo (o al tempo cumulativo).
* <code>'''W'''</code> Salva la configurazione corrente all'interno del file <code>~/.toprc</code>  
* <code>'''W'''</code> Salva la configurazione corrente all'interno del file <code>~/.toprc</code>  
Il comando <tt>top</tt> inoltre può essere lanciato specificando alcune opzioni in base alle nostre esigenze. Qui di seguito riportiamo quelle più importanti:
Il comando <code>top</code> inoltre può essere lanciato specificando alcune opzioni in base alle nostre esigenze. Qui di seguito riportiamo quelle più importanti:
<pre>
<pre>
top -d secondi
top -d secondi
Riga 942: Riga 942:
</pre>
</pre>
Permette di visualizzare la riga di comando, invece del solo nome del programma.<br>
Permette di visualizzare la riga di comando, invece del solo nome del programma.<br>
In alternativa a top possiamo utilizzare il programma <tt>htop</tt> che è modo simile a top, ma offre la possibilità di scorrere l'elenco di tutti i processi e mette a disposizione comandi interattivi più intuitivi e comodi.
In alternativa a top possiamo utilizzare il programma <code>htop</code> che è modo simile a top, ma offre la possibilità di scorrere l'elenco di tutti i processi e mette a disposizione comandi interattivi più intuitivi e comodi.


=Varie=
=Varie=
Riga 955: Riga 955:
</pre>
</pre>
dove
dove
* <tt>-h</tt> indica che vogliamo arrestare il sistema.
* <code>-h</code> indica che vogliamo arrestare il sistema.
* <tt>now</tt> indica che non deve trascorrere del tempo prima che il sistema inizi la procedura di spegnimento.
* <code>now</code> indica che non deve trascorrere del tempo prima che il sistema inizi la procedura di spegnimento.
Serve essere root o avere i permessi di sudoer (aggiungere sudo all’inizio della sintassi) affinchè il comando vada a buon fine.
Serve essere root o avere i permessi di sudoer (aggiungere sudo all’inizio della sintassi) affinché il comando vada a buon fine.
==Riavvio del sistema==
==Riavvio del sistema==
Per riavviare il PC direttamente da terminale, si può lanciare uno dei comandi seguenti:
Per riavviare il PC direttamente da terminale, si può lanciare uno dei comandi seguenti:
Riga 968: Riga 968:
</pre>
</pre>
dove
dove
* <tt>-r</tt> indica che vogliamo riavviare il sistema.
* <code>-r</code> indica che vogliamo riavviare il sistema.
* <tt>now</tt> indica che non deve trascorrere del tempo prima che il sistema inizi la procedura di riavvio.
* <code>now</code> indica che non deve trascorrere del tempo prima che il sistema inizi la procedura di riavvio.
Serve essere root o avere i permessi di sudoer (aggiungere sudo all’inizio della sintassi) affinchè il comando vada a buon fine.
Serve essere root o avere i permessi di sudoer (aggiungere sudo all’inizio della sintassi) affinché il comando vada a buon fine.
==Visualizzare data e ora del sistema==
==Visualizzare data e ora del sistema==
È una cosa un po inutile, ma alle volte può far comodo. Potete vedere data e ora del sistema semplicemente digitando:
È una cosa un po inutile, ma alle volte può far comodo. Potete vedere data e ora del sistema semplicemente digitando:
Riga 977: Riga 977:
</pre>
</pre>
==Lanciare applicazioni e programmi da terminale==
==Lanciare applicazioni e programmi da terminale==
Ora che abbiamo preso dimistichezza con i comandi principali di un terminale Linux possiamo utilizzare la seguente guida per provare a svolgere da terminale anche il nostro lavoro quotidiano. I limiti di utilizzo del terminale Linux sono dati solo dalla nostra fantasia.<br>
Ora che abbiamo preso dimestichezza con i comandi principali di un terminale Linux possiamo utilizzare la seguente guida per provare a svolgere da terminale anche il nostro lavoro quotidiano. I limiti di utilizzo del terminale Linux sono dati solo dalla nostra fantasia.<br>
Elenco programmi da terminale: http://guide.debianizzati.org/index.php/Elenco_programmi_senza_interfaccia_grafica
Elenco programmi da terminale: http://guide.debianizzati.org/index.php/Elenco_programmi_senza_interfaccia_grafica
=Bibliografia=
=Bibliografia=
6 999

contributi