Guida ai comandi da terminale: differenze tra le versioni

corretta gerarchia titoli
(corretta gerarchia titoli)
Riga 1: Riga 1:
{{Versioni compatibili|Tutte le versioni di Debian|}}
{{Versioni compatibili|Tutte le versioni di Debian|}}
=Introduzione=
== Introduzione ==
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 <code>-r</code> abbinata ad alcuni comandi. È 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. È 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 ==
==Definizione di repository==
=== Definizione di repository ===
Il repository è un archivio ordinato dove sono raccolti i pacchetti software della vostra distribuzione (siano essi pacchetti binari o sorgenti), in modo ben organizzato e costantemente aggiornato. Da questi repository è possibile installare tutto il software che vi occorre per la vostra Debian. Per ottenere più informazioni potete dirigervi qui: http://guide.debianizzati.org/index.php/Indice_Guide#Gestione_dei_Pacchetti
Il repository è un archivio ordinato dove sono raccolti i pacchetti software della vostra distribuzione (siano essi pacchetti binari o sorgenti), in modo ben organizzato e costantemente aggiornato. Da questi repository è possibile installare tutto il software che vi occorre per la vostra Debian. Per ottenere più informazioni potete dirigervi qui: http://guide.debianizzati.org/index.php/Indice_Guide#Gestione_dei_Pacchetti


==Modifica della lista dei repository==
=== Modifica della lista dei repository ===
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:
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>
Riga 24: Riga 24:
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.
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 ===
Per aggiornare Debian con gli ultimi pacchetti disponibili per la vostra versione dovrete lanciare due comandi:
Per aggiornare Debian con gli ultimi pacchetti disponibili per la vostra versione dovrete lanciare due comandi:
<pre>
<pre>
Riga 32: Riga 32:
Queste operazioni possono essere fatte solo da un sudoer o da un root.
Queste operazioni possono essere fatte solo da un sudoer o da un root.


==Installazione di un programma o di un pacchetto==
=== Installazione di un programma o di un pacchetto ===
Se vogliamo installare un programma o un pacchetto presente nei repo a vostra disposizione, ci basterà semplicemente digitare da terminale:
Se vogliamo installare un programma o un pacchetto presente nei repo a vostra disposizione, ci basterà semplicemente digitare da terminale:
<pre>
<pre>
Riga 47: Riga 47:
Il nome del programma, e la possibilità di installarlo in questo modo, dipendono dalla presenza dei pacchetti nella vostra lista repo e dal loro nome. Una lista completa dei pacchetti repo presenti nel vostro sistema la avete andando su Sistema –> Amministrazione –> Gestore pacchetti Synaptic, e per poterli installare ovviamente avrete bisogno di permessi di sudoer o di root.
Il nome del programma, e la possibilità di installarlo in questo modo, dipendono dalla presenza dei pacchetti nella vostra lista repo e dal loro nome. Una lista completa dei pacchetti repo presenti nel vostro sistema la avete andando su Sistema –> Amministrazione –> Gestore pacchetti Synaptic, e per poterli installare ovviamente avrete bisogno di permessi di sudoer o di root.
Se il vostro programma non compare nell'elenco, ma avete trovato in giro dei repository che lo includono (righe di testo), per utilizzarle dovrete integrarle nella vostra lista repo, seguite il paragrafo “Modifica della lista dei repository”.
Se il vostro programma non compare nell'elenco, ma avete trovato in giro dei repository che lo includono (righe di testo), per utilizzarle dovrete integrarle nella vostra lista repo, seguite il paragrafo “Modifica della lista dei repository”.
==Ricerca di un pacchetto==
=== Ricerca di un pacchetto ===
Volete installare un programma, ma non conoscete il nome del pacchetto con il quale è stato inserito nei repository di Debian?<br>
Volete installare un programma, ma non conoscete il nome del pacchetto con il quale è stato inserito nei repository di Debian?<br>
Il seguente comando può esservi di aiuto:
Il seguente comando può esservi di aiuto:
Riga 65: Riga 65:
</pre>
</pre>


==Disinstallazione base di un programma o di un pacchetto==
=== Disinstallazione base di un programma o di un pacchetto ===
Si utilizza lo stesso strumento visto prima per l'installazione dei pacchetti. Digitiamo quindi:
Si utilizza lo stesso strumento visto prima per l'installazione dei pacchetti. Digitiamo quindi:
<pre>
<pre>
Riga 76: Riga 76:
Questo tipo di disinstallazione disinstalla il programma, ma lascia all’interno del sistema i file di configurazione del programma. Per poter eseguire il comando di disinstallazione descritto avrete bisogno di permessi di sudoer o di root.
Questo tipo di disinstallazione disinstalla il programma, ma lascia all’interno del sistema i file di configurazione del programma. Per poter eseguire il comando di disinstallazione descritto avrete bisogno di permessi di sudoer o di root.


==Disinstallazione completa di un programma o di un pacchetto==
=== Disinstallazione completa di un programma o di un pacchetto ===
La differenza tra questa disinstallazione e quella base consiste nella liberazione completa dello spazio occupato dal programma che vogliamo rimuovere dal sistema. Con questo tipo di disinstallazione, infatti, oltre a disinstallare il programma dal sistema, cancelleremo anche i pacchetti e i relativi file di configurazione, che altrimenti non verrebbero rimossi, e che occuperebbero spazio inutile nel caso in cui non avessimo alcuna intenzione di reinstallare in futuro il programma. Digitiamo:
La differenza tra questa disinstallazione e quella base consiste nella liberazione completa dello spazio occupato dal programma che vogliamo rimuovere dal sistema. Con questo tipo di disinstallazione, infatti, oltre a disinstallare il programma dal sistema, cancelleremo anche i pacchetti e i relativi file di configurazione, che altrimenti non verrebbero rimossi, e che occuperebbero spazio inutile nel caso in cui non avessimo alcuna intenzione di reinstallare in futuro il programma. Digitiamo:
<pre>
<pre>
Riga 99: Riga 99:
Per poter eseguire il comando di disinstallazione descritto avrete bisogno di permessi di sudoer o di root.
Per poter eseguire il comando di disinstallazione descritto avrete bisogno di permessi di sudoer o di root.


==Reinstallazione di un programma o di un pacchetto==
=== Reinstallazione di un programma o di un pacchetto ===
Se abbiamo un programma già installato nel sistema, ma per un qualsiasi motivo volessimo reinstallarlo, il comando è:
Se abbiamo un programma già installato nel sistema, ma per un qualsiasi motivo volessimo reinstallarlo, il comando è:
<pre>
<pre>
Riga 109: Riga 109:
</pre>
</pre>
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 <code>apt</code>, digitare:
Per rimuovere completamente i pacchetti già disinstallati che, per qualche motivo, non riuscite a eliminare con <code>apt</code>, digitare:
<pre>
<pre>
Riga 118: Riga 118:
dpkg -P vlc
dpkg -P vlc
</pre>
</pre>
==Pulizia della cache dei pacchetti==
=== Pulizia della cache dei pacchetti ===
Per ripulire la cache dei pacchetti scaricati si utilizzano i comandi:
Per ripulire la cache dei pacchetti scaricati si utilizzano i comandi:
<pre>
<pre>
Riga 129: Riga 129:
Per poter eseguire il comando avrete bisogno di permessi di sudoer o di root.
Per poter eseguire il comando avrete bisogno di permessi di sudoer o di root.


==Installazione dei sorgenti dei pacchetti==
=== Installazione dei sorgenti dei pacchetti ===
A volte può esserci utile il download di codici sorgente, magari per correggere da noi una compilazione errata, o ricompilarlo reindirizzando delle dipendenze, o qualsiasi altro motivo.
A volte può esserci utile il download di codici sorgente, magari per correggere da noi una compilazione errata, o ricompilarlo reindirizzando delle dipendenze, o qualsiasi altro motivo.
Possiamo farlo da aptitude, semplicemente con il comando:
Possiamo farlo da aptitude, semplicemente con il comando:
Riga 141: Riga 141:
Non sono richiesti particolari permessi, per cui potete farlo anche da semplici user, il risultato non cambia.
Non sono richiesti particolari permessi, per cui potete farlo anche da semplici user, il risultato non cambia.


=Operazioni con programmi non presenti nei repository=
== Operazioni con programmi non presenti nei repository ==
==Premessa==
=== Premessa ===
A mio parere, prima di procedere con l'installazione di un programma, è sempre bene verificare attentamente che non sia già presente nei repository ufficiali o in qualche repository aggiuntivo messo a disposizione, ad esempio, dagli sviluppatori del programma stesso. Installando da repository, infatti, si mantiene il sistema pulito e, soprattutto, si mantiene un archivio unico e completo di tutti i programmi installati, con la possibilità di rimuoverli utilizzando pochi strumenti nativi di Debian.
A mio parere, prima di procedere con l'installazione di un programma, è sempre bene verificare attentamente che non sia già presente nei repository ufficiali o in qualche repository aggiuntivo messo a disposizione, ad esempio, dagli sviluppatori del programma stesso. Installando da repository, infatti, si mantiene il sistema pulito e, soprattutto, si mantiene un archivio unico e completo di tutti i programmi installati, con la possibilità di rimuoverli utilizzando pochi strumenti nativi di Debian.
==Esecuzione di uno script==
=== Esecuzione di uno script ===
Spesso i programmi scaricati e scompattati contengono al loro interno uno script, da lanciare per effettuare l'installazione vera e propria del programma. Per lanciare questo tipo di installer si eseguano i comandi:
Spesso i programmi scaricati e scompattati contengono al loro interno uno script, da lanciare per effettuare l'installazione vera e propria del programma. Per lanciare questo tipo di installer si eseguano i comandi:
<pre>
<pre>
Riga 153: Riga 153:
./installer.sh
./installer.sh
</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 <code>chmod</code>.<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 <code>mio_programma.bin</code> dobbiamo compiere le seguenti operazioni.<br>
Se, per esempio, abbiamo scaricato il programma <code>mio_programma.bin</code> dobbiamo compiere le seguenti operazioni.<br>
Riga 165: Riga 165:
</pre>
</pre>


==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 è <code>alien</code>. 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>
Riga 175: Riga 175:
</pre>
</pre>
Avrete ottenuto un file .deb, che potrete utilizzare seguendo le istruzioni del paragrafo successivo.
Avrete ottenuto un file .deb, che potrete utilizzare seguendo le istruzioni del paragrafo successivo.
==Installazione di un file .deb==
=== Installazione di un file .deb ===
Se abbiamo scaricato o creato un installer con estensione .deb (che, come il nome suggerisce, è stato creato per Debian e sistemi derivati come Ubuntu), per installarlo basterà dirigerci nella directory dove risiede il file e digitare:
Se abbiamo scaricato o creato un installer con estensione .deb (che, come il nome suggerisce, è stato creato per Debian e sistemi derivati come Ubuntu), per installarlo basterà dirigerci nella directory dove risiede il file e digitare:
<pre>
<pre>
Riga 181: Riga 181:
</pre>
</pre>
Per disinstallarlo possiamo normalmente seguire una delle strade per la disinstallazione viste in precedenza, utilizzando <code>apt</code>.
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 <code>tar</code>. 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>
Riga 202: Riga 202:
Attenzione ai permessi: se lanciate il comando tar da sudoer o da root, i permessi dei file decompressi saranno attribuiti a quell’utenza.
Attenzione ai permessi: se lanciate il comando tar da sudoer o da root, i permessi dei file decompressi saranno attribuiti a quell’utenza.


==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 <code>tar</code>. 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>
Riga 224: Riga 224:
Attenzione ai permessi: se lanciate il comando tar da sudoer o da root, i permessi dei file decompressi saranno attribuiti a quell’utenza.
Attenzione ai permessi: se lanciate il comando tar da sudoer o da root, i permessi dei file decompressi saranno attribuiti a quell’utenza.


==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 <code>tar</code>. 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>
Riga 246: Riga 246:
Attenzione ai permessi: se lanciate il comando tar da sudoer o da root, i permessi dei file decompressi saranno attribuiti a quell’utenza.
Attenzione ai permessi: se lanciate il comando tar da sudoer o da root, i permessi dei file decompressi saranno attribuiti a quell’utenza.


==Scompattare un file .rar==
=== Scompattare un file .rar ===
Se siamo in possesso di un archivio .rar , per decomprimerlo avremo bisogno dello strumento <code>unrar</code>. 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>
Riga 258: Riga 258:
Attenzione ai permessi: se lanciate il comando unrar da sudoer o da root, i permessi dei file decompressi saranno attribuiti a quell’utenza.
Attenzione ai permessi: se lanciate il comando unrar da sudoer o da root, i permessi dei file decompressi saranno attribuiti a quell’utenza.


==Scompattare un file .zip==
=== Scompattare un file .zip ===
Se siamo in possesso di un file .zip, possiamo decomprimerlo con lo strumento “<code>unzip</code>. 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>
Riga 270: Riga 270:
Attenzione ai permessi: se lanciate il comando unrar da sudoer o da root, i permessi dei file decompressi saranno attribuiti a quell’utenza.
Attenzione ai permessi: se lanciate il comando unrar da sudoer o da root, i permessi dei file decompressi saranno attribuiti a quell’utenza.


=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:
Riga 295: Riga 295:
</pre>
</pre>


==Visualizzare il contenuto di una directory==
=== Visualizzare il contenuto di una directory ===
Se avete bisogno di vedere cosa è presente in una cartella, tutto quello che dovrete fare sarà entrare nella cartella che volete esaminare e lanciare:
Se avete bisogno di vedere cosa è presente in una cartella, tutto quello che dovrete fare sarà entrare nella cartella che volete esaminare e lanciare:
<pre>
<pre>
Riga 318: Riga 318:
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... )
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 ===
Per creare una directory da terminale, dobbiamo spostarci dentro la directory nella quale desideriamo creare la nuova directory, e digitare:
Per creare una directory da terminale, dobbiamo spostarci dentro la directory nella quale desideriamo creare la nuova directory, e digitare:
<pre>
<pre>
Riga 327: Riga 327:
mkdir cartella/sottocartella
mkdir cartella/sottocartella
</pre>
</pre>
==Rinominare una directory==
=== Rinominare una directory ===
Rinominare una cartella da terminale è semplice. Se ad esempio dobbiamo assegnare alla directory “cartella” il nuovo nome “directory”, dobbiamo portarci nella directory genitore e scrivere:
Rinominare una cartella da terminale è semplice. Se ad esempio dobbiamo assegnare alla directory “cartella” il nuovo nome “directory”, dobbiamo portarci nella directory genitore e scrivere:
<pre>
<pre>
mv cartella/ directory/
mv cartella/ directory/
</pre>
</pre>
==Spostare (tagliare ed incollare) una directory==
=== Spostare (tagliare ed incollare) una directory ===
Spostare (tagliare ed incollare) una directory da terminale richiede un solo semplice comando. Supponiamo di avere la seguente struttura:
Spostare (tagliare ed incollare) una directory da terminale richiede un solo semplice comando. Supponiamo di avere la seguente struttura:
<pre>
<pre>
Riga 354: Riga 354:
</pre>
</pre>


==Copiare una directory==
=== Copiare una directory ===
Copiare ed incollare una directory da terminale richiede un solo semplice comando. Supponiamo di avere la seguente struttura:
Copiare ed incollare una directory da terminale richiede un solo semplice comando. Supponiamo di avere la seguente struttura:
<pre>
<pre>
Riga 376: Riga 376:
</pre>
</pre>
L'opzione <code>-r</code> 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:
<pre>
<pre>
Riga 385: Riga 385:
rmdir: failed to remove `cartella’: La directory non è vuota
rmdir: failed to remove `cartella’: La directory non è vuota
</pre>
</pre>
==Cancellare una directory non vuota==
=== Cancellare una directory non vuota ===
Volendo cancellare la directory non vuota “cartella” dovremo digitare:
Volendo cancellare la directory non vuota “cartella” dovremo digitare:
<pre>
<pre>
Riga 391: Riga 391:
</pre>
</pre>
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 file 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 file o directory di sistema.
==Visualizzare la struttura di una directory==
=== Visualizzare la struttura di una directory ===
<code>tree</code> è 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>
Riga 409: Riga 409:
</pre>
</pre>


==Rinominare un file==
=== Rinominare un file ===
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:
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 <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:
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>
Riga 420: Riga 420:
</pre>
</pre>


==Copiare un file==
=== Copiare un file ===
Se intendiamo duplicare un file, dobbiamo usare il comando <code>cp</code>. 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:
Riga 434: Riga 434:
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 <code>rm</code> 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:
Riga 440: Riga 440:
rm testo.txt
rm testo.txt
</pre>
</pre>
==Cancellare definitivamente un file==
=== Cancellare definitivamente un file ===
<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 è:
<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>
Riga 454: Riga 454:
* <code>-x, --exact</code>: 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
* <code>-z, --zero</code>: 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 <code>cat</code> (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>
Riga 463: Riga 463:
cat filename.txt | less
cat filename.txt | less
</pre>
</pre>
==Confrontare due files==
=== Confrontare due files ===
<code>diff</code> è 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>
Riga 477: Riga 477:
* <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).
* <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 ===
<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 è:
<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>
Riga 492: Riga 492:
* <code>-d, --date=orario</code>: 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 file==
=== Manipolazione di file ===
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>
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>
<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 è:
<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 è:
Riga 504: Riga 504:
* <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
* <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
* <code>tail</code>, 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 <code>/home/ferdy/prova.txt</code>, dobbiamo dare il comando:
Se vogliamo mostrare il contenuto del file di testo <code>/home/ferdy/prova.txt</code>, dobbiamo dare il comando:
<pre>
<pre>
Riga 531: Riga 531:
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>.
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 <code>ln</code>.
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>
Riga 542: Riga 542:
Digitate ln --help per avere la lista delle opzioni e per approfondire i concetti di ''hardlink'' e ''symlink''.
Digitate ln --help per avere la lista delle opzioni e per approfondire i concetti di ''hardlink'' e ''symlink''.


==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 è <code>chmod</code>. 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:
Riga 579: Riga 579:
   x = indica il permesso di esecuzione.
   x = indica il permesso di esecuzione.


==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 <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>
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 è:
Riga 585: Riga 585:
chown [opzioni] utente[:gruppo] file...
chown [opzioni] utente[:gruppo] file...
</pre>
</pre>
===Esempi===
==== Esempi ====
* Cambiare il proprietario del file <code>prova.txt</code>
* Cambiare il proprietario del file <code>prova.txt</code>
<pre>
<pre>
Riga 598: Riga 598:
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 <code>chgrp</code>. 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>
Riga 608: Riga 608:
</pre>
</pre>


==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 <code>locate</code> e possiamo installarlo normalmente digitando:
Il motore di ricerca da terminale si chiama <code>locate</code> e possiamo installarlo normalmente digitando:
Riga 622: Riga 622:
locate testo.txt
locate testo.txt
</pre>
</pre>
==Scaricare un file da Internet==
=== Scaricare un file da Internet ===
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:
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>
Riga 629: Riga 629:
Il file sarà messo in download e, una volta scaricato, piazzato nella directory in cui ci trovavamo al momento del lancio del comando.
Il file sarà messo in download e, una volta scaricato, piazzato nella directory in cui ci trovavamo al momento del lancio del comando.


=Gestione Utenti=
== Gestione Utenti ==
==Definizione di root e differenze con il normale utente==
=== Definizione di root e differenze con il normale utente ===
Cos’è '''root'''?<br>
Cos’è '''root'''?<br>
Nei sistemi operativi di tipo Unix si indica con root l’utente dotato di massimi privilegi, cioè l’amministratore di sistema, detto anche super utente o superuser.<br>
Nei sistemi operativi di tipo Unix si indica con root l’utente dotato di massimi privilegi, cioè l’amministratore di sistema, detto anche super utente o superuser.<br>
Riga 636: Riga 636:
L’utente root può fare tutto ciò che si desidera sul sistema: questo può essere sia un vantaggio sia uno svantaggio nello stesso momento. Viene infatti universalmente ritenuto pericoloso compiere le normali sessioni di lavoro in qualità di root: agire come utente normale e come utente root solo per amministrazione del sistema permette di minimizzare il rischio di effettuare operazioni pericolose come cancellare file essenziali per il sistema operativo.<br>
L’utente root può fare tutto ciò che si desidera sul sistema: questo può essere sia un vantaggio sia uno svantaggio nello stesso momento. Viene infatti universalmente ritenuto pericoloso compiere le normali sessioni di lavoro in qualità di root: agire come utente normale e come utente root solo per amministrazione del sistema permette di minimizzare il rischio di effettuare operazioni pericolose come cancellare file essenziali per il sistema operativo.<br>
Fonte: Wikipedia
Fonte: Wikipedia
==Accesso come root==
=== Accesso come root ===
Per poter accedere come utente root nel sistema, ed avere quindi la possibilità di svolgere ogni operazione nel sistema, basterà digitare da terminale:
Per poter accedere come utente root nel sistema, ed avere quindi la possibilità di svolgere ogni operazione nel sistema, basterà digitare da terminale:
<pre>
<pre>
Riga 653: Riga 653:
''(che identifica l'utente root)''
''(che identifica l'utente root)''


==Disconnessione da root==
=== Disconnessione da root ===
''(per tornare utente con permessi normali sulla stessa finestra di terminale)''<br>
''(per tornare utente con permessi normali sulla stessa finestra di terminale)''<br>
Se siete diventati root in una finestra di terminale, e volete tornare user senza chiudere la finestra o aprirne un’altra, basterà digitare:
Se siete diventati root in una finestra di terminale, e volete tornare user senza chiudere la finestra o aprirne un’altra, basterà digitare:
Riga 660: Riga 660:
</pre>
</pre>
Il comando exit può servire anche per chiudere la finestra del terminale.
Il comando exit può servire anche per chiudere la finestra del terminale.
==Creazione di un nuovo utente==
=== Creazione di un nuovo utente ===
Per creare un nuovo utente da terminale, è sufficiente diventare root, e digitare il comando:
Per creare un nuovo utente da terminale, è sufficiente diventare root, e digitare il comando:
<pre>
<pre>
Riga 666: Riga 666:
</pre>
</pre>
Al posto di “nomeutente”, naturalmente, va scritto il nome dell’utente che volete creare. Saranno richieste la password che si vuole assegnare all’utente, e in più altre piccole informazioni facoltative , come Nome Completo, Stanza N° (?!), Numeri telefonici.
Al posto di “nomeutente”, naturalmente, va scritto il nome dell’utente che volete creare. Saranno richieste la password che si vuole assegnare all’utente, e in più altre piccole informazioni facoltative , come Nome Completo, Stanza N° (?!), Numeri telefonici.
==Cancellazione di un utente==
=== Cancellazione di un utente ===
Per cancellare un utente registrato nel sistema, aperto il terminale e fatto accesso come utenti root, si digiti:
Per cancellare un utente registrato nel sistema, aperto il terminale e fatto accesso come utenti root, si digiti:
<pre>
<pre>
Riga 672: Riga 672:
</pre>
</pre>
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 <code>passwd</code>. 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>
Riga 678: Riga 678:
</pre>
</pre>
mettendo il nome dell’utente a cui vogliamo settare la password al posto di “nomeutente”. Con questo metodo è possibile cambiare non solo le password degli utenti, ma anche quella di root.
mettendo il nome dell’utente a cui vogliamo settare la password al posto di “nomeutente”. Con questo metodo è possibile cambiare non solo le password degli utenti, ma anche quella di root.
=Compiere operazioni con sudo=
== Compiere operazioni con sudo ==
==Definizione di sudo==
=== Definizione di sudo ===
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>
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 <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>
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 <code>sudo</code> 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
</pre>
</pre>
==Configurazione di sudo==
=== Configurazione di sudo ===
Per aggiungere un utente al gruppo di sudoers, è sufficiente loggarsi da root e lanciare il comando:
Per aggiungere un utente al gruppo di sudoers, è sufficiente loggarsi da root e lanciare il comando:
<pre>
<pre>
Riga 728: Riga 728:
</pre>
</pre>
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.
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 ===
Da terminale abbiamo anche la possibilità di avere la panoramica sui processi in uso dal sistema. Il comando che ci occorre è:
Da terminale abbiamo anche la possibilità di avere la panoramica sui processi in uso dal sistema. Il comando che ci occorre è:
<pre>
<pre>
Riga 738: Riga 738:
pstree
pstree
</pre>
</pre>
==Forzare la chiusura di un processo==
=== Forzare la chiusura di un processo ===
Nel caso in cui vi trovaste con un programma andato in crash, che vi consuma RAM e che non accenna a chiudersi con una normale chiusura, potrete forzarne l’uscita. Il comando che serve per farlo da terminale è:
Nel caso in cui vi trovaste con un programma andato in crash, che vi consuma RAM e che non accenna a chiudersi con una normale chiusura, potrete forzarne l’uscita. Il comando che serve per farlo da terminale è:
<pre>
<pre>
Riga 744: Riga 744:
</pre>
</pre>
Sostituendo naturalmente la voce “processo” con il nome del responsabile del blocco che volete killare.
Sostituendo naturalmente la voce “processo” con il nome del responsabile del blocco che volete killare.
==Visualizzare in ordine cronologico tutti i comandi digitati==
=== Visualizzare in ordine cronologico tutti i comandi digitati ===
Avete notato che sul terminale, premendo il tasto direzionale in su sulla tastiera vedrete il comando lanciato in precedenza? E che più volte cliccate, più comandi precedenti vengono mostrati?<br>
Avete notato che sul terminale, premendo il tasto direzionale in su sulla tastiera vedrete il comando lanciato in precedenza? E che più volte cliccate, più comandi precedenti vengono mostrati?<br>
C’è un metodo più comodo che sfrutta questo sistema di ricordo cronologico dei comandi lanciati:
C’è un metodo più comodo che sfrutta questo sistema di ricordo cronologico dei comandi lanciati:
Riga 750: Riga 750:
history
history
</pre>
</pre>
==Visualizzare le pagine di manuale==
=== Visualizzare le pagine di manuale ===
Le man page sono documenti che descrivono il funzionamento e la sintassi di programmi, funzioni e particolari file che compongono il sistema operativo. La quasi totalità dei comandi a disposizione hanno la propria man page che può essere visualizzata mediante il comando man, utilizzando la seguente sintassi:
Le man page sono documenti che descrivono il funzionamento e la sintassi di programmi, funzioni e particolari file che compongono il sistema operativo. La quasi totalità dei comandi a disposizione hanno la propria man page che può essere visualizzata mediante il comando man, utilizzando la seguente sintassi:
<pre>
<pre>
Riga 760: Riga 760:
</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 <code>q</code>.
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
<pre>
<pre>
Riga 774: Riga 774:
* Sezione 7 convenzioni, pacchetti macro, etc. (es.: nroff, ascii)
* Sezione 7 convenzioni, pacchetti macro, etc. (es.: nroff, ascii)
* Sezione 8 amministrazione di sistema (soltanto l'introduzione)
* Sezione 8 amministrazione di sistema (soltanto l'introduzione)
==Modificare la priorità di un processo==
=== Modificare la priorità di un processo ===
<code>'''nice'''</code> è un comando dei sistemi operativi Unix e Unix-like, e più in generale dei sistemi POSIX[1], che esegue un altro comando modificando il suo valore di ''nice''.<br/>
<code>'''nice'''</code> è un comando dei sistemi operativi Unix e Unix-like, e più in generale dei sistemi POSIX[1], che esegue un altro comando modificando il suo valore di ''nice''.<br/>
Il valore di ''nice'' è un attributo numerico di ciascun processo dei sistemi Unix e Unix-like che è usato dallo scheduler per stabilire quanto tempo di CPU dedicare all'esecuzione del processo. A parità di priorità e di politica di schedulazione, i processi che hanno valori di ''nice'' maggiori ottengono in proporzione meno tempo di CPU rispetto a processi che hanno valori di ''nice'' minori, e quindi la loro esecuzione procede più lentamente, favorendo gli altri processi. L'idea generale è che un utente si comporti in maniera cortese (la traduzione dalla lingua inglese del termine nice è appunto cortese, simpatico) nei confronti degli altri utenti quando avvia elaborazioni particolarmente lunghe ed intense, avviandole con un valore di nice elevato in modo da non rallentare eccessivamente l'esecuzione dei processi degli altri utenti.<br>/
Il valore di ''nice'' è un attributo numerico di ciascun processo dei sistemi Unix e Unix-like che è usato dallo scheduler per stabilire quanto tempo di CPU dedicare all'esecuzione del processo. A parità di priorità e di politica di schedulazione, i processi che hanno valori di ''nice'' maggiori ottengono in proporzione meno tempo di CPU rispetto a processi che hanno valori di ''nice'' minori, e quindi la loro esecuzione procede più lentamente, favorendo gli altri processi. L'idea generale è che un utente si comporti in maniera cortese (la traduzione dalla lingua inglese del termine nice è appunto cortese, simpatico) nei confronti degli altri utenti quando avvia elaborazioni particolarmente lunghe ed intense, avviandole con un valore di nice elevato in modo da non rallentare eccessivamente l'esecuzione dei processi degli altri utenti.<br>/
<code>nice</code> è anche il nome di una chiamata di sistema definita dallo standard POSIX che modifica il valore di ''nice'' del processo che la invoca. Di fatto il comando <code>nice</code> opera invocando l'omonima chiamata di sistema. Per diminuire il valore di ''nice'' è necessario disporre dei privilegi dell'amministratore (root), mentre ciò non è necessario per aumentarlo. Tipicamente è possibile diminuire il valore di ''nice'' fino a 20 unità rispetto al valore predefinito, o aumentarlo fino a 19 unità: è possibile specificare scostamenti più ampi, ma essi sono automaticamente ricondotti entro i limiti sopra citati.
<code>nice</code> è anche il nome di una chiamata di sistema definita dallo standard POSIX che modifica il valore di ''nice'' del processo che la invoca. Di fatto il comando <code>nice</code> opera invocando l'omonima chiamata di sistema. Per diminuire il valore di ''nice'' è necessario disporre dei privilegi dell'amministratore (root), mentre ciò non è necessario per aumentarlo. Tipicamente è possibile diminuire il valore di ''nice'' fino a 20 unità rispetto al valore predefinito, o aumentarlo fino a 19 unità: è possibile specificare scostamenti più ampi, ma essi sono automaticamente ricondotti entro i limiti sopra citati.
===Uso===
==== Uso ====
La sintassi generale di nice è la seguente:
La sintassi generale di nice è la seguente:
<pre>
<pre>
Riga 787: Riga 787:
Tra le opzioni significative vi sono:
Tra le opzioni significative vi sono:
* <code>-n delta</code>: somma algebricamente il valore ''delta'' al valore di ''nice'', in modo da aumentarlo o diminuirlo; ''delta'' può essere negativo, in modo da privilegiare il programma rispetto agli altri, ma in tal caso occorre disporre dei privilegi dell'amministratore (root). Se l'opzione <code>-n</code> non è specificata, il comportamento predefinito prevede di aggiungere 10 al valore di ''nice'';
* <code>-n delta</code>: somma algebricamente il valore ''delta'' al valore di ''nice'', in modo da aumentarlo o diminuirlo; ''delta'' può essere negativo, in modo da privilegiare il programma rispetto agli altri, ma in tal caso occorre disporre dei privilegi dell'amministratore (root). Se l'opzione <code>-n</code> non è specificata, il comportamento predefinito prevede di aggiungere 10 al valore di ''nice'';
===Esempi===
==== Esempi ====
Avvia parallelamente due copie del programma <code>factor</code>, ciascuna delle quali calcola i fattori primi del numero 4611686018427387903, misurando il tempo di esecuzione tramite il comando <code>time</code>: la prima copia viene eseguita con un valore di ''nice'' elevato (aumentato di 20 unità rispetto al normale), mentre la seconda usa il valore di ''nice'' predefinito. Entrambe le copie impiegano lo stesso tempo di CPU per effettuare il calcolo, ma la prima copia è svantaggiata e (su un sistema con una sola CPU) completa il suo calcolo ben dopo la seconda:
Avvia parallelamente due copie del programma <code>factor</code>, ciascuna delle quali calcola i fattori primi del numero 4611686018427387903, misurando il tempo di esecuzione tramite il comando <code>time</code>: la prima copia viene eseguita con un valore di ''nice'' elevato (aumentato di 20 unità rispetto al normale), mentre la seconda usa il valore di ''nice'' predefinito. Entrambe le copie impiegano lo stesso tempo di CPU per effettuare il calcolo, ma la prima copia è svantaggiata e (su un sistema con una sola CPU) completa il suo calcolo ben dopo la seconda:
<pre>
<pre>
Riga 794: Riga 794:
</pre>
</pre>


=Gestione del File System=
== Gestione del File System ==
==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:
* <code>'''hdX'''</code> se si tratta di un disco IDE
* <code>'''hdX'''</code> se si tratta di un disco IDE
Riga 810: Riga 810:
* <code>/dev/hdc5</code>
* <code>/dev/hdc5</code>


==Lista dei File System montati==
=== Lista dei File System montati ===
Se si avesse l’esigenza di conoscere i File System montati nel sistema, utile per sapere come sono allocati in /dev, che tipo di permessi di lettura e scrittura si hanno in essi, e così via, si può semplicemente lanciare da qualunque utente il comando:
Se si avesse l’esigenza di conoscere i File System montati nel sistema, utile per sapere come sono allocati in /dev, che tipo di permessi di lettura e scrittura si hanno in essi, e così via, si può semplicemente lanciare da qualunque utente il comando:
<pre>
<pre>
Riga 818: Riga 818:
Il file che dice a Linux quali dispositivi vanno montati all'avvio del sistema e dove vanno montati è <code>/etc/fstab</code>.
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:
* <code>A:</code> per il floppy
* <code>A:</code> per il floppy
Riga 862: Riga 862:
</pre>
</pre>


==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 <code>/dev</code> 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 <code>/dev/hdd1</code> e se volessimo renderlo raggiungibile sotto la directory <code>/mnt</code>, 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:
Riga 877: Riga 877:
</pre>
</pre>


==Smontaggio di dischi==
=== Smontaggio di dischi ===
Se volessimo al contrario "sganciare" un disco dal nostro sistema, ci servirà il comando:
Se volessimo al contrario "sganciare" un disco dal nostro sistema, ci servirà il comando:
<pre>
<pre>
Riga 889: Riga 889:
{{ Warningbox | State attenti a '''non''' eseguire lo smontaggio di dischi di sistema o potreste rendere inutilizzabile il vostro PC }}
{{ Warningbox | State attenti a '''non''' eseguire lo smontaggio di dischi di sistema o potreste rendere inutilizzabile il vostro PC }}


=Gestione dell'Hardware=
== Gestione dell'Hardware ==
==Ricavare informazioni sul sistema==
=== Ricavare informazioni sul sistema ===
Il comando <code>uname</code> 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>
Riga 905: Riga 905:
* <code>-o</code>: Sistema Operativo
* <code>-o</code>: Sistema Operativo
* <code>-a</code>: 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:
<pre>
<pre>
Riga 911: Riga 911:
</pre>
</pre>
Avremo la lista delle porte USB nel nostro PC, e in caso di loro occupazione avremo nella riga della porta USB occupata il nome della periferica connessa, solitamente composto da marca e modello della stessa.
Avremo la lista delle porte USB nel nostro PC, e in caso di loro occupazione avremo nella riga della porta USB occupata il nome della periferica connessa, solitamente composto da marca e modello della stessa.
==Lista delle schede PCI montate==
=== Lista delle schede PCI montate ===
Quando abbiamo bisogno di venire a conoscenza delle periferiche PCI collegate al sistema (utile, spesso, per sapere se in qualche modo il nostro sistema ha riconosciuto una determinata periferica), possiamo lanciare, da qualsiasi posizione, il seguente comando:
Quando abbiamo bisogno di venire a conoscenza delle periferiche PCI collegate al sistema (utile, spesso, per sapere se in qualche modo il nostro sistema ha riconosciuto una determinata periferica), possiamo lanciare, da qualsiasi posizione, il seguente comando:
<pre>
<pre>
Riga 917: Riga 917:
</pre>
</pre>
Avremo la lista delle schede PCI collegate, inclusa la scheda video.
Avremo la lista delle schede PCI collegate, inclusa la scheda video.
==Visualizzare lo spazio libero sui dischi==
=== Visualizzare lo spazio libero sui dischi ===
Se vogliamo avere una veloce panoramica dello spazio libero di tutti i File System montati ci basta utilizzare il comando:
Se vogliamo avere una veloce panoramica dello spazio libero di tutti i File System montati ci basta utilizzare il comando:
<pre>
<pre>
Riga 923: Riga 923:
</pre>
</pre>
L'opzione <code>-h</code> 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:
<pre>
<pre>
free
free
</pre>
</pre>
==Visualizzare l'utilizzo delle risorse del sistema==
=== Visualizzare l'utilizzo delle risorse del sistema ===
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:
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>
Riga 963: Riga 963:
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.
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 ==
==Arresto del sistema==
=== Arresto del sistema ===
Per spegnere il PC direttamente da terminale, si può lanciare uno dei comandi seguenti:
Per spegnere il PC direttamente da terminale, si può lanciare uno dei comandi seguenti:
<pre>
<pre>
Riga 977: Riga 977:
* <code>now</code> 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:
<pre>
<pre>
Riga 990: Riga 990:
* <code>now</code> 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:
<pre>
<pre>
date
date
</pre>
</pre>
==Lanciare applicazioni e programmi da terminale==
=== Lanciare applicazioni e programmi da terminale ===
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>
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 ==
http://vicsteele.wordpress.com/comandi/<br>
http://vicsteele.wordpress.com/comandi/<br>
http://linuxpedia.netsons.org<br>
http://linuxpedia.netsons.org<br>
1 508

contributi