Come fare a...
Web
Come fare a...

Fondamenti della console Linux

I comandi per iniziare a muoversi nel sistema

Pagine: Pagina precedente 2 di 2
Autore: Paolo Ferretti http://www.paoloferretti.it

Primi comandi

Dopo la prima parte teorica sull’utilizzo della console Linux, passiamo a un po’ di pratica con l’introduzione ai primi comandi utili per iniziare a muoversi. Prima, però, una nota sulla sintassi generale da usare.
Ogni comando può essere utilizzato con o senza parametri, o opzioni. Le pagine di manuale generalmente indicano la sintassi corretta per ogni comando. La convenzione è:

paolo@backintime-vm:~$ comando [opzioni] [file o directory coinvolte]

Le parentesi graffe ovviamente non vanno scritte, qui stanno ad indicare un insieme di entità sulla riga di comando. Le opzioni vanno scritte precedute da un “-“: questa sintassi non è obbligatoria, ma la consiglio per avere più chiarezza al prompt. Se abbiamo più opzioni, possiamo scriverle separatamente oppure tutte insieme, senza il “-“ che le separa. Un esempio rende più chiara l’idea:

paolo@backintime-vm:~$ comando –a –b –c –d esempio.txt

equivale a:

paolo@backintime-vm:~$ comando –abcd esempio.txt

man

Il primo comando di cui ci occupiamo è man. Man ci permette di sfogliare le pagine di manuale, la documentazione base di Linux. La sintassi è molto semplice:

paolo@backintime-vm:~$ man [comando]

così, se vogliamo i dettagli di grep, non dobbiamo far altro che digitare man grep e avremo tutta la documentazione a portata di mano.

NOTA
Per avere approfondimenti sui comandi che elencherò di seguito, consiglio l’utilizzo di man, in quanto spiegherò solo le opzioni di uso più comune.

ls

Ho già usato questo comando in alcuni esempi precedenti. Se avete provato ad eseguirli sulla console, avete sicuramente notato che serve per avere una lista (in inglese list, da cui l’abbreviazione ls) del contenuto della directory specificata. Se lanciato senza argomenti, restituisce in output la lista dei nomi di files e directory ordinati per colonna. Ci sono molte opzioni disponibili, le più comuni sono:

  • -l: restituisce in output i dettagli dei file tra cui i diritti di accesso (lettura, scrittura, esecuzione), il proprietario, la dimensione e la data di ultima modifica
  • -a: mostra anche i files nascosti che, per impostazione predefinita, sono altrimenti invisibili
  • -h: in combinazione con –l mostra le dimensioni dei files in forma umanamente leggibile (human, da cui h), cioè in KB, MB o GB invece che in bytes
  • -S: ordina i files in base alla dimensione
  • -t: ordina i files in base alla data di ultima modifica
  • -X: ordina i files in base al nome

cd

Indispensabile per cambiare cartella. È un comando molto semplice:

paolo@backintime-vm:~$ cd Immagini

cambia la cartella di lavoro in Immagini. Per passare alla directory madre si usano i ..

paolo@backintime-vm:~$ cd ..

Attenzione a separare il comando cd dai .. con uno spazio. Spesso gli utenti Windows incappano in questo errore, dato che il cd della console Microsoft accetta i .. anche senza lo spazio di separazione.

mkdir

Come probabilmente avranno intuito i lettori anglofoni, con mkdir si creano del directory. Anche questo comando è molto semplice, per esempio:

paolo@backintime-vm:~$ mkdir Cartella_di_prova

Crea Cartella_di_prova nella mia directory home (notare la tilde!). L’unica opzione importante è –p, che consente di creare un intera gerarchia di cartelle, in caso non esistesse già:

paolo@backintime-vm:~$ mkdir –p prova/prova1/prova2

crea tutte le cartelle della gerarchia. Senza l’opzione –p, il comando restituirebbe un errore dicendo che la cartella prova non esiste e che quindi non può creare una directory figlia.

cp

Permette di copiare files o directory. Per copiare un file:

paolo@backintime-vm:~$ cp file.txt file_destinazione.txt

Ha moltissime opzioni, quindi rimando alla pagina di manuale per un utilizzo più approfondito. Un’opzione molto importante è quella per copiare ricorsivamente le directory figlie. Così, se voglio copiare l’intera cartella dei miei documenti, comprese le sottocartelle:

paolo@backintime-vm:~$ cp documenti/ backup_documenti/ -R

mv

Permette di spostare o rinominare files o directory:

paolo@backintime-vm:~$ mv file.txt documenti/file.txt

In questo modo ho spostato file.txt nella cartella documenti. Se volessi rinominare file.txt in paolo.txt:

paolo@backintime-vm:~$ mv file.txt paolo.txt

rm e rmdir

Rimuove files o directory. Attenzione, è un comando pericoloso se usato male! Partiamo con un esempio:

paolo@backintime-vm:~$ rm file.txt

Così rimuovo file.txt dal mio filesystem. Usando il comando così, ogni volta mi viene richiesta la conferma per l’eliminazione. Eliminando più files contemporaneamente, potete evitare di essere tediati dalla conferma di eliminazione di ogni files, tramite l’opzione –f, che sta per force. Attenzione, usare con cautela:

paolo@backintime-vm:~$ rm –f file1.txt file2.txt

La rimozione delle cartelle è leggermente più complessa, dato che per impostazione predefinita non possiamo cancellare delle directory che non sono vuote. In questo caso viene in nostro aiuto l’opzione –R, già incontrata nel comando cp: ci permette di estendere ricorsivamente il comando di cancellazione, a tutti i files e sottodirectory. Generalmente viene usata in coppia con –f. Anche questa opzione è da usare con molta cautela, si possono fare danni irreparabili al sistema:

paolo@backintime-vm:~$ rm –fR directory_da_rimuovere/

Rmdir è simile a rm, ma ha un grado di sicurezza in più, oltre ad essere dedicato unicamente alla cancellazione delle cartelle. Con rmdir possiamo eliminare solo cartelle vuote.

more e less

Questi due comandi permettono di visualizzare il contenuto di un file di testo all’interno della console. La grande differenza tra i due sta nello scorrimento del testo: more permette solo lo scorrimento in avanti, con less invece lo scorrimento è avanti e indietro. Rimando alla pagina di manuale per tutti i dettagli.

 

tail

Generalmente è utilizzato per la visualizzazione dei file di log, dato che la sua funzione è quella di visualizzare le ultime dieci righe. Con l’opzione –n si può specificare un numero di righe diverso da 10. Ad esempio:

paolo@backintime-vm:~$: tail –n 20 file_di_testo.txt

grep

Quasi sempre in coppia con la pipe (|), grep è un utile strumento per avere in output solo una selezione di righe che contengono un determinato pattern di testo. Anticipando un comando che vedremo nei paragrafi sottostanti, grep viene usato per scremare solo le informazioni che ci servono da un output prolisso:

paolo@backintime-vm:~$ ps aux | grep python

In questo caso grep seleziona dall’output di ps aux solo le righe che contengono la parola python, nascondendoci tutte quelle che non ci interessano.

ps

Mostra i processi in esecuzione sul computer. Eseguito senza argomenti ci restituisce solo i processi in esecuzione nella sessione bash corrente. Per avere una lista di tutti i processi in esecuzione va usato con l’opzione aux:

paolo@backintime-vm:~$ ps aux

Dato che l’output di ps aux generalmente occupa varie schermate, di solito si esegue una pipe con less (o more), oppure una pipe con grep per filtrare solo le informazioni che cerchiamo, come nell’esempio precedente.

tar

Tar è il comando per eccellenza per la creazione e gestione degli archivi. Il suo nome ovviamente è un acronimo, che ha origine da Tape ARchiver, in quanto originariamente era stato pensato per i dispositivi ad accesso sequenziale, come appunto le unità di backup a nastro.
Tar ha tantissime opzioni, ma qui ne vedremo solo alcune, quelle sufficienti a creare un archivio compresso e a scompattarlo successivamente.
Tar non è in grado di creare archivi compressi da solo, ma si appoggia a programmi esterni come gzip e bzip2. Infatti tar serve unicamente a creare archivi di files, che vengono successivamente compressi. La differenza tra gzip e bzip2 sta nell’algoritmo di compressione: il primo è più veloce ma ha una compressione meno efficiente, il secondo è più lento ma la compressione è più efficiente.
I programmi esterni possono essere utilizzati separatamente, oppure possiamo indicare a tar di usarli automaticamente attraverso un’opzione. Negli esempi che analizzeremo, utilizzeremo la seconda alternativa.

Per creare un archivio compresso con gzip in cui vogliamo fare il backup della cartella Documenti, dobbiamo lanciare:

paolo@backintime-vm:~$ tar –cvzf documenti.tar.gz documenti/

Vedremo in stampa sulla console la lista di tutti i nostri documenti, mentre vengono aggiunti al file. Da notare che ho specificato solo il percorso relativo della mia cartella documenti, in quanto sono già nella directory home del mio utente.
Per la creazione in un archivio compresso con bzip2, invece:

paolo@backintime-vm:~$ tar -cvjf documenti.tar.bz2 documenti/

Si può notare che l’unica differenza sta in una opzione. Analizziamo:

  • -c: sta per create. Indica a tar che vogliamo creare un archivio;
  • -v: sta per verbose, cioè si indica al comando che vogliamo che stampi sullo standard output tutto quello che fa;
  • -z: indica a tar che deve comprimere l’archivio utilizzando il comando esterno gzip
  • -j: indica a tar che deve comprimere l’archivio utilizzando il comando esterno bzip2
  • -f: specifichiamo al comando che l’output è su un file

Passiamo alla decompressione di un file precedentemente compresso. Le opzioni sono sempre le stesse, ma al posto di –c andiamo ad usare –x, che sta per extract. Così, per decomprimere un file con estensione .tar.gz:

paolo@backintime-vm:~$ tar –xvzf documenti.tar.gz

e per decomprimere un file con estensione .tar.bz2:

paolo@backintime-vm:~$ tar –xvjf documenti.tar.bz2

Lanciando tar solo con queste opzioni, gli si indica di decomprimere il contenuto del file all’interno della cartella corrente. Se vogliamo specificare la directory in cui decomprimere il tutto, dobbiamo usare l’opzione –C:

paolo@backintime-vm:~$ tar -xvzf documenti.tar.gz –C cartella/decompress/

Conclusioni

In questo articolo dedicato al mondo Linux e open source abbiamo visto una panoramica sulle modalità di accesso alla console e ai suoi comandi principali.

Note sul copyright

Questa recensione è stata fornita con esplicito consenso dell'autore sotto licenza Creative Commons.
Leggi la licenza d'uso.

Resta sempre aggiornato sulle novità del sito Resta sempre aggiornato sulle novità del sito
Per mantenerti sempre aggiornato su nuovi contenuti interessanti, Come fare a... vi offre la possibilità di abbonarvi gratuitamente alla Newsletter Come fare a..., all'RSS o, se usate Windows Live Messenger, di abbonarvi ai nostri Windows Live Alerts. Per gli utenti di Mac OS X è disponibile gratuitamente un Widget che vi terrà sempre informati sulle ultime novità. Vieni a trovarci anche su Facebook e su Twitter.
Fine: Pagina precedente 2 di 2
Condividi

Vedi anche...

Sempre aggiornato





Abbonati alla newsletter di Come fare a... Sottoscrivi l'RSS di Come fare a... Usi Windows Live Messenger? Abbonati ai nostri Windows Live Alerts Diventa fan di Come fare a... su Facebook Seguici su Twitter Scarica il Widget per Mac OS X