[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [volume] [parte]
Nelle sezioni seguenti vengono descritti in modo sommario alcuni programmi di servizio fondamentali. Gli esempi mostrati fanno riferimento all'uso di una shell POSIX, come Bash che costituisce attualmente lo standard per i sistemi GNU.
È importante ricordare che negli esempi viene mostrato un invito differente a seconda che ci si riferisca a un comando impartito da parte di un utente comune o da parte dell'amministratore: il dollaro ($) rappresenta un'azione di un utente comune, mentre il simbolo # rappresenta un'azione dell'utente root.
Chi lo desidera, può dare un'occhiata alla tabella 20.4, alla fine del capitolo, per farsi un'idea dei comandi dei sistemi Unix attraverso un abbinamento con il Dos.
ls [opzioni] [file...] |
Elenca i file contenuti in una directory. Segue la descrizione di alcuni esempi.
$
ls
[Invio]
Elenca il contenuto della directory corrente.
$
ls -l *.doc
[Invio]
Elenca tutti i file che terminano con il suffisso .doc
che si trovano nella directory corrente. L'elenco contiene più dettagli sui file essendoci l'opzione -l.
cd [directory] |
Cambia la directory corrente. Segue la descrizione di alcuni esempi.
$
cd /tmp
[Invio]
Cambia la directory corrente, facendola diventare /tmp/
.
$
cd ciao
[Invio]
Cambia la directory corrente, spostandosi nella directory ciao/
che discende da quella corrente.
$
cd ~
[Invio]
Cambia la directory corrente, spostandosi nella directory personale dell'utente.
$
cd ~daniele
[Invio]
Cambia la directory corrente, spostandosi nella directory personale dell'utente daniele.
mkdir [opzioni] directory... |
Crea una directory. Segue la descrizione di alcuni esempi.
$
mkdir cloro
[Invio]
Crea la directory cloro/
, come discendente di quella corrente.
$
mkdir /sodio/cloro
[Invio]
Crea la directory cloro/
, come discendente di /sodio/
.
$
mkdir ~/cloro
[Invio]
Crea la directory cloro/
, come discendente della directory personale dell'utente attuale.
cp [opzioni] origine... destinazione |
Copia uno o più file (incluse le directory) in un'unica destinazione.
Se vengono specificati solo i nomi di due file normali, il primo viene copiato sul secondo, viene cioè generata una copia che ha il nome indicato come destinazione. Se il secondo nome indicato è una directory, il file viene copiato nella directory con lo stesso nome di origine. Se vengono indicati più file, l'ultimo nome deve essere una directory, all'interno della quale vengono generate le copie di tutti i file indicati. Di conseguenza, quando si utilizzano i caratteri jolly, la destinazione deve essere una directory. In mancanza di altre indicazioni attraverso l'uso di opzioni adeguate, le directory non vengono copiate.
Chi conosce il Dos potrebbe essere abituato a usare il comando COPY per copiare un gruppo di file in un altro gruppo di file con i nomi leggermente modificati, come in questo esempio: COPY *.bak *.doc. Con i sistemi Unix, questo tipo di approccio non può funzionare. |
I file elencati nell'origine potrebbero essere in realtà dei collegamenti simbolici. Se non viene specificato diversamente attraverso l'uso delle opzioni, questi vengono copiati così come se fossero file normali; cioè la copia è ottenuta a partire dai file originali e non si ottiene quindi una copia dei collegamenti.
Segue la descrizione di alcuni esempi.
$
cp -r /test/* ~/prova
[Invio]
Copia il contenuto della directory /test/
in ~/prova/
copiando anche eventuali sottodirectory contenute in /test/
.
Se |
$
cp -r /test ~/prova
[Invio]
Copia la directory /test/
in ~/prova/
(attaccando test/
a ~/prova/
) copiando anche eventuali sottodirectory contenute in /test/
.
$
cp -dpR /test ~/prova
[Invio]
Copia la directory /test/
in ~/prova/
(attaccando test/
a ~/prova/
) copiando anche eventuali sottodirectory contenute in /test/
, mantenendo inalterati i permessi e riproducendo i collegamenti simbolici eventuali.
ln [opzioni] origine... destinazione |
Crea uno o più collegamenti di file (incluse le directory) in un'unica destinazione.
La creazione di un collegamento è un'azione simile a quella della copia. Di conseguenza valgono le stesse considerazioni fatte in occasione del comando cp per quanto riguarda la differenza di comportamento che c'è tra Unix e Dos. |
Se vengono specificati solo i nomi di due file normali, il secondo diventa il collegamento del primo. Se il secondo nome indicato è una directory, al suo interno vengono creati altrettanti collegamenti quanti sono i file e le directory indicati come origine. I nomi utilizzati sono gli stessi di quelli di origine. Se vengono indicati più file, l'ultimo nome deve corrispondere a una directory.
È ammissibile la creazione di collegamenti che fanno riferimento ad altri collegamenti.
Se ne possono creare di due tipi: collegamenti fisici e collegamenti simbolici. Questi ultimi sono da preferire (a meno che ci siano delle ragioni per utilizzare dei collegamenti fisici). Se non viene richiesto diversamente attraverso le opzioni, si generano dei collegamenti fisici invece che i consueti collegamenti simbolici.
Segue la descrizione di alcuni esempi.
$
ln -s /test/* ~/prova
[Invio]
Crea, nella destinazione ~/prova/
, una serie di collegamenti simbolici corrispondenti a tutti i file e a tutte le directory che si trovano all'interno di /test/
.
$
ln -s /test ~/prova
[Invio]
Crea, nella destinazione ~/prova
, un collegamento simbolico corrispondente al file o alla directory /test
. Se ~/prova
è una directory, viene creato il collegamento ~/prova/test
; se ~/prova
non esiste, viene creato il collegamento ~/prova
.
rm [opzioni] nome... |
Rimuove i file indicati come argomento. In mancanza dell'indicazione delle opzioni necessarie, non vengono rimosse le directory.
|
Segue la descrizione di alcuni esempi.
$
rm prova
[Invio]
Elimina il file prova
.
$
rm ./-r
[Invio]
Elimina il file -r
che inizia il suo nome con un trattino, senza confondersi con l'opzione -r (ricorsione).
$
rm -r ~/varie
[Invio]
Elimina la directory varie/
che risiede nella directory personale, insieme a tutte le sue sottodirectory eventuali.
Si faccia attenzione al comando seguente:
#
rm -r .*
[Invio]
Questo comando elimina tutti i file e le directory a partire dalla directory genitrice! Si osservi che se la directory corrente discende immediatamente dalla directory radice, significa cancellare tutta la gerarchia.
Questo è comunque un errore tipico di chi vuole cancellare tutte le directory nascoste (cioè quelle che iniziano con un punto) contenute nella directory corrente. Il disastro avviene perché nei sistemi Unix, .* rappresenta anche la directory corrente (.
) e la directory precedente o genitrice (..
). In alternativa, onde evitare disguidi, conviene piuttosto un comando come quello seguente, con cui si è certi di intervenire solo su nomi che sono lunghi almeno tre caratteri complessivi (punto compreso):
#
rm -r .??*
[Invio]
mv [opzioni] origine... destinazione |
Sposta i file e le directory. Se vengono specificati solo i nomi di due elementi (file o directory), il primo viene spostato e rinominato in modo da ottenere quanto indicato come destinazione. Se si indicano più elementi (file o directory), l'ultimo attributo deve essere una directory, all'interno della quale si spostano tutti gli elementi elencati. Nel caso di spostamenti attraverso file system differenti, vengono spostati solo i cosiddetti file normali (quindi: niente collegamenti e niente directory).
Nei sistemi Unix non esiste la possibilità di rinominare un file o una directory semplicemente come avviene nel Dos. Per cambiare un nome occorre spostarlo. Questo fatto ha poi delle implicazioni nella gestione dei permessi delle directory. |
Segue la descrizione di alcuni esempi.
$
mv prova prova1
[Invio]
Cambia il nome del file (o della directory) prova
in prova1
.
$
mv * /tmp
[Invio]
sposta, all'interno di /tmp/
, tutti i file e le directory che si trovano nella directory corrente.
cat [opzioni] [file...] |
Concatena dei file e ne emette il contenuto attraverso lo standard output. Il comando emette di seguito i file indicati come argomento attraverso lo standard output (sullo schermo), in pratica qualcosa di simile al comando TYPE del Dos. Se non viene fornito il nome di alcun file, viene utilizzato lo standard input. Segue la descrizione di alcuni esempi.
$
cat prova prova1
[Invio]
Mostra di seguito il contenuto di prova
e prova1
.
$
cat prova prova1 > prova2
[Invio]
Genera il file prova2
come risultato del concatenamento in sequenza di prova
e prova1
.
|
Appunti di informatica libera 2007.02 --- Copyright © 2000-2007 Daniele Giacomini -- <daniele (ad) swlibero·org>
Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome l_x0027_abc_dei_comandi_unix.htm
[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico]