È il momento di imparare una "lingua" che il sistema saprà riconoscere e che ci permetterà di poter interagire con esso!
Prima di iniziare la carrellata di comandi, ricordiamo una cosa: noi saremo quanto più precisi possibile, ma non ci sarà possibile per evidenti motivi spiegare tutte le opzioni per ogni singolo comando: per ogni informazione aggiuntiva che vi interessi avere rivolgetevi alla pagine di manuale digitando
man comando
Ed è finalmente ora di iniziare con l'esplorazione dei più comuni comandi che il nostro Linux ci mette a disposizione. Il primo comando che vedremo, essenziale per muoversi fra le directory e certamente noto a molti, è cd
.
cd.
Senza argomenti, cd
ci riporta alla nostra home directory; con un argomento, che dovrà essere un nome di directory, cd
ci porterà all'interno della directory specificata. Utilizzato con l'argomento -
, cd
ci riporta alla directory di provenienza. Facciamo un esempio e digitiamo:
cd /tmp
per entrare nella directory /tmp
. A questo punto digitiamo:
cd
per tornare nella nostra home directory.
Per finire, digitiamo
cd -
e ci vedremo ancora in /tmp
!
dir e ls.
Il secondo comando, anch'esso noto a chi abbia lavorato con un sistema DOS, è dir
, che elenca file e directory presenti nella directory corrente, se non altrimenti specificato. Molto spesso, per non dire sempre, al posto di dir si usa il comando ls
(abbreviazione per list): essi hanno non solo la stessa funzione, ma anche la stessa identica sintassi: lo potete constatare confrontando le pagine di manuale relative all'uno ed all'altro comando.
Normalmente, ls
(o dir
) visualizza i file in ordine alfabetico e non visualizza i file nascosti, quelli cioè il cui nome inizia con un punto: per vedere anche questi file, dobbiamo utilizzare l'opzione -a
(all) che ci svelerà la presenza anche di due directory: ".
" e "..
"; la prima è la rappresentazione della directory corrente, la seconda della directory precedente nell'albero delle directory: così, con:
ls .
vedremo la lista dei file e delle directory presenti nella directory corrente, con
ls ..
vedremo invece la lista dei file e delle directory (d'ora in poi generalizzeremo dicendo solo "file") presenti nella directory "madre" della directory corrente.
Inoltre, per vedere il contenuto di una directory senza dovercisi spostare, è ovviamente possibile digitare
ls /nome/della/directory
Opzioni di ls.
Ma torniamo alle opzioni di ls: con -l
potremo utilizzare il "long listing format", che ci darà maggiori informazioni sui file. Un output potrebbe essere questo:
-rw-r--r-- 1 edo edo 9306 mag 28 18:41 prova.txt
drwxr-sr-x 5 edo edo 4096 gen 13 2001 GNUstep
drwx--S--- 2 edo edo 4096 apr 18 02:08 Mail
drwxr-sr-x 2 edo edo 4096 lug 21 17:23 mirrored
drwx--S--- 2 edo edo 4096 gen 8 2001 nsmail
-rw-r----- 1 edo edo 155403 ago 12 11:42 out.jpeg
drwxr-sr-x 2 edo edo 4096 apr 9 01:56 prove
drwxr-sr-x 2 edo edo 4096 mar 8 15:38 public_html
Qui notiamo molte informazioni in più su ogni file, non solo il suo nome! Ad esempio, vediamo a chi appartiene, la sua grandezza e la data di creazione. Per il blocco di informazioni riportate sulla sinistra non abbiate fretta: lo esamineremo in seguito; per il momento, sappiate solo che è un insieme di caratteri che definiscono le caratteristiche di ogni file.
Altre opzioni, forse meno utilizzate ma sempre utili sono:
OpzioneDescrizione
-h
che esprime la grandezza del file in formato più facilmente leggibile (ad esempio, 2K, 32M, 4G, etc.); non ha senso se utilizzato da solo, ma può essere utile accoppiato con -l
--color
che distingue tramite colori i i tipi di file
-S
per ordinare i file in ordine di grandezza discendente
-t
per odrinare i file in ordine di creazione discendente (i più recenti in alto)
Per avere tutte le possibili opzioni relative al comando ls
, vi rimandiamo alla pagina di manuale del comando stesso.
Ora che sappiamo muoverci nel filesystem ed esaminare il contenuto di una directory, concentriamocoi sui singoli file e sulle operazioni che possiamo fare su di essi: vedremo quindi i comandi per copiare, spostare ed eliminare i file presenti sul disco; inoltre, vedremo come eseguire le stesse operazioni sulle directory, imparando anche come crearle..
cp.
Il primo comando è cp
, utilizzato per copiare file e directory. La sua sintassi è molto semplice:
cp file_sorgente destinazione
oppure, per la copia multipla di file, si usa:
cp file1 file2 ... fileN destinazione
che permetterà di copiare i file file1 .. fileN
nella directory di destinazione. Vediamo un esempio:
cp miofile /tmp
che copierà 'miofile
' nella directory /tmp
. Se in /tmp
esiste già un file chiamato miofile, questo sarà sovrascritto dal nuovo file.
Opzioni di cp.
Vediamo ora le opzioni più importanti di cp:
OpzioneDescrizione
-b
Esegue automaticamente una copia di backup di ogni file di destinazione esistente
-f
Forza la sovrascrittura dei file, senza richiedere interventi da parte dell'utente
-i
Attiva la modalità interattiva, che chiede conferma prima dell'evanutale sovrascrittura di file di destinazione preesistenti; il suffisso usato è il classico simbolo della tilde, ~
-p
Mantiene, se possibile, gli attributi (permessi, ownership, etc.) del file
-r
Permette di attivare la modalità ricorsiva, che permette la copia di directory
-v
Attiva la modalità verbose, che visualizza in output quello che il sistema ha fatto in seguito al nostro comando
mv.
Dopo aver visto come copiare file e directory, dedichiamoci allo spostamento ed al cambio di nome dei file; tutto questo è fatto con un solo comando: mv
, la cui sintassi è:
mv sorgente destinazione (per rinominare)
mv sorgente directory (per spostare un file)
mv sorgente1 .. sorgenteN destinazione (per spostare più file)
Tramite mv
, oltre a cambiare il nome di un file, è anche possibile rinominare una directory o muovere più directory in un'altra directory. Le opzioni di mv
sono molto simili a quelle di cp
, sebbene in numero minore. Quelle che a noi interessano sono le stesse viste per il comando cp
, con l'esclusione di -p
che per mv non esiste.
rm e rmdir.
Come ultimo, ci rimane il comando rm
, che permette di eliminare file o directory. La sua sintassi è abbastanza semplice:
rm file (per eliminare un file)
rm file1 .. fileN (per eliminare più file)
Le opzioni di rm
sono anch'esse simili a quelle di mv
; le più utili sono le stesse che sono state viste per cp
, con l'esclusione di "-p
" che qui non ha alcun senso pratico.
Deve qui essere aperta una parentesi relativa alle directory: di norma, se siete sicuri di poter elimimare una directory non vuota, potete utilizzare il comando
rm -rf directory
che forza l'eliminazione della directory 'directory
' e dei suoi contenuti. Per eliminare una directory vuota, si usa invece il comando:
rmdir directory
A volte, però, tale comando non sembra sortire gli effetti desiderati: nonostante la directory sembri vuota, quanto scritto sopra ci restituisce un errore, dove il sistema si lamenta perchè esistono dei file all'interno della directory che vogliamo eliminare.
Accade spesso, infatti, che per controllare il contenuto di una directory si usi solamente ls
che, per sua natura, non visualizza i file nascosti! A questo punto si può procedere in due modi: entrare nella directory e cancellare tali file oppure, se si è sicuri che i file nascosti all'interno di tale directory non sono importanti, si può procedere con rm -rf
.
mkdir.
Come ultima cosa, vediamo come creare le directory: il comando è mkdir
, la cui sintassi è:
mkdir directory (per creare una directory)
mkdir directory1 .. directoryN (per creare più directory)
Vediamo un esempio: nella nostra home directory, supponiamo /home/utente
, è presente la directory "dir
" e vogliamo creare "sottodir
" come sottodirectory della precedente. La prima cosa che viene in mente di fare è di entrare in "dir
" e lanciare il comando:
mkdir sottodir
È però possibile, e anche molto più comodo, utilizzare direttamente il comando:
mkdir dir/sottodir
con una sola attenzione: il comando
mkdir dir/sottodir sottodir2 sottodir3
non fa quello che ci si potebbe aspettare, ossia creare sottodir
, sottodir2
e sottodir3
come sottodirectory di dir
; quello che qui accade, invece, è la creazione di sottodir
come sottodirectory di dir
e la creazione di sottodir2
e sottodir3
allo stesso livello di dir
!
Quindi, per non dover scrivere:
mkdir dir/sottodir dir/sottodir2 dir/sottodir3
in questo caso è più comodo entrare in dir e lanciare:
mkdir sottodir sottodir2 sottodir3
Con queste nozioni, potrete certamente iniziare a fare gli esperimenti sulla creazione, rimozione e spostamento di file e directory. Permetteteci però qualche consiglio:
- utilizzate
touch
per creare file vuoti con cui operare; il comandotouch file
crea il file vuotofile
; utilizzate invece il comandomkdir
(mkdir nomedirectory
) per la creazione delle directory - spostatevi in
/tmp
per le prove; è più sicuro e vi eviterà di lasciare file e directory inutili sparsi per il filesystem o, peggio, di eliminare file importanti o di sistema per qualche disattenzione - non, ripeto, NON utilizzate l'utente root per queste prove: uno stupido errore di digitazione può, come si dice in gergo, "rasare" un intero filesystem!
In conclusione, ricordiamo che tutti i comandi fino a qui visti permettono di specificare caratteri jolly, quali ad esempio l'asterisco o il punto di domanda. Ad esempio:
rm ab*
rimuoverà tutti i file il cui nome inizia con "ab" seguiti da zero o più caratteri. Invece, il comando:
rm ab?
eliminerà tutti i file il cui nome inizia con ab seguiti da un qualsiasi carattere.
fonte: Linux HTMLSe ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog: