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.

Gestione di repository e pacchetti

Definizione di repo (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

Modifica della lista dei repository

La lista dei repository configurati per il vostro sistema si trova nella directory /etc/apt/sources.list. 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:

gedit /etc/apt/sources.list

Se vogliamo aprirlo con Nano (editor di testo su console) digiteremo:

nano /etc/apt/sources.list

Con Vim (altro editor di testo per console):

vim /etc/apt/sources.list

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 (sudo gedit invece di gedit, 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:

apt-get update
apt-get upgrade

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:

apt-get install programma

oppure

aptitude install programma

Se vogliamo installare, ad esempio, VLC, digitiamo:

apt-get install vlc

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:

apt-get remove programma

Se vogliamo rimuovere VLC:

apt-get remove vlc

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:

apt-get remove --purge programma

Oppure:

apt-get purge programma

Oppure:

aptitude purge programma

Se vogliamo rimuovere VLC:

apt-get remove --purge vlc

O in alternativa:

apt-get purge vlc

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 è:

apt-get install --reinstall programma

Se vogliamo reinstallare VLC:

apt-get install --reinstall vlc

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 apt, digitare:

dpkg -P programma

Se volessimo “purgare” VLC:

dpkg -P vlc

Pulizia della cache dei pacchetti

Per ripulire la cache dei pacchetti scaricati si utilizzano i comandi:

apt-get clean

O anche:

apt-get autoclean

Per poter eseguire il comando di “purga” descritto, anche per lo script, 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:

apt-get source programma

Se volessimo ottenere i source di VLC:

apt-get source vlc

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.

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 chmod.
Se, per esempio, abbiamo scaricato il programma mio_programma.bin dobbiamo compere le seguenti operazioni.
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:

chmod +x mio_programma.bin

e successivamente

./mio_programma.bin

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 è alien. Quindi installiamolo digitando:

apt-get install alien

Successivamente, dopo esserci diretti da terminale nella cartella in cui è presente il file .rpm scaricato, lanciamo:

alien -k nomefile.rpm

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:

dpkg -i nomefile.deb

Per disinstallarlo possiamo normalmente seguire una delle strade per la disinstallazione viste in precedenza, utilizzando apt.

Scompattare un file .tar

Se abbiamo un archivio in formato compresso .tar, per decomprimerlo dovremo usare lo strumento tar. Se non lo abbiamo, digitiamo da terminale:

apt-get install tar

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:

tar xvf nomearchivio.tar

dove

  • tar è il nome del programma decompressore
  • x significa “estrazione”
  • v sta per "verbose", e serve per ottenere informazioni dettagliate durante il processo di estrazione
  • f infine salva i file nella stessa posizione dell’archivio.

Lanciando il comando

tar --help

avrete una lista completa delle opzioni che potete usare col programma.
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 tar. Se non lo abbiamo, digitiamo da terminale:

apt-get install tar

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:

tar jxvf nomearchivio.tar.bz2

dove

  • tar è il nome del programma decompressore
  • j indica che il file da decomprimere è in formato compresso .bz2
  • x significa “estrazione”
  • v sta per "verbose", e serve per ottenere informazioni dettagliate durante il processo di estrazione
  • f infine salva i file nella stessa posizione dell’archivio.

Lanciando il comando

tar --help

avrete una lista completa delle sintassi che potete usare col programma.
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 tar. Se non lo abbiamo, digitiamo da terminale:

apt-get install tar

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:

tar zxvf nomearchivio.tar.gz

dove

  • tar è il nome del programma decompressore
  • z indica che il file da decomprimere è in formato compresso .gz
  • x significa “estrazione”
  • v sta per "verbose", e serve per ottenere informazioni dettagliate durante il processo di estrazione
  • f infine salva i file nella stessa posizione dell’archivio.

Lanciando il comando

tar --help

avrete una lista completa delle sintassi che potete usare col programma.
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 unrar. Se non lo abbiamo, digitiamo da terminale:

apt-get install unrar

La differenza tra tar e unrar è che il pacchetto tar è tuttofare, e consente sia l’archiviazione che la decompressione dei file su cui è in grado di lavorare. unrar invece è in grado soltanto di decomprimere, e se volessimo creare un archivio .rar avremmo bisogno di un altro pacchetto, chiamato rar.
Per decomprimere il file .rar digitiamo ora semplicemente:

unrar nomearchivio.rar

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 “unzip. Se non abbiamo dovremo installarlo con:

apt-get install unzip

Come per gli archivi .rar, unzip è in grado soltanto di decomprimere, e la compressione può avvenire grazie a zip che si installa allo stesso modo.
Per decomprimere un file .zip, digitiamo semplicemente:

unzip nomearchivio.zip

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.
Per entrare nella directory “cartella” digitiamo:

cd cartella

se ci troviamo nella directory "genitore" della directory "cartella". Oppure digitiamo

cd /percorso/assoluto/per/arrivare/a/cartella

Per entrare nella directory “sottocartella” presente in “cartella” con un solo comando, digitiamo:

cd cartella/sottocartella

Se siamo in “sottocartella” e vogliamo tornare in “cartella” digitiamo:

cd ..

Se siamo in “sottocartella” e vogliamo uscire sia da lì che da “cartella”, digitiamo:

cd ../..

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:

ls

Esistono una serie di opzioni da aggiungere per perfezionare la ricerca. Avrete una guida completa di quello che potete aggiungere digitando:

ls --help

Le opzioni più utili sono secondo me:

ls -a

con cui si potranno visualizzare anche gli eventuali file nascosti

ls -A

con cui si potranno visualizzare oltre ai file nascosti anche quelli di sistema

ls -la

con cui si potranno visualizzare i files nascosti e i link.

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:

ls

Esistono una serie di opzioni da aggiungere per perfezionare la ricerca. Avrete una guida completa di quello che potete aggiungere digitando:

ls --help

Le opzioni più utili sono secondo me:

ls -a

con cui si potranno visualizzare anche gli eventuali file nascosti

ls -A

con cui si potranno visualizzare oltre ai file nascosti anche quelli di sistema

ls -la

con cui si potranno visualizzare i files nascosti e i link.

Creare una directory

Per creare una directory da terminale, dobbiamo spostarci dentro la directory nella quale desideriamo creare la nuova directory, e digitare:

mkdir nuovacartella

Se volessimo creare in un colpo solo la directory “cartella” e subito al suo interno la directory “sottocartella” scriviamo:

mkdir cartella/sottocartella

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:

mv cartella/ 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:

/home
|
|__ ferdy
      |
      |__ cartella
      |      |__ sottocartella
      |
      |__ directory

e di voler spostare la directory sottocartella dalla directory cartella alla directory directory:

cd /home/ferdy/cartella
mv sottocartella /home/ferdy/directory

oppure, con un solo comando:

mv /home/ferdy/cartella/sottocartella /home/ferdy/directory

Copiare una directory

Copiare ed incollare una directory da terminale richiede un solo semplice comando. Supponiamo di avere la seguente struttura:

/home
|
|__ ferdy
      |
      |__ cartella
      |      |__ sottocartella
      |
      |__ directory

e di voler copiare la directory sottocartella dalla directory cartella alla directory directory:

cd /home/ferdy/cartella
cp -r sottocartella /home/ferdy/directory

oppure, con un solo comando:

cp -r /home/ferdy/cartella/sottocartella /home/ferdy/directory

L'opzione -r 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:

rmdir cartella

Questo comando presuppone che la directory sia vuota. In caso contrario verrà restituito l’errore:

rmdir: failed to remove `cartella’: La directory non è vuota

Cancellare una directory non vuota

Volendo cancellare la directory non vuota “cartella” dovremo digitare:

rm -rf cartella

L'opzione -rf è 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 mv. Volendo rinominare il file “testo.txt” in “text.txt” dovremo dirigerci prima nella directory in cui il file è presente, e poi digitare:

mv testo.txt text.txt

spostare (tagliare ed incollare) un file

Anche per questa operazione deve essere usato il comando mv. 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:

mv testo.txt /home/vostronomeutente/

Copiare un file

Se intendiamo duplicare un file, dobbiamo usare il comando cp. Con questo comando si possono fare più cose:

  • copiare un file da una directory ad un’altra:
cp testo.txt /home/vostronomeutente/testo.txt
  • creare un duplicato del file nella stessa direcctory, cambiandogli solo il nome:
cp testo.txt text.txt
  • creare un diplicato e cambiare anche l’estensione:
cp testo.txt testo.bak

Cancellare un file

La cancellazione di un file da terminale è semplice, basterà digitare il comando rm seguito dal nome del file che si vuole cancellare. Ad esempio:

rm testo.txt

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

ln <file da collegare> <directory di collegamento>

Supponiamodi avere il file testo.txt nella nostra home di voler creare un collegamento in usr/bin. Scriverò:

ln /home/ferdy/testo.txt /usr/bin

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 è chmod. Per cambiare i permessi, ad esempio, al file "testo.txt" dovremo agire da autori del file e digitare:

chmod xxx testo.txt

Al posto delle lettere xxx 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:

 4 è uguale a lettura(r),
 2 è uguale a scrittura(w),
 1 è uguale a esecuzione(x),
 0 rimuove i permessi.

Il valore numerico risultante è pari alla somma di tali valori.
Partendo sempre da sinistra, la prima cifra si riferisce ai permessi per l'utente proprietario.
La seconda cifra fa riferimento ai permessi per il gruppo proprietario.
La terza e ultima cifra si riferisce ai permessi per gli altri utenti non appartenenti al gruppo proprietario.
Un'altra sintassi utilizzabile è:

chmod u|g|o|a|+rwx  file1/directory1

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. 

Scaricare un file da Internet

Da terminale è possibile anche scaricare file da Internet, utilizzando il comando wget con i protocolli http o ftp. Ad esempio se volessimo scaricare il file http://www.sito.it/file.rar ,ci basterà digitare:

wget http://www.sito.it/file.rar

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?
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.
L’account root su sistemi Unix è paragonabile a quello di Administrator su sistemi Windows NT/XP.
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.
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:

su -

Verrà richiesta la password di root e sarà eseguito l’accesso.

Disconnessione da root

(per tornare utente con permessi normali sulla stessa finestra di terminale)
Se siete diventati root in una finestra di terminale, e volete tornare user senza chiudere la finestra o aprirne un’altra, basterà digitare:

exit