Fino ad ora avete visto svariati comandi e i loro misteriosi argomenti e opzioni. In questa lezione, proveremo a dissipare alcuni di questi misteri. Questa lezione introdurrà i seguenti comandi.
I comandi possono essere di uno di questi 4 tipi differenti:
cd
è un comando
incorporato della shell.Spesso è utile sapere esattamente quale dei 4 tipi di comandi si sta usando e Linux fornisce un paio di modi per scoprirlo.
Il comando type
è un comando incorporato della shell che mostra il tipo
di comando che la shell eseguirà, dato un determinato nome di comando.
Funziona in questo modo:
type comando
dove "comando" è il nome del comando che si vuole esaminare. Qui ci sono alcuni esempi:
[io@linuxbox io]$ type type
type è un comando interno di shell
[io@linuxbox io]$ type ls
ls ha `ls --color=tty` come alias
[io@linuxbox io]$ type cp
cp è /bin/cp
Qui vediamo il risultato di tre comandi differenti. Notare quello per ls (preso da un sistema Fedora) e come il comando ls sia in effetti un alias per il comando ls con l'opzione "-- color=tty" aggiunta. Ora sappiamo il perché l'output di ls è mostrato a colori!
Qualche volta c'è più di una versione di un programma eseguibile
intallata su di un sistema. Mentre questo non è molto comune su sistemi
desktop, non è inusuale su grandi server. Per determinare l'esatta posizione
di un dato eseguibile, si usa il comando which
:
[io@linuxbox io]$ which ls
/bin/ls
Il comando which
funziona solo per programmi eseguibili, non per
i comandi incorporati né per alias che sono sostituti di programmi
eseguibili effettivi.
Con queste nozioni su cosa è un comando, ora possiamo cercare la documentazione disponibile per ogni genere di comando.
bash
ha una funzione di aiuto in linea disponibile per ogni comando
incorporato della shell. Per usarla, digitare "help" seguito dal nome del
comando incorporato della shell. Opzionalmente, si può aggiungere
l'opzione -m per cambiare il formato di uscita. Per esempio:
[io@linuxbox io]$ help -m cd
NAME
cd - Change the shell working directory.
SYNOPSIS
cd [-L|-P] [dir]
DESCRIPTION
Change the shell working directory.
Change the current directory to DIR. The default DIR is the value of the
HOME shell variable.
The variable CDPATH defines the search path for the directory containing
DIR. Alternative directory names in CDPATH are separated by a colon (:).
A null directory name is the same as the current directory. If DIR begins
with a slash (/), then CDPATH is not used.
If the directory is not found, and the shell option `cdable_vars' is set,
the word is assumed to be a variable name. If that variable has a value,
its value is used for DIR.
Options:
-L force symbolic links to be followed
-P use the physical directory structure without following symbolic
links
The default is to follow symbolic links, as if `-L' were specified.
Exit Status:
Returns 0 if the directory is changed; non-zero otherwise.
SEE ALSO
bash(1)
IMPLEMENTATION
GNU bash, version 4.1.5(1)-release (i486-pc-linux-gnu)
Copyright (C) 2009 Free Software Foundation, Inc.
Un nota sulla notazione: Quando le parentesi quadre appaiono nella
descrizione della sintassi di un comando, indicano elementi opzionali. Un carattere
di barra verticale indica elementi mutualmente esclusivi. Nel caso del comando
cd
visto sopra:
cd [-L|-P] [dir]
Questa notazione dice che il comando cd
può essere seguito,
opzionalmente, o da un'opzione "-L" o da una "-P", e può anche essere
seguito opzionalmente dall'argomento "dir".
Molti programmi eseguibili supportano una opzione "--help" che mostra una descrizione della sintassi del comando supportata e le opzioni. Per esempio:
[io@linuxbox io]$ mkdir --help
Uso: mkdir [OPZIONE]... DIRECTORY...
Crea la/le DIRECTORY, se ancora non esiste.
-Z, --context=CONTEXT (SELinux) imposta il contesto di sicurezza a CONTEXT
Gli argomenti obbligatori per le opzioni lunghe valgono anche per quelle brevi.
-m, --mode=MODO imposta i permessi (come in chmod), non a=rwx - umask
-p, --parents nessun errore se esiste, crea la directory genitrice se
necessario
-v, --verbose stampa un messaggio per ogni directory creata
--help mostra questo aiuto ed esce
--version stampa le informazioni sulla versione ed esce
Alcuni programmi non supportano l'opzione "--help", ma si può comunque provare. Spesso termina con un messaggio di errore che mostra un'informazione simile sull'uso del comando.
La maggior parte dei programmi eseguibili destinati per l'uso dalla riga di comando
forniscono una parte di documentazione formale chiamata manuale o man page.
Uno speciale programma di paginazione chiamato man
è usato per vedere questa
documentazione. Questo programma è usato nel modo seguente:
man programma
dove "programma" è il nome del comando da visualizzare. Le man page variano
qualcosa nel formato ma generalmente contengono un titolo, un sommario della
sintassi del comando, una descrizione dello scopo del comando, e un elenco delle
opzioni del comando con la descrizione di ognuna di esse. Le man page, comunque,
usualmente non includono esempi, e vengono intese come un manuale di consultazione,
non come un tutorial. Come esempio, proviamo a visualizzare la man page del
comando ls
:
[io@linuxbox io]$ man ls
Sulla maggior parte dei sistemi Linux, man
usa less
per visualizzare
la pagina di manuale, così tutti i comandi familiari di less
funzionano
mentre si stà visualizzando la pagina.
Molti dei pacchetti di software installati nel sistema hanno i file di
documentazione che si trovano nella directory /usr/share/doc. La maggior parte
di questi file sono memorizzati in formato di testo piano (semplice) e possono
essere visualizzati con il browser web. Si possono incontrare alcuni file
che terminano con l'estensione ".gz". Questo indica che sono stati compressi con
il programma di compressione gzip
. Il pacchetto gzip include una versione
speciale di less
chiamata zless
che visualizzerà il contenuto dei file di
testo compressi con gzip.