giovedì 15 novembre 2007

Linux: man, informazioni sui comandi

Abbiamo già visto nel post precedente, come la shell non sia altro che un'interfaccia di tipo testo con cui dare comandi a Linux. Non clicchiamo su qualcosa, niente tasto destro o sinistro: solo testo, puro testo, nient'altro che testo. Ed una vera foresta di comandi mnemonici da mandar giù, con ancora più opzioni da poter usare per ognuno di essi, in cui soprattutto chi proviene da Windows o più in generale gli amanti dell'interfaccia grafica potrebbe/protrebbero facilmente perdersi.

Prima di andare perciò dispersi in questa selva oscura, voglio condividere con voi altre informazioni di base per non perderci mai, o quanto meno ritrovarci nel caso "che la diritta via era smarrita". Linux infatti è molto ben documentato, e per ogni comando c'è la possibilità di averne immediatamente una descrizione e la lista della sue possibili opzione tramite un apposito comando: man.

Man è un'interfaccia ai manuali disponibili sul vostro sistema consultabili da shell. Prende in input i file contenenti questi manuali scritti in un linguaggio di formattazione chiamato Troff (come concetto analogo all'HTML nel senso che all'interno dello testo stesso vi sono anche le istruzioni di formattazione), e produce qualcosa di simile a quanto riportato più sotto.

Facciamo un esempio concreto: tramite il comando man ls visualizziamo le pagine del manuale del comando ls usato per avere la lista dei file contenuti in una directory. Aprite la shell (come fare lo trovate nel post precedente), e date il comando

$ man ls

(il $ rappresenta il prompt, anch'esso spiegato nel post precedente), otterrete quanto segue:

LS(1) User Commands LS(1)

NAME
ls - list directory contents

SYNOPSIS
ls [OPTION]... [FILE]...

DESCRIPTION
List information about the FILEs (the current directory by default). Sort entries alphabetically if none of -cftuvSUX nor --sort.

Mandatory arguments to long options are mandatory for short options too.

-a, --all
do not ignore entries starting with .

-A, --almost-all
do not list implied . and ..

--author
with -l, print the author of each file

-b, --escape
print octal escapes for nongraphic characters

--block-size=SIZE
use SIZE-byte blocks

-B, --ignore-backups
do not list implied entries ending with ~

-c with -lt: sort by, and show, ctime (time of last modification of file status information) with -l: show ctime and sort by name otherwise: sort
by ctime

-C list entries by columns

--color[=WHEN]
control whether color is used to distinguish file types. WHEN may be ‘never’, ‘always’, or ‘auto’

-d, --directory
list directory entries instead of contents, and do not dereference symbolic links
Manual page ls(1) line 1/208 18%


Come potete vedere man formatta a video una serie di informazioni sul comando ls:

- per comodità infatti il manuale è stato diviso in sezione, una per ogni tipologia di comandi, ls è nella prima (1), la sezione dei comandi utente (user commands);
- NAME contiene il nome del comando così come va scritto nella shell ed una sua breve descrizione;
- SINOPSYS indica come va usato il comando in tutti i possibili casi, comprese le eventuali opzioni e gli argomenti;
- DESCRIPTION fornisce una descrizione più dettagliata del comando;
- segue la lista dei possibili argomenti del comando con la loro descrizione.

Per muovervi all'interno di documenti molto lunghi premete i tasti "page up" e "page down" ("Pag con freccia all'insù" e "Pag con freccia all'ingiù" sulla vostra tastiera) e potrete andare su e giù nel testo visualizzandone la parte che v'interessa.

Cercate un termine all'interno del testo? Premete il tasto "/" (sopra il 7 nella tastiera italiana) e scrivete la stringa cercata, poi date invio. Man vi evidenzierà tutto le occorrenze trovate.

Ma non finisce qua: man fa altre mille cosette simpatiche. Quali? Beh, chi meglio di man stesso può dirvelo. Date il comando

$ man man

Si esatto, come avrete già immaginato, abbiamo chiesto a man di visualizzare il suo stesso manuale. Consultatelo usando una Ubuntu, trovete in italiano tutta una serie di utili descrizioni sul modo in cui sono organizzati i manuali, e capirete meglio l'output di man quando avete chiesto informazioni sul comando ls.

Ultima cosa: quando avete terminato la consultazione e volete uscire dalla pagina di manuale, premete il tasto "q", sta per quit.

@:\>