Guida Linux: i comandiGeneralita'Come abbiamo visto, la shell non e' altro che un interprete di comandi. I comandi digitati dall'utente vengono letti dalla shell, interpretati e inviati al kernel per essere eseguiti. I comandi vengono digitati dall'utente sulla riga comandi della shell. La riga comandi e' una riga digitabile che comincia dal prompt. Il prompt e' un carattere o un insieme di caratteri che possono essere personalizzati dall'utente. Il prompt dell'utente root (il superuser) inizia con il carattere '#' (cancelletto), mentre il prompt di un utente qualsiasi inizia con il carattere '$' (dollaro). Ecco un esempio di prompt: mau@localhost mau]$_ il carattere di sottolineatura '_' (underscore) rappresenta il cursore dal quale e' possibile iniziare a scrivere. Ma un prompt come questo appena visto puo' essere personalizzato modificando la variabile PS1 presente nel file di configurazione .bash_profile. Ad esempio si potrebbe definire un prompt di questo tipo: sto aspettando un tuo comando:_ I comandi sono dei programmi che sono contenuti all'interno di alcune directory speciali come le directory /bin e /sbin. Quando l'utente digita il nome del comando/programma e preme il tasto invio, la shell cerca tale file in alcune directory predefinite (come /bin e /sbin appunto) e se lo trova lo esegue. In caso contrario produce un errore del tipo bash: nome-comando : command not found
cioe' comando non trovato. Un comando e' composto dal nome del comando stesso, da una o piu' opzioni facoltative e da uno o piu' argomenti
facoltativi. Un argomento e' solitamente il nome di un file sul quale il comando deve agire. Alcuni comandi prevedono
degli argomenti obbligatori, altri no:
nome-comando -opzione argomento
il nome del comando deve essere separato dalle opzioni da uno spazio, cosi' come le opzioni e gli eventuali argomenti.
Le opzioni sono specificate usando un trattino '-' e la lettera o le lettere che specificano le opzioni. L'ordine e':
1) nome-comando, spazio, 2) -opzioni, spazio, 3) argomenti. Tra il trattino ed i caratteri di opzione non devono essere
presenti spazi. Ad esempio il comando ls consente l'uso di alcune opzioni come l (lista estesa) a (tutti i file)
i (visualizza inode) e via dicendo. Percio' per visualizzare l'elenco dei file di una directory si puo' usare il comando
'ls -lai'. Se si vogliono visualizzare le informazioni di un file ben preciso, occorre specificare il nome del file come
argomento. Ad esempio con il comando 'ls -l pippo' vengono visualizzate le informazioni sul file pippo.
Ecco alcuni esempi dello stesso comando, alcuni errati ed alcuni corretti:
ls -lai (corretto)
un esempio di comando che puo' accettare piu' argomenti e' il comando cp (CoPy, cioe' copia) che consente
di effettuare la copia di un file in un altro file con un nome diverso. Questo comando puo' essere utile
se si possiede un documento importante e si desidera salvarlo in una directory di salvataggio. Qualora
il file originario venisse cancellato accidentalmente, si avrebbe sempre a disposizione la sua copia
nella directory di salvataggio. Percio' si puo' usare il comando cp specificando il file da copiare
ed il nome della nuova copia dello stesso file. Ad esempio:
cp documento /home/mau/salvataggi/documento.bak
come si puo' vedere il primo argomento del comando cp e' 'documento' mentre il secondo argomento e'
'/home/mau/salvataggi/documento.bak'. In questo comando non sono presenti opzioni poiche' non
e' presente un carattere '-' che contraddistingue le opzioni. Le opzioni infatti, per definizione
sono facoltative. Nel primo argomento non e' stato specificato il path completo,
cioe' il percorso per raggiungere il file documento. In questo caso la shell sa di dover reperire
tale file dalla directory corrente. Per default infatti se non si specifica un path, la shell
cerca il file nella directory corrente (chiamata anche directory di lavoro). Nel secondo argomento invece
e' stato specificato il path completo, perche' altrimenti la shell avrebbe copiato il file documento
nella directory corrente con il nome documento.bak. Cio' sarebbe stato possibile, ma il nostro
obiettivo e' quello di salvarlo in una directory diversa e preposta al salvataggio dei nostri documenti.
Ad ogni modo il comando 'cp documento documento.bak' e' un comando perfettamente legale in quanto i due
argomenti hanno nomi diversi. Non si puo' dire altrettanto del comando: 'cp documento documento',
in quanto il nome del file iniziale e quello della copia sono identici.
In questo caso infatti riceveremmo un messaggio di errore della shell che ci informa
che il file documento esiste gia'. Non e' possibile infatti avere due file diversi con lo stesso nome
all'interno della stessa directory. Se per assurdo cio' fosse possibile, nel caso si volesse visualizzare
il file documento, quale dei due file dovrebbe aprire la shell? Al contrario due file con lo stesso nome
possono esistere nel sistema purche' residenti in due directory distinte. Nell'esempio sopra avremmo
potuto percio' scrivere:
cp documento /home/mau/salvataggi/documento
ora i due argomenti hanno lo stesso nome (documento) ma questo comando e' perfettamente legale e la shell lo
interpretera' senza problemi. Questo perche' i due file pur avendo lo stesso nome risiedono in directory diverse.
Non esiste percio' ambiguita' in questo caso, purche' per referenziare uno dei due file venga specificato il path completo.
Nell'esempio la directory che contiene il file originale e' quella corrente cioe' /home/mau/ e per referenziare
il file originale occorre scrivere /home/mau/documento; la copia di tale file invece risiede nella directory di salvataggio
/home/mau/salvataggi pertanto per referenziarla occorre scrivere /home/mau/salvataggi/documento. Per lavorare
con i file e' necessario conoscere alcuni comandi basilari come cp, mv, rm ed altri: cio' sara' oggetto del
prossimo capitolo.
Copyright (c) 2002 M. Silvestri |