PREV
Capitolo 9 - Struttura del File System
NEXT
Capitolo 11 - Controllo dei Processi

Torna all'indice

Capitolo 10. Gestire Files e Directory

Slackware Linux mira ad essere il più possibile Unix-like. Tradizionalmente, i sistemi operativi Unix sono orientati ad una linea di comando. In Slackware abbiamo una interfaccia grafica, ma la linea di comando (command-line) è ancora il livello più importante per controllare il sistema. Di conseguenza, è importante capire qualche comando basilare per la gestione dei file.

La sezione seguente spiega i più importanti comandi per gestire files e fa esempi su come essi sono utilizzati. Ci sono molti altri comandi, ma questi ti aiuteranno ad iniziare. Puoi trovare maggiori dettagli nelle Man-Pages di ogni comando.

top
Torna all'indice

ls

Questo comando visualizza i file in una directory. Gli utenti di Windows e DOS possono paragonarlo al comando dir. ls quindi visualizzera i file nella directory corrente. Per vedere cosa c'è nella tua directory root, puoi dare questi comandi:

$ cd /
$ ls
bin cdr dev home lost+found proc sbin tmp var
boot cdrom etc lib mnt root suncd usr vmlinuz

Il problema che ha molta gente è che con questo output non si puo facilemente capire quali sono direectory e quali sono file. Alcuni utenti preferiscono aggiungere ad ls parametri per ogni visualizzazione, come questo:

$ ls -FC
bin/ cdr/ dev/ home/ lost+found/ proc/ sbin/ tmp/ var/
boot/ cdrom/ etc/ lib/ mnt/ root/ suncd/ usr/ vmlinuz

Le directory hanno una slash ( / ) alla fine del nome, i file eseguibili un asterisco alla fine del nome, e cosi via.

ls può anche essere usato per ottenere informazioni su files. Per esempio, per vedere la data di creazione, proprietari, e permessi, potrai vedere questa lunga lista:

$ ls -l
drwxr-xr-x 2 root bin 4096 May 7 1994 bin/
drwxr-xr-x 2 root root 4096 Feb 24 03:55 boot/
drwxr-xr-x 2 root root 4096 Feb 18 01:10 cdr/
drwxr-xr-x 14 root root 6144 Oct 23 18:37 cdrom/
drwxr-xr-x 4 root root 28672 Mar 5 18:01 dev/
drwxr-xr-x 10 root root 4096 Mar 8 03:32 etc/
drwxr-xr-x 8 root root 4096 Mar 8 03:31 home/
drwxr-xr-x 3 root root 4096 Jan 23 21:29 lib/
drwxr-xr-x 2 root root 16384 Nov 1 08:53 lost+found/
drwxr-xr-x 2 root root 4096 Oct 6 1997 mnt/
dr-xr-xr-x 62 root root 0 Mar 4 15:32 proc/
drwxr-x---x 12 root root 4096 Feb 26 02:06 root/
drwxr-xr-x 2 root bin 4096 Feb 17 02:02 sbin/
drwxr-xr-x 5 root root 2048 Oct 25 10:51 suncd/
drwxrwxrwt 4 root root 487424 Mar 7 20:42 tmp/
drwxr-xr-x 21 root root 4096 Aug 24 1999 usr/
drwxr-xr-x 18 root root 4096 Mar 8 03:32 var/
-rw-r---r--- 1 root root 461907 Feb 22 20:04 vmlinuz

Supponiamo che tu voglia vedere la lista dei file nascosti nella directory corrente. Il comando farà semplicemente questo:

$ ls -a
. bin cdrom home mnt sbin usr
.. boot dev lib proc suncd var
.pwrchute_tmp cdr etc lost+found root tmp vmlinuz

I files che iniziano con un punto (chiamati "dot files") sono invisibili al comando ls. Potrai vedere questi solo se aggiungerai l'opzione -a.

Ci sono molte altre opzioni che puoi vedere nel manuale online. Non dimenticare che puoi combinare più opzioni ad ls.

top
Torna all'indice

cd

Il comando cd è usato per cambiare directory. Dovra semplicemente scrivere cd seguito dal percordo per cambiare directory. Ecco alcuni esempi:

darkstar:~$ cd /bin
darkstar:/bin$ cd usr
bash: cd: usr: No such file or directory
darkstar:/bin$ cd /usr
darkstar:/usr$

Nota che senza la slash ( / ) che precede il percorso, cd tenterà di cambiare directory nella directory corrente.

Il comando cd non è come tutti gli altri comandi. E' un camando "della" shell. I comandi "delle" shell sono discussi nella sezione chiamata Variabili d'ambiente nel Capitolo 8. Praticamente per cd non ci sono man-pages e quindi dovrai usare l'help della shell, come questo:

$ help cd

Questo comando visualizzerà le opzioni di cd e come usarle.

top
Torna all'indice

more

more è quello che noi chiamiamo un pager utility. Spesso l'output di particolari comandi e troppo lungo per essere visualizzato in una shermata. I soli comandi non possono separare l'output in schermate. Essi lasciano il lavoro al pager utility.

Il comando more divide l'output in più schermate singole e aspetta che tu prema la barra spaziatrice per continuare con la schermata seguente. Premendo il pulsante INVIO invece avanzerà di una linea. Ecco un esempio:

$ cd /usr/bin
$ ls -l

Questi comandi visualizzeranno l'output tutto di seguito, per "spezzarlo" in schermate basterà scrivere quanto segue:

$ ls -l | more

Il carattere | (shift + backslash) indica: prendi l'output di ls e "lavoralo" con more.

top
Torna all'indice

less

Mentre il comando more permette solo di vedere le schermate una dopo l'altra less provvede a visualizzare anche pagine precedenti. Quindi less è meglio di more.

top
Torna all'indice

cat

cat è l'abbreviazione di "concatenate". E' stato originariamente creato per unire file di testo ad altri, ma puo essere usato per altri scopi.

Per unire due o più file di testo, semplicemente elencare i file dopo il comando cat e redirigere poi ad un nuovo file. cat lavora con gli input e output standard per le shell, quindi per redirigere ad un nuovo file si dovrà utilizzare il redirection character della shell, ecco un esempio:

$ cat file1 file2 file3 > bigfile

Il comando prenderà il contenuto dei file file1, file2 e file3 e li unirà tutti. Il nuovo output è visualizzato in modo standard.

cat può essere utilizzato anche per visualizzare files. Molti utenti usano cat seguito da more o less, ecco un esempio:

$ cat file1 | more

Questo comando visualizzera il file file1 in varie schermate come vuole il comando more.

Un altra funzione di cat è quella di copiare files. Puoi copiare files scrivendo qualcosa del genere:

$ cat /bin/bash > ~/mybash

Il programma /bin/bash verrà copiato nella tua home directory e verrà chiamato "mybash".

cat ha molti usi ed è oggetto di molte discussioni. Poichè cat usa input e output standard è l'ideale per essere utilizzato in shell script o in altre complesse parti di istruzioni.

top
Torna all'indice

touch

touch è utilizzato per cambiare il timestamp di un file. se il file specificato non esiste touch ne creerà uno di lunghezza "zero" con il nome specificato. Per marcare un file con l'ora corrente, dovrai inserire un istruzione del tipo:

$ touch file1

Ci sono diverse opzioni per touch, incluse le opzioni per specifiare l'ora del timestamp da modificare, ed altre ancora. Il manuale on-line le discute in dettaglio.

top
Torna all'indice

echo

Il comando echo visualizza il testo specificato a schermo. Devi specifare la stringa da visualizzare dopo il comando echo. Di default echo visualizza la stringa e stampa una nuova linea dopo la stringa. Puoi aggiungere l'opzione -n per sopprimere l'aggiunta di una nuova linea. L'opzione -e dirà ad echo di cercare nella stringa dei comandi e di eseguirli.

top
Torna all'indice

mkdir

mkdir creerà una nuova directory. Dovrai semplicemente specificare la directory da creare dopo mkdir. Questo esempio creerà la directory xin nella directory corrente:

$ mkdir xin

puoi anche specificare un percorso come questo:

$ mkdir /usr/local/xin

L'opzione -p creerà il percorso specificato nel caso non esistesse, se esiste il comando fallirà. Nell' esempio seguenete -p creerà la directory /usr/local e /usr/local/xin

$ mkdir -p /usr/local/xin

top
Torna all'indice

ln

Il comando ln crea dei link, possono essere link hard o soft (simbolici), la differenza tra i due viene spiegata nella sezione chiamata Links del Capitolo 9. Se per esempio vuoi creare un link simbolico alla directory /var/media/mp3 nella tua home directory dovrai fare quanto segue:

$ ln -s /var/media/mp3 ~/mp3

L'opzione -s dice a ln di creare un link simbolico, l'opzione seguente (/var/media/mp3) è il percorso del file/directory ed infine l'ultima dice di mettere il link nella directory home ( ~ ) e chiamarlo mp3.

Per creare un link hard basterà omettere l'opzione -s

$ ln /var/media/mp3 ~/mp3

top
Torna all'indice

cp

cp copia i file. Gli utenti DOS possono paragonare cp a copy. Ci sono molte opzioni per cp e sarebbe meglio dare un'occhiata alla manpage prima di usarlo.

Un uso di cp è copiare un file da una un posto ad un altro. Per esempio:

$ cp xin /tmp

verrà copiato il file xin della directory corrente nella directory /tmp

Molti utenti preferiscono preservare il timestamp, ecco un esempio:

$ cp -a xin /tmp

questo assicura che il timestamp non verrà modificato.

Per copiare tutto il contenuto di una directory in un altra fare come segue:

$ cp -R xindirectory /tmp

questo copierà la directory xindirectory nella directory /tmp

cp ha molte altre opzioni, discusse nel manuale online.


top
Torna all'indice

mv

mv sposta i file da un posto all'altro. Gli utenti DOS possono paragonare mv a move. Quando usi mv devi specificare il percorso d'origine e di destinazione. Qualcosa del tipo:

# mv myfile /usr/local/share/xin

mv ha altre opzioni, esse sono discusse nel manuale online.


top
Torna all'indice

rm

rm rimuove file e alberi di directory. Gli utenti di DOS possono paragonare rm a del e deltree. rm può essere pericoloso poichè sfortunatamente Linux non prevede una via per recuperare file cancellati.

Per rimuovere un singolo file, specificare il suo nome dopo rm:

$ rm file1

Se il file ha dei permessi, riceverei un messaggio di errore, puoi tuttavia forzare l'eliminzione con l'opzione -f:

$ rm -f file1

Per rimuovere un intera directory, dovrai usare le opzioni -r e -f insieme. Ecco un esempio per cancellare tutto il contenuto del tuo hard-disk, ovviamente non lo vuoi ma ecco un buon esempio:

# rm -rf /

Altre opzioni di rm sono discusse nel manuale online.


top
Torna all'indice

rmdir

rmdir elimina intere directory dal filesystem. La directory deve essere vuota prima di usare rmdir. La sintassi è la seguente:

$ rmdir <directory>

questo esempio rimuove la directory xin

$ rmdir xin

Se la directory non esiste rmdir te lo dirà. Puoi anche specificare l'intero percorso di una directory come questo:

$ rmdir /tmp/xin

che rimuoverà la directory xin da /tmp

Puoi anche eliminare una directory e tutte le sue directory "precedenti" con l'opzione -p

$ rmdir -p /tmp/xin

questo tenterà d'apprima di eliminare xin e se l'esito è positivo tenterà di eliminare /tmp.


top
Torna all'indice

Sommario

In questo capitolo abbiamo visto molti programmi per gestire file e directory. Dovresti conoscere come creare, cancellare e muovere qualcosa nel filesystem. Dovresti pure conoscere come visualizzare e usare il timestamp di file se necessario. Infine dovresti sapere perchè rm -rf / è veramente una cattiva idea...

top
Torna all'indice

PREV
Capitolo 9 - Struttura del File System
NEXT
Capitolo 10 - Gestire Files e Directory