PREV Capitolo 9 - Struttura del File System |
NEXT Capitolo 11 - Controllo dei Processi |
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.
topQuesto 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.
topIl 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.
topmore è 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.
topMentre 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.
topcat è 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.
toptouch è 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.
topIl 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.
topmkdir 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 |
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 |
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.
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.
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.
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.
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 PREV Capitolo 9 - Struttura del File System |
NEXT Capitolo 10 - Gestire Files e Directory |