Guida ai comandi da terminale: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
m (riverificata)
 
(119 versioni intermedie di 7 utenti non mostrate)
Riga 1: Riga 1:
=Introduzione=
{{Versioni compatibili}}
== 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 <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.}}
{{Cautionbox | 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.}}
== [[Guida ai comandi da terminale - Gestione utenti e gruppi|Gestione utenti e gruppi]] ==
:Viene spiegato cosa sono i gruppi e gli utenti di sistema oltre al ruolo svolto dal superutente ([[root]]), i cui [[privilegi di amministrazione|privilegi]] sono richiesti per svolgere attività di amministrazione.
== [[Guida ai comandi da terminale - Gestione di repository e pacchetti|Gestione di repository e pacchetti]] ==
:Vengono descritte le operazioni necessarie alla gestione delle fonti da cui prelevare i pacchetto ([[repository]]) e i comandi per aggiornare il sistema oppure per installare, aggiornare, rimuovere o cercare un singolo [[pacchetto]].
== [[Guida ai comandi da terminale - Operazioni con programmi non presenti nei repository|Operazioni con programmi non presenti nei repository]] ==
:Come comportarsi nel casi in cui si abbia la necessità di installare sul proprio sistema un programma non prelevabile (o perché rimosso o perché non ancora introdotto) dai repository di Debian.
== [[Guida ai comandi da terminale - Gestione di file e directory|Gestione di file e directory]] ==
:È la parte della guida che descrive come compiere operazioni di base sui file e le directory come ad esempio la copia, lo spostamento, la rimozione, la creazione, la ridenominazione o la modifica dei loro attributi (e molto altro).
== [[Guida ai comandi da terminale - Compiere operazioni con sudo|Compiere operazioni con sudo]] ==
:Cos'è e come funziona <code>sudo</code>, una possibile alternativa all'uso del superutente ''root''.
== [[Guida ai comandi da terminale - Gestione del sistema|Gestione del sistema]] ==
:Alcuni utili strumenti con cui interfacciarsi con il sistema.
== [[Guida ai comandi da terminale - Gestione del File System|Gestione del File System]] ==
:Il filesystem di Debian: come montare o smontare manualmente periferiche o partizioni.
== [[Guida ai comandi da terminale - Gestione dell'hardware|Gestione dell'hardware]] ==
:I comandi più utili con cui ottenere informazioni sull'hardware presente sulla propria macchina.
== [[Guida ai comandi da terminale - Varie e approfondimenti|Varie e approfondimenti]] ==
:Tutto ciò che non è stato incluso nelle pagine precedenti con vari link e riferimenti a risorse utili per approfondire gli argomenti di questa guida.


=Gestione di repository e pacchetti=
{{Autori
==Definizione di repository==
|Autore=[[Utente:Ferdybassi|Ferdybassi]] 15:14, 22 dic 2009 (CET)
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
|Verificata_da=
: [[Utente:HAL 9000|HAL 9000]] 18:02, 19 ott 2019 (CEST)
|Numero_revisori=1
}}


==Modifica della lista dei repository==
[[Categoria:Shell]][[Categoria:Programmi da terminale]]
La lista dei repository configurati per il vostro sistema si trova nella directory <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:
<pre>
gedit /etc/apt/sources.list
</pre>
Se vogliamo aprirlo con Nano (editor di testo su console) digiteremo:
<pre>
nano /etc/apt/sources.list
</pre>
Con Vim (altro editor di testo per console):
<pre>
vim /etc/apt/sources.list
</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.
==Aggiornamento del sistema operativo==
Per aggiornare Debian con gli ultimi pacchetti disponibili per la vostra versione dovrete lanciare due comandi:
<pre>
apt-get update
apt-get upgrade
</pre>
Queste operazioni possono essere fatte solo da un sudoer o da un root.
 
==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:
<pre>
apt-get install programma
</pre>
oppure
<pre>
aptitude install programma
</pre>
Se vogliamo installare, ad esempio, VLC, digitiamo:
<pre>
apt-get install vlc
</pre>
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 repo”.
==Disinstallazione base di un programma o di un pacchetto==
Si utilizza lo stesso strumento visto prima per l'installazione dei pacchetti. Digitiamo quindi:
<pre>
apt-get remove programma
</pre>
Se vogliamo rimuovere VLC:
<pre>
apt-get remove vlc
</pre>
Questo tipo di disinstallazione disinstalla il programma, ma lascia all’interno del sistema i files 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==
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 files 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>
apt-get remove --purge programma
</pre>
Oppure:
<pre>
apt-get purge programma
</pre>
Oppure:
<pre>
aptitude purge programma
</pre>
Se vogliamo rimuovere VLC:
<pre>
apt-get remove --purge vlc
</pre>
O in alternativa:
<pre>
apt-get purge vlc
</pre>
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==
Se abbiamo un programma già installato nel sistema, ma per un qualsiasi motivo volessimo reinstallarlo, il comando è:
<pre>
apt-get install --reinstall programma
</pre>
Se vogliamo reinstallare VLC:
<pre>
apt-get install --reinstall vlc
</pre>
Per poter eseguire il comando di reinstallazione descritto avrete bisogno di permessi di sudoer o di root.
==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:
<pre>
dpkg -P programma
</pre>
Se volessimo “purgare” VLC:
<pre>
dpkg -P vlc
</pre>
==Pulizia della cache dei pacchetti==
Per ripulire la cache dei pacchetti scaricati si utilizzano i comandi:
<pre>
apt-get clean
</pre>
O anche:
<pre>
apt-get autoclean
</pre>
Per poter eseguire il comando avrete bisogno di permessi di sudoer o di root.
 
==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.
Possiamo farlo da aptitude, semplicemente con il comando:
<pre>
apt-get source programma
</pre>
Se volessimo ottenere i source di VLC:
<pre>
apt-get source vlc
</pre>
Non sono richiesti particolari permessi, per cui potete farlo anche da semplici user, il risultato non cambia.
 
=Operazioni con programmi non presenti nei repository=
==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.
==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:
<pre>
chmod +x installer.sh
</pre>
e successivamente
<pre>
./installer.sh
</pre>
==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, per esempio, abbiamo scaricato il programma mio_programma.bin dobbiamo compere 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:
<pre>
chmod +x mio_programma.bin
</pre>
e successivamente
<pre>
./mio_programma.bin
</pre>
 
==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:
<pre>
apt-get install alien
</pre>
Successivamente, dopo esserci diretti da terminale nella cartella in cui è presente il file .rpm scaricato, lanciamo:
<pre>
alien -k nomefile.rpm
</pre>
Avrete ottenuto un file .deb, che potrete utilizzare seguendo le istruzioni del paragrafo successivo.
==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:
<pre>
dpkg -i nomefile.deb
</pre>
Per disinstallarlo possiamo normalmente seguire una delle strade per la disinstallazione viste in precedenza, utilizzando <tt>apt</tt>.
==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:
<pre>
apt-get install tar
</pre>
Adesso che abbiamo lo strumento, per decomprimere un pacchetto in formato .tar dobbiamo prima dirigerci, sempre da terminale, nella cartella in cui l’archivio è presente, e poi dobbiamo lanciare:
<pre>
tar xvf nomearchivio.tar
</pre>
dove
* <tt>tar</tt> è il nome del programma decompressore
* <tt>x</tt> significa “estrazione”
* <tt>v</tt> 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.
Lanciando il comando
<pre>
tar --help
</pre>
avrete una lista completa delle opzioni che potete usare col programma.<br>
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==
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:
<pre>
apt-get install tar
</pre>
Adesso che abbiamo lo strumento, per decomprimere un pacchetto in formato .tar.bz2 dobbiamo prima dirigerci, sempre da terminale, nella cartella in cui l’archivio è presente, e poi dobbiamo lanciare:
<pre>
tar jxvf nomearchivio.tar.bz2
</pre>
dove
* <tt>tar</tt> è il nome del programma decompressore
* <tt>j</tt> indica che il file da decomprimere è in formato compresso .bz2
* <tt>x</tt> significa “estrazione”
* <tt>v</tt> 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.
Lanciando il comando
<pre>
tar --help
</pre>
avrete una lista completa delle sintassi che potete usare col programma.<br>
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==
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:
<pre>
apt-get install tar
</pre>
Adesso che abbiamo lo strumento, per decomprimere un pacchetto in formato .tar.bz2 dobbiamo prima dirigerci, sempre da terminale, nella cartella in cui l’archivio è presente, e poi dobbiamo lanciare:
<pre>
tar zxvf nomearchivio.tar.gz
</pre>
dove
* <tt>tar</tt> è il nome del programma decompressore
* <tt>z</tt> indica che il file da decomprimere è in formato compresso .gz
* <tt>x</tt> significa “estrazione”
* <tt>v</tt> 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.
Lanciando il comando
<pre>
tar --help
</pre>
avrete una lista completa delle sintassi che potete usare col programma.<br>
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==
Se siamo in possesso di un archivio .rar , per decomprimerlo avremo bisogno dello strumento <tt>unrar</tt>. Se non lo abbiamo, digitiamo da terminale:
<pre>
apt-get install unrar
</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>
Per decomprimere il file .rar digitiamo ora semplicemente:
<pre>
unrar nomearchivio.rar
</pre>
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==
Se siamo in possesso di un file .zip, possiamo decomprimerlo con lo strumento “<tt>unzip</tt>. Se non abbiamo dovremo installarlo con:
<pre>
apt-get install unzip
</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>
Per decomprimere un file .zip, digitiamo semplicemente:
<pre>
unzip nomearchivio.zip
</pre>
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=
==Muoversi tra le directory==
Accedere da terminale ad una directory è semplicissimo, perchè il comando è uguale a quello del DOS.<br>
Per entrare nella directory “cartella” digitiamo:
<pre>
cd cartella
</pre>
se ci troviamo nella directory "genitore" della directory "cartella". Oppure digitiamo
<pre>
cd /percorso/assoluto/per/arrivare/a/cartella
</pre>
Per entrare nella directory “sottocartella” presente in “cartella” con un solo comando, digitiamo:
<pre>
cd cartella/sottocartella
</pre>
Se siamo in “sottocartella” e vogliamo tornare in “cartella” digitiamo:
<pre>
cd ..
</pre>
Se siamo in “sottocartella” e vogliamo uscire sia da lì che da “cartella”, digitiamo:
<pre>
cd ../..
</pre>
 
==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:
<pre>
ls
</pre>
Esistono una serie di opzioni da aggiungere per perfezionare la ricerca. Avrete una guida completa di quello che potete aggiungere digitando:
<pre>
ls --help
</pre>
Le opzioni più utili sono secondo me:
<pre>
ls -a
</pre>
con cui si potranno visualizzare anche gli eventuali file nascosti, compresi <tt>.</tt> e <tt>..</tt> (directory corrente e directory superiore)
<pre>
ls -A
</pre>
con cui si potranno visualizzare anche gli eventuali file nascosti
<pre>
ls -la
</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... )
 
==Creare una directory==
Per creare una directory da terminale, dobbiamo spostarci dentro la directory nella quale desideriamo creare la nuova directory, e digitare:
<pre>
mkdir nuovacartella
</pre>
Se volessimo creare in un colpo solo la directory “cartella” e subito al suo interno la directory “sottocartella” scriviamo:
<pre>
mkdir cartella/sottocartella
</pre>
==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:
<pre>
mv cartella/ directory/
</pre>
==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:
<pre>
/home
|
|__ ferdy
      |
      |__ cartella
      |      |__ sottocartella
      |
      |__ directory
</pre>
e di voler spostare la directory <tt>sottocartella</tt>  dalla directory <tt>cartella</tt> alla directory <tt>directory</tt>:
<pre>
cd /home/ferdy/cartella
mv sottocartella /home/ferdy/directory
</pre>
oppure, con un solo comando:
<pre>
mv /home/ferdy/cartella/sottocartella /home/ferdy/directory
</pre>
 
==Copiare una directory==
Copiare ed incollare una directory da terminale richiede un solo semplice comando. Supponiamo di avere la seguente struttura:
<pre>
/home
|
|__ ferdy
      |
      |__ cartella
      |      |__ sottocartella
      |
      |__ directory
</pre>
e di voler copiare la directory <tt>sottocartella</tt> dalla directory <tt>cartella</tt> alla directory <tt>directory</tt>:
<pre>
cd /home/ferdy/cartella
cp -r sottocartella /home/ferdy/directory
</pre>
oppure, con un solo comando:
<pre>
cp -r /home/ferdy/cartella/sottocartella /home/ferdy/directory
</pre>
L'opzione <tt>-r</tt> permette di estendere ricorsivamente l'opzione di copia alle eventuali sottodirectory contenute della directory "sottocartella".
==Cancellare una directory vuota==
Volendo cancellare la directory “cartella”, dobbiamo scrivere:
<pre>
rmdir cartella
</pre>
Questo comando presuppone che la directory sia vuota. In caso contrario verrà restituito l’errore:
<pre>
rmdir: failed to remove `cartella’: La directory non è vuota
</pre>
==Cancellare una directory non vuota==
Volendo cancellare la directory non vuota “cartella” dovremo digitare:
<pre>
rm -rf cartella
</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.
==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:
<pre>
mv testo.txt text.txt
</pre>
==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:
<pre>
mv testo.txt /home/vostronomeutente/
</pre>
 
==Copiare un file==
Se intendiamo duplicare un file, dobbiamo usare il comando <tt>cp</tt>. Con questo comando si possono fare più cose:
* copiare un file da una directory ad un’altra:
<pre>
cp testo.txt /home/vostronomeutente/testo.txt
</pre>
* creare un duplicato del file nella stessa direcctory, cambiandogli solo il nome:
<pre>
cp testo.txt text.txt
</pre>
* creare un diplicato e cambiare anche l’estensione:
<pre>
cp testo.txt testo.bak
</pre>
==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.
Ad esempio:
<pre>
rm testo.txt
</pre>
==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>.
<pre>
ln <file da collegare> <directory di collegamento>
</pre>
Supponiamodi avere il file testo.txt nella nostra home di voler creare un collegamento in usr/bin. Scriverò:
<pre>
ln /home/ferdy/testo.txt /usr/bin
</pre>
Digitate ln –help per avere la lista delle opzioni e per aprofondire i concetti di ''hardlink'' e ''symlink''.
==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.
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:
<pre>
chmod xxx testo.txt
</pre>
Al posto delle lettere <tt>xxx</tt> devono essere indicati dei numeri ottali:
* 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.
* 666 – Lettura e scrittura per tutti.
* 700 – Lettura, scrittura, esecuzione per il proprietario, nessun permesso per il gruppo ed altri.
In generale valori che vanno da "0" a "7" rappresentano in forma numerica i permessi come di seguito riportato:
<pre>
4 è uguale a lettura(r),
2 è uguale a scrittura(w),
1 è uguale a esecuzione(x),
0 rimuove i permessi.
</pre>
Il valore numerico risultante è pari alla somma di tali valori.<br>
Partendo sempre da sinistra, la prima cifra si riferisce ai permessi per l'utente proprietario.<br>
La seconda cifra fa riferimento ai permessi per il gruppo proprietario.<br>
La terza e ultima cifra si riferisce ai permessi per gli altri utenti non appartenenti al gruppo proprietario.<br>
Un'altra sintassi utilizzabile è:
<pre>
chmod u|g|o|a|+rwx  file1/directory1
</pre>
Significato delle opzioni disponibili del precedente comando:
    * u = user - applica i permessi all'utente proprietario del file,
    * g = group - applica i permessi al gruppo proprietario del file,
    * o = other - applica i permessi ad altri utenti,
    * a = all - applica i permessi a tutti gli utenti,
    * + = questo operatore logico aggiunge i permessi specificati,
    * - = questo operatore logico rimuove i permessi specificati,
    * r = indica il permesso di lettura,
    * w = indica il permesso di scrittura,
    * x = indica il permesso di esecuzione.
==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>
Il motore di ricerca da terminale si chiama <tt>locate</tt> e possiamo installarlo normalmente digitando:
<pre>
apt-get install locate
</pre>
Esso fa uso di un database ad aggiornamenti costanti, ma non frequenti, pertanto se volessimo ricercare un file di recente creazione, spostamento o immissione nel sistema dovremo prima lanciare il comando di update per questo database. Da root o con permessi sudoer aggiungendo “sudo” prima della sintassi digitiamo:
<pre>
/usr/bin/updatedb
</pre>
Attendiamo che l’aggiornamento sia terminato, e poi lanciamo:
<pre>
locate testo.txt
</pre>
==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:
<pre>
wget http://www.sito.it/file.rar
</pre>
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=
==Definizione di root e differenze con il normale utente==
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>
L’account root su sistemi Unix è paragonabile a quello di Administrator su sistemi Windows NT/XP.<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
==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:
<pre>
su -
</pre>
Verrà richiesta la password di root e sarà eseguito l’accesso.<br>
Noterete che il prompt del terminale è cambiato, passando da:
<pre>
$
</pre>
''(che identifica un utente normale)''<br>
a
<pre>
#
</pre>
''(che identifica l'utente root)''
 
==Disconnessione da root==
''(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:
<pre>
exit
</pre>
Il comando exit può servire anche per chiudere la finestra del terminale.
==Creazione di un nuovo utente==
Per creare un nuovo utente da terminale, è sufficiente diventare root, e digitare il comando:
<pre>
adduser nomeutente
</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.
==Cancellazione di un utente==
Per cancellare un utente registrato nel sistema, aperto il terminale e fatto accesso come utenti root, si digiti:
<pre>
userdel nomeutente
</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.
==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:
<pre>
passwd nomeutente
</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.
=Compiere operazioni con 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>
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>
Fonte: Wikipedia
==Installazione di sudo==
In una installazione di default di Debian <tt>sudo</tt> non è compreso. Per installarlo basta digitare:
<pre>
apt-get install sudo
</pre>
==Configurazione di sudo==
Per aggiungere un utente al gruppo di sudoers, è sufficiente loggarsi da root e lanciare il comando:
<pre>
visudo
</pre>
Potremo così modificare il file <tt>/etc/sudoers</tt> ed aggiungere i permessi di sudoer ad un utente specifico.<br>
Un esempio di file <tt>/etc/sudoers</tt>:
<pre>
# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#
 
Defaults  env_reset
 
# Host alias specification
 
# User alias specification
 
# Cmnd alias specification
 
# User privilege specification
root  ALL=(ALL) ALL
ferdy  ALL=(ALL) ALL
 
# Uncomment to allow members of group sudo to not need a password
# (Note that later entries override this, so you might need to move
# it further down)
# %sudo ALL=NOPASSWD: ALL
 
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
</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:
<pre>
sudo apt-get install vlc
</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.
=Gestione del sistema=
==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 è:
<pre>
ps -e
</pre>
Potete anche chiedere uno schema strutturato ad albero se volete avere le idee più chiare sui processi aperti; il sistema avrà cura di raggrupparvi in una bella struttura i processi principali in esecuzione, e poi le loro rispettive dipendenze. Il comando da utilizzare è:
<pre>
pstree
</pre>
==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 è:
<pre>
kill processo
</pre>
Sostituendo naturalmente la voce “processo” con il nome del responsabile del blocco che volete killare.
==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>
C’è un metodo più comodo che sfrutta questo sistema di ricordo cronologico dei comandi lanciati:
<pre>
history
</pre>
=Gestione del File System=
==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:
<pre>
mount
</pre>
Per ottenere in output la lista che cerchiamo.
 
=Gestione dell'Hardware=
==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:
<pre>
lsusb
</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.
==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:
<pre>
lspci
</pre>
Avremo la lista delle schede PCI collegate, inclusa la scheda video.
==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:
<pre>
df -h
</pre>
L'opzione <tt>-h</tt> dice al comando di fornire l'output in un formato facilmente comprensibile.
==Visualizzare lo stato della memoria RAM e della cache==
Per visualizzare lo stato di utilizzo della RAM e della cache si digiti:
<pre>
free
</pre>
 
=Varie=
==Arresto del sistema==
Per spegnere il PC direttamente da terminale, si può lanciare uno dei comandi seguenti:
<pre>
halt
</pre>
oppure
<pre>
shutdown -h now
</pre>
dove
* <tt>-h</tt> 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.
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==
Per riavviare il PC direttamente da terminale, si può lanciare uno dei comandi seguenti:
<pre>
reboot
</pre>
oppure
<pre>
shutdown -r now
</pre>
dove
* <tt>-r</tt> 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.
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==
È una cosa un po inutile, ma alle volte può far comodo. Potete vedere data e ora del sistema semplicemente digitando:
<pre>
date
</pre>
==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>
Elenco programmi da terminale: http://guide.debianizzati.org/index.php/Elenco_programmi_senza_interfaccia_grafica
=Bibliografia=
http://vicsteele.wordpress.com/comandi/<br>
http://www.wikipedia.org
<br><br>
 
----
 
--[[Utente:Ferdybassi|Ferdybassi]] 15:14, 22 dic 2009 (CET)

Versione attuale delle 16:02, 19 ott 2019

Debian-swirl.png Versioni Compatibili

Tutte le versioni supportate di Debian

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?
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.

Attention.png Avvertimento
Nella guida viene talvolta usata l'opzione -r 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 utenti e gruppi

Viene spiegato cosa sono i gruppi e gli utenti di sistema oltre al ruolo svolto dal superutente (root), i cui privilegi sono richiesti per svolgere attività di amministrazione.

Gestione di repository e pacchetti

Vengono descritte le operazioni necessarie alla gestione delle fonti da cui prelevare i pacchetto (repository) e i comandi per aggiornare il sistema oppure per installare, aggiornare, rimuovere o cercare un singolo pacchetto.

Operazioni con programmi non presenti nei repository

Come comportarsi nel casi in cui si abbia la necessità di installare sul proprio sistema un programma non prelevabile (o perché rimosso o perché non ancora introdotto) dai repository di Debian.

Gestione di file e directory

È la parte della guida che descrive come compiere operazioni di base sui file e le directory come ad esempio la copia, lo spostamento, la rimozione, la creazione, la ridenominazione o la modifica dei loro attributi (e molto altro).

Compiere operazioni con sudo

Cos'è e come funziona sudo, una possibile alternativa all'uso del superutente root.

Gestione del sistema

Alcuni utili strumenti con cui interfacciarsi con il sistema.

Gestione del File System

Il filesystem di Debian: come montare o smontare manualmente periferiche o partizioni.

Gestione dell'hardware

I comandi più utili con cui ottenere informazioni sull'hardware presente sulla propria macchina.

Varie e approfondimenti

Tutto ciò che non è stato incluso nelle pagine precedenti con vari link e riferimenti a risorse utili per approfondire gli argomenti di questa guida.




Guida scritta da: Ferdybassi 15:14, 22 dic 2009 (CET) Swirl-auth40.png Debianized 40%
Estesa da:
Verificata da:
HAL 9000 18:02, 19 ott 2019 (CEST)

Verificare ed estendere la guida | Cos'è una guida Debianized