09/01/2014
M. Malatesta 1-Comandi su file e directory-14 1
Modulo L3
1-Comandi su file e directory
Corso di Informatica
Prerequisiti
Uso pratico elementare di Linux
Concetto di interprete di comandi
Struttura generale di uSoftware di base e soSO
09/01/2014
M. Malatesta 1-Comandi su file e directory-14 3
Introduzione
Un efficace utilizzo delle potenti caratteristiche di Linux si può ottenere immettendo i comandi direttamente dal Terminale.
Linux possiede un repertorio di comandi molto vasto, ma già conoscendone una minima parte, è possibile sfruttare molte delle sue potenzialità.
Cosa bisogna conoscere per usare i comandi di Linux?
Come imparare rapidamente i comandi più importanti?
A queste domande diamo una risposta in questa Unità.
La shell
- osservazioni preliminari
L’interprete dei comandi di Linux è un processo detto shell ed è a disposizione dell’utente non appena questi effettua la fase di login.
Ovvamente, per l’utilizzo diretto della shell, l’utente deve attivare la finestra Terminale, all’interno della quale immetterà i comandi e visualizzerà il loro effetto.
OSSERVAZIONI:
Linux distingue tra lettere maiuscole e minuscole (per la username, per la password, per i comandi, per i nomi dei file);
Linux non impone stretti vincoli di lunghezza per i nomi dei file;
09/01/2014
M. Malatesta 1-Comandi su file e directory-14 5
Nel seguito dell’Unità, per facilitare la lettura indichiamo:
in carattere arial le risposte del SO.
con il ‘$’ come prompt di sisema (può essere cambiato)
la sintassi dei comandi con
nome[opzioni] [argomento]
dove
– nome è il nome del comando;
– opzioni è una lista di uno o più caratteri che modificano parzialmente l'effetto del comando (variano da comando a comando);
– argomento è una lista di uno o più oggetti (file o directory) su cui opera il comando.
La shell
- osservazioni sintattiche
Si tenga presente che:
le opzioni possono essere anche variamente combinate tra loro;
è possibile digitare su una stessa linea più comandi, separandoli con il carattere ";".
comandi particolarmente lunghi possono continuare sulla riga seguente previa il carattere "\" (backslash) scritto in fondo alla prima riga.
La shell
- osservazioni pratiche
09/01/2014
M. Malatesta 1-Comandi su file e directory-14 7
1. Gestione dei file 2. Gestione delle directory
Prima serie di comandi
Comando: ls
Effetto: elenco (list) i file nella directory corrente
$ ls
lettera mail pippo.c progetto tesi libro pippo pippo.zip src
$ _
1. Gestione dei file
- ls
09/01/2014
M. Malatesta 1-Comandi su file e directory-14 9
Comando: ls -F
Effetto: elenco esteso (full) di file, directory, eseguibili, link nella directory corrente
$ ls -F
lettera mail/ pippo.c progetto@ tesi/
libro/ pippo* pippo.zip src/
$ _
/indica che si tratta di una directory *indica che si tratta di un file eseguibile @indica che si tratta di un link (file o directory) ad un file o directory.1. Gestione dei file
- ls
Comando: ls -lF
Effetto: elenco dettagliato (long full) dei file nella directory corrente
$ ls -lF
-rw-r-r- 1 marco users 937 Apr 23 12:43 lettera drwxr-xr-x 2 marco users 1024 Apr 10 16:04 libro/
-rwxr-x-- 1 marco users 37513 Mar 10 11:55 pippo*
-rw-r-r- 1 marco users 23946 Mar 10 12:03 pippo.zip drwxrwx-- 2 marco users 1024 Mar 10 08:47 src/
drwxr-r- 2 marco users 1024 Feb 12 15:29 tesi/
1. Gestione dei file
- ls
09/01/2014
M. Malatesta 1-Comandi su file e directory-14 11
d rwxr-xr-x 2 marco users 1024 Apr 10 16:04 libro/
1. Gestione dei file
- ls
”d” (directory), “-” (file normale), “l” (link)
“Diritti di accesso del file
“Lunghezza file in byte
“Nome del file o directory
d rwxr-xr-x 2 marco users 1024 Apr 10 16:04 libro/
1. Gestione dei file
- ls
“Numero dei link
“Nome del proprietario del file
“Nome del gruppo (users) di cui fa parte il proprietario
“Data e ora dell’ultima modifica
09/01/2014
M. Malatesta 1-Comandi su file e directory-14 13
Comando: ls -aF
Effetto: elenco completo (all) con file nascosti della directory corrente
$ ls -aF
./ .bashrc lettera pippo* progetto@
../ .exrc libro/ pippo.c src/
.Xdefaults .newsrc mail/ pippo.zip tesi/
$ _
.indica la directory corrente
.. indica la directory superiore I file inizianti con il punto (ad es. .bashrc) sono file nascosti che hanno, come un particolare significato che vedremo.1. Gestione dei file
- ls
Esempi:
$ ls c* /* elenca tutti i file della directory corrente il cui nome inizia con c */
$ ls /etc /* elenca dei file presenti nella directory etc */
$ ls –al prog.c /* mostra i dettagli del file prog.c */
1. Gestione dei file
- ls
09/01/2014
M. Malatesta 1-Comandi su file e directory-14 15
1. Gestione dei file
- chmod
Comando: chmod attributi nomefile
Effetto: cambia (change mode) permessi di accesso di un file
In un S.O. in multiutenza, a scopo di protezione e sicurezza dei dati dei vari utenti, nonchè di quelli del S.O, ad ogni file sono associati dei parametri, dette permessi, impostabili dal proprietario del file o dal system administrator.
L'accesso ad un file può essere in base alla categoria di utenza. L'utente può essere:
• il proprietario del file (user);
• appartenente al gruppo di utenti del proprietario del file (group);
• un utente estraneo (other)
esecuzione x
Permesso di … Simbolo
Nessun permesso -
scrittura o modifica w
Lettura r
1. Gestione dei file
- chmod
Per gli attributi si tenga presente la tabella a fianco
Ad esempio
$ chmod 744 prog.txt
imposta sul file prog.txt per il proprietario (user) permessi completi (rwx, 7), al groupsola lettura (r, 4) e agli others sola lettura (r, 4)
6 5 4 3 2 1 0 Rappr.
ottale
011 wx
100 r
101 rx
110 rw
010 w
Rappr.
binaria Permesso
001 x
000 None
09/01/2014
M. Malatesta 1-Comandi su file e directory-14 17
1. Gestione dei file
- chmod
Ad esempio
$ chmod 740 file.txt
dà allo user permessi completi (rwx, 7), al group sola lettura e agli othersnessun permesso
Rappr.
binaria Rappr.
ottale Permesso Utente
0 0
- other
100 4
r group
111 7
rwx user
1. Gestione dei file
- chmod
Un ulteriore modo prevede l’uso dei caratteri indicati nella tabella a fianco.
Esempi:
$ chmod g-x file.mem
Toglie al gruppo il permesso di esecuzione
$ chmod go-r private.dat
Toglie al gruppo e agli altri il permesso di
lettura w write
All a
Aggiungi +
Togli -
read r
Others o
Definizione Permesso
Group g
User u
09/01/2014
M. Malatesta 1-Comandi su file e directory-14 19
1. Gestione dei file
- cp
Comando: cp sorgente destinazione
Effetto: copia (copy) un file (sorgente) in un altro (destinazione) destinazionepuò essere un altro file o una directory
$ cp file1.txt file2.txt (copia del file file1.txt in file2.txt)
$ cp file1.txt temp (copia file1.txt nella directory temp)
1. Gestione dei file
- mv
Comando: mv sorgente destinazione
Effetto: sposta (move) un file (sorgente) in destinazione.
destinazionepuò essere un altro file o una directory
$ mv file1.txt file2.txt (cambia nome da file1.txt a file2.txt)
$ mv file1.txt temp (sposta file1.txt nella directory temp)
Esempio:
$ mv /usr/marco/lettera /usr//arco/lett1
09/01/2014
M. Malatesta 1-Comandi su file e directory-14 21
1. Gestione dei file
- rm
Comando: rm filename
Effetto: elimina (remove) il file filename dalla directory
$ rm file1.txt (elimina file1.txt)
$ rm temp/* (elimina tutti i file dalla directory temp)
A volte è utile aggiungere il parametro “-i” affinchè il sistema chieda conferma dell’operazione che sta per essere eseguita. Si può così evitare la cancellazione erronea di file.
Esempio:
$ rm /usr/marco/lettera /* rimuove il file lettera nella directory marco, che si trova all’interno della directory usr */
1. Gestione dei file
- cat
Comando: cat filename [filename]
Effetto: mostra a video il contenuto di uno o più filename
$ cat programma.c
#include <stdio.h>
int main() {
printf("Hello\n");
return 0;
09/01/2014
M. Malatesta 1-Comandi su file e directory-14 23
2. Gestione delle directory
- pwd
Comando: pwd
Effetto: mostra a video la directory corrente (print working directory)
$ pwd
/home/mauro
$
2. Gestione delle directory
- cd
Comando: cd
Effetto: consente di cambiare la directory corrente (change directory)
$ cd libri
$ pwd /home/libri
$ cd usr/rossi /* la directory corrente diventa “rossi” */
$ cd / /* la directory corrente diventa la "root“ */
$ cd programs /* la directory corrente diventa “programs”
subdirectory di quella attuale */
cd .. Sale di un livello (prima dei due punti è necessario lo spazio)
09/01/2014
M. Malatesta 1-Comandi su file e directory-14 25
2. Gestione delle directory
- cd
Esempi:
$ cd / /* la directory corrente diventa la root (si badi allo spazio) */
$ cd usr/rossi /* la directory corrente diventa rossi */
$ cd programs /* la directory corrente diventa programs
(supponendo sia una subdirectory di quella corrente) */
2. Gestione delle directory
- mkdir
Comando: mkdir nomedir
Effetto: crea una nuova directory nel percorso specificato (make directory)
$ mkdir temp
$ cd temp
$ pwd /home/temp
$ mkdir usr/rossi/programs /* crea la subdirectory “programs”
della directory “rossi” presente in usr
*/
09/01/2014
M. Malatesta 1-Comandi su file e directory-14 27
2. Gestione delle directory
- rmdir
Comando: rmdir nomedir
Effetto: elimina la directory indicata (remove directory)
$ rmdir temp
$
Argomenti
La shell
– osservazioni preliminari – osservazioni sintattiche – osservazioni pratiche
Prima serie di comandi 1. Gestione dei file
– ls – chmod – cp
2. Gestione delle directory – pwd
– cd – mkdir – rmdir
09/01/2014
M. Malatesta 1-Comandi su file e directory-14 29
Altre fonti di informazione
A. Lorenzi, D.Rossi – I fondamenti della programmazione-ATLAS