Guida ai comandi da terminale: differenze tra le versioni

Nessun oggetto della modifica
Riga 972: Riga 972:


= 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 981: Riga 981:
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 987: Riga 988:
</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 993: Riga 995:
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 1 003: Riga 1 006:
</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 1 017: Riga 1 021:
* 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 1 030: Riga 1 036:
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 1 037: Riga 1 044:
</pre>
</pre>


== Gestione del File System ==
= Gestione del File System =


Se non si ha chiaro cosa sia un file system si veda prima [[http://guide.debianizzati.org/index.php/File_System | questa pagina]] introduttiva.
Se non si ha chiaro cosa sia un file system si veda prima [[http://guide.debianizzati.org/index.php/File_System | questa pagina]] introduttiva.


=== 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 1 049: Riga 1 056:
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>.


=== Connessione di nuove risorse ===
== Connessione di nuove risorse ==
{{Box|Nota| Dischi ottici, dischi rigidi, memorie usb e partizioni remote sono tutti esempi di risorse, ovvero di filesystem esterni che un utente può agganciare a quello locale della macchina in uso.  }}
{{Box|Nota| Dischi ottici, dischi rigidi, memorie usb e partizioni remote sono tutti esempi di risorse, ovvero di filesystem esterni che un utente può agganciare a quello locale della macchina in uso.  }}
L'operazione di '''montaggio''' (in inglese '''mount''') di una risorsa permette di "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''' (in inglese '''mount''') di una risorsa permette di "agganciare" un dispositivo tra quelli elencati in <code>/dev</code> a una directory del file system, per renderlo utilizzabile all'interno del sistema.<br>
Riga 1 065: Riga 1 072:
* '''/punto/montaggio''', in quale directory (che deve già esistere) sarà visibile il contenuto della risorsa montata.
* '''/punto/montaggio''', in quale directory (che deve già esistere) sarà visibile il contenuto della risorsa montata.
Di seguito alcuni esempi specifici.
Di seguito alcuni esempi specifici.
==== Montaggio di un immagine ISO ====
 
=== Montaggio di un immagine ISO ===
Il comando <code>mount</code> 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>mount -t iso9660 -o loop /cartella/immagine.iso /cartella/di/montaggio</pre>
<pre>mount -t iso9660 -o loop /cartella/immagine.iso /cartella/di/montaggio</pre>
====  Montaggio di una partizione NTFS ====
 
===  Montaggio di una partizione NTFS ===
Per montare una partizione formattata NTFS occorre che sia installato il pacchetto:
Per montare una partizione formattata NTFS occorre che sia installato il pacchetto:
<pre>
<pre>
Riga 1 082: Riga 1 091:
/dev/sdb1      /mnt/disco_ntfs      ntfs-3g rw,users,suid,umask=000 0      0
/dev/sdb1      /mnt/disco_ntfs      ntfs-3g rw,users,suid,umask=000 0      0
</pre>
</pre>
====Montaggio di una partizione NFS====
 
===Montaggio di una partizione NFS===
Si veda [http://guide.debianizzati.org/index.php/Condividere_directory_tra_macchine_GNU/Linux_con_NFS#METODO_STATICO questa pagina].
Si veda [http://guide.debianizzati.org/index.php/Condividere_directory_tra_macchine_GNU/Linux_con_NFS#METODO_STATICO questa pagina].


====Montaggio di una cartella SAMBA====
===Montaggio di una cartella SAMBA===
Si veda [http://guide.debianizzati.org/index.php/Condivisione_risorse_con_Samba#Caricare_le_risorse_remote questa pagina].
Si veda [http://guide.debianizzati.org/index.php/Condivisione_risorse_con_Samba#Caricare_le_risorse_remote questa pagina].


=== Disconnessione di una risorsa già presente ===
== Disconnessione di una risorsa già presente ==
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 1 100: Riga 1 110:
{{ 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 }}


=== Cercare le directory che occupano più spazio ===
== Cercare le directory che occupano più spazio ==
Il seguente comando permette di ricercare le directory di dimensioni più grosse all'interno del nostro filesystem. Il comando ricerca le sottodirectory a partire dalla directory corrente.
Il seguente comando permette di ricercare le directory di dimensioni più grosse all'interno del nostro filesystem. Il comando ricerca le sottodirectory a partire dalla directory corrente.
<pre>
<pre>
Riga 1 106: Riga 1 116:
</pre>
</pre>


== 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 1 122: Riga 1 133:
* <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 1 128: Riga 1 140:
</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 1 134: Riga 1 147:
</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 1 140: Riga 1 154:
</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 1 180: Riga 1 196:
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 1 194: Riga 1 211:
* <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 1 207: Riga 1 225:
* <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
= Approfondimenti =
= Approfondimenti =
=== Sitografia ===
=== Sitografia ===
2 853

contributi