Capitolo 3. Introduzione alla linea di comando

Sommario
3.1. Comandi per la gestione dei file
3.1.1. mkdir, touch: creazione di directory e file vuoti (MaKe DIRectory)
3.1.2. rm: cancellazione di file o directory (ReMove)
3.1.3. mv: spostare o rinominare dei file (MoVe)
3.1.4. cp: copiare file e directory (CoPy)
3.2. Gestione degli attributi dei file
3.2.1. chown, chgrp: cambia il proprietario o il gruppo di uno o più file
3.2.2. chmod: modifica dei permessi di file e directory (CHange MODe)
3.3. I caratteri speciali (meta-caratteri) e le espressioni regolari nella shell
3.4. La redirezione e le pipe
3.4.1. Ancora a proposito dei processi
3.4.2. La redirezione
3.4.3. Le pipe
3.5. Completamento automatico
3.5.1. Esempio
3.5.2. Altri metodi di completamento
3.6. Avviare e gestire i processi in background: il controllo dei job
3.7. Conclusione

Nel capitolo Concetti base di Unix vi abbiamo spiegato come aprire una shell. In questo capitolo vi mostreremo come utilizzarla.

La principale dote della shell è il numero di programmi di utilità di cui dispone: ce ne sono migliaia, e ciascuno può svolgere un compito particolare. Qui ne vedremo soltanto alcuni. Una delle migliori caratteristiche di Unix è la sua capacità di combinare questi programmi, come vedremo.

3.1. Comandi per la gestione dei file

In questo caso, la gestione dei file consiste nel copiarli, spostarli e rinominarli. Più avanti vedremo anche come fare per modificarne gli attributi (proprietario, permessi).

3.1.1. mkdir, touch: creazione di directory e file vuoti (MaKe DIRectory)

mkdir viene utilizzato per creare le directory. La sua sintassi è semplice:

mkdir [opzioni] <directory> [directory ...]

Solo un'opzione merita di essere commentata: l'opzione -p. Se la si utilizza, mkdir creerà le directory superiori se in precedenza non esistevano. Se non la si specifica, e le directory superiori non esistono, mkdir visualizzerà un errore. Esempi:

  1. mkdir foo crea la directory foo nella directory corrente;

  2. mkdir -p images/misc docs crea la directory misc nella directory images creando prima quest'ultima, se non esiste già, insieme alla directory docs.

Il comando touch non è nato con la funzione di creare dei file, ma quella di aggiornare le date di accesso e di modifica dei file[1]. Se il file prima non esisteva, tuttavia, touch provvederà a creare i file desiderati come file di dimensione 0. La sintassi è:

touch [opzioni] file [file...]

Quindi lanciando il comando

touch file1 images/file2

verranno creati un file di dimensione pari a 0 chiamato file1 nella directory corrente, e un file di dimensione 0 file2 nella directory images.

3.1.2. rm: cancellazione di file o directory (ReMove)

Questo comando è l'equivalente dei comandi DOS del e deltree, rispetto ai quali dispone di più opzioni. Ecco la sua sintassi:

rm [opzioni] <file|directory> [file|directory...]

Le sue opzioni includono:

  1. -r, o -R Cancella ricorsivamente. Questa opzione è necessaria per cancellare una directory, vuota o meno. Tuttavia, si può usare anche il comando rmdir per cancellare directory vuote.

  2. -i Richiede una conferma prima di ogni cancellazione. Si raccomanda di creare un alias per la parola rm che punti al comando rm -i nella vostra shell; lo stesso vale per i comandi cp e mv.

  3. -f È l'opposto dell'opzione -i: forza la cancellazione di file e directory, anche se l'utente non ha i diritti di scrittura sui file[2].

Alcuni esempi:

  1. rm -i images/*.jpg file1 Cancella tutti i file il cui nome termina con .jpg nella directory images e il file file1 nella directory corrente, richiedendo una conferma per ciascun file. Rispondete y per confermare la cancellazione, n per annullarla.

  2. rm -Rf images/misc/ file* Cancella senza chiedere conferma l'intera directory misc/ nella directory images/ insieme a tutti i file che si trovano nella directory corrente e il cui nome comincia con file.

Attenzione

Un file cancellato usando rm è perduto in maniera definitiva. Non c'è alcun modo per recuperare il file! Non esitate a utilizzare l'opzione -i in modo da esser sicuri di non cancellare nulla per errore...

3.1.3. mv: spostare o rinominare dei file (MoVe)

La sintassi del comando mv è la seguente:
mv [opzioni] <file|directory> [file|directory ...] <destinazione>
Alcune opzioni:

  1. -f Forza lo spostamento dei file -- non avvisa se qualche file preesistente viene sovrascritto dall'operazione.

  2. -i L'opposto -- richiede all'utente una conferma prima di sovrascrivere un file esistente.

  3. -v Modalità prolissa (Verbose), riporta tutte le modifiche effettuate.

Alcuni esempi:

  1. mv -i /tmp/pics/*.gif . Sposta tutti i file nella directory /tmp/pics/ il cui nome finisce con .gif nella directory corrente (.), richiedendo una conferma prima di sovrascrivere qualsiasi file.

  2. mv foo bar Rinomina il file foo come bar.

  3. mv -vf file* images/ trash/ Sposta dalla directory corrente, senza chiedere conferma, tutti i file il cui nome comincia per file e l'intera directory images/ nella directory trash/, e mostra tutte le operazioni effettuate.

3.1.4. cp: copiare file e directory (CoPy)

cp è l'equivalente dei comandi DOS copy, xcopy, rispetto ai quali dispone di più opzioni. Questa è la sua sintassi:

cp [opzioni] <file|directory> [file|directory ...] <destinazione>

cp ha moltissime opzioni. Queste sono le più comuni:

  1. -R Copia ricorsiva; obbligatorio se si vuole copiare una directory, anche se vuota.

  2. -i Richiede una conferma prima di sovrascrivere qualsiasi file preesistente.

  3. -f È l'opposto dell'opzione -i, sostituisce qualsiasi file esistente senza chiedere conferma.

  4. -v Modalità prolissa, visualizza tutte le azioni compiute dal comando cp.

Alcuni esempi:

  1. cp -i /tmp/images/* images/ Copia tutti i file dalla directory /tmp/images nella directory images/ che si trova all'interno della directory attuale, richiedendo una conferma se un file deve essere sovrascritto.

  2. cp -vR docs/ /shared/mp3s/* mystuff/ Copia l'intera directory docs nella directory corrente e tutti i file della directory /shared/mp3s alla directory mystuff situata nella directory corrente.

  3. cp foo bar Crea una copia del file foo con il nome bar nella directory corrente.

Note

[1]

In Unix vi sono tre diverse date registrate assieme ai file: la data dell'ultimo accesso al file (atime), vale a dire l'ultima volta che il file è stato aperto in lettura o scrittura; la data dell'ultima volta che sono stati modificati gli attributi dell'inode (mtime) e, infine, la data dell'ultima volta che il contenuto del file è stato modificato (ctime).

[2]

È sufficiente per un utente possedere i diritti di scrittura su una directory per poter cancellare i file che contiene, anche se non è il proprietario di tali file.


Tux on Star from MandrakeSoft Linux è un trademark registrato di Linus Torvalds. Tutti gli altri copyright e trademark appartengono ai rispettivi proprietari.
A meno che non sia specificato diversamente, tutto il contenuto di queste pagine e tutte le immagini sono Copyright MandrakeSoft S.A. e MandrakeSoft Inc. 2000.
http://www.linux-mandrake.com/