INTRO(1)

NOME
intro - Introduzione ai comandi utente

DESCRIZIONE
La sezione 1 del manuale descrive i comandi e gli strumenti per l'utente, per esempio gli strumenti per manipolare i file, le shell, i compilatori, i browser web, i visualizzatori e gli editor di file e di immagini, e così via. Tutti i comandi producono un valore di stato quando terminano. Questo valore può essere testato (per esempio in molte shell la variabile $? contiene lo stato dell'ultimo comando eseguito) per controllare se il comando è stato completato con successo. Per convenzione uno stato di uscita zero indica il successo, mentre uno stato diverso da zero significa che il comando non ha avuto successo. (Si possono trovare dettagli sugli stati di uscita in wait(2).) Uno stato di uscita diverso da zero è compreso tra 1 e 255, e molti comandi usano diversi valori per gli stati di uscita per indicare il motivo per cui il comando è fallito.

NOTES
Linux è una variante di Unix, e come prima approssimazione tutti i comandi utente sotto Unix lavorano esattamente nello stesso modo sotto Linux (e FreeBSD e molti altri sistemi tipo Unix).

Sotto Linux ci sono GUI (interfacce grafiche utente), in cui si può puntare, cliccare e trascinare, e, si spera, completare il lavoro senza leggere prima tonnellate di documentazione. L'ambiente Unix tradizionale è una CLI (interfaccia a linea di comando), in cui si digitano comandi per dire al computer cosa fare. Ciò è più rapido e più potente, ma è necessario scoprire quali siano i comandi. Di seguito il minimo essenziale per partire.

  Login
Per iniziare a lavorare probabilmente bisognerà prima aprire una sessione dando il nome utente e la password. Il programma login(1) avvia una shell (interprete dei comandi) per l'utente. In caso di login grafico si accede a uno schermo con menu o icone e un click del mouse avvierà una shell in una finestra. Vedere anche xterm(1).

  La shell
I comandi si digitano nella shell, l'interprete dei comandi. La shell non è incorporata nel sistema, è solo un programma, e l'utente può cambiare la propria shell. Ciascuno ha la sua favorita. Quella standard si chiama sh. Vedere anche ash(1), bash(1), chsh(1), csh(1), dash(1), ksh(1), zsh(1).

Una sessione può essere così:

    knuth login: aeb
    Password: ********
    $ date
    Tue Aug  6 23:50:44 CEST 2002
    $ cal
         August 2002
    Su Mo Tu We Th Fr Sa
                 1  2  3
     4  5  6  7  8  9 10
    11 12 13 14 15 16 17
    18 19 20 21 22 23 24
    25 26 27 28 29 30 31
    $ ls
    bin  tel
    $ ls -l
    total 2
    drwxrwxr-x   2 aeb       1024 Aug  6 23:51 bin
    -rw-rw-r--   1 aeb         37 Aug  6 23:52 tel
    $ cat tel
    maja    0501-1136285
    peter   0136-7399214
    $ cp tel tel2
    $ ls -l
    total 3
    drwxr-xr-x   2 aeb       1024 Aug  6 23:51 bin
    -rw-r--r--   1 aeb         37 Aug  6 23:52 tel
    -rw-r--r--   1 aeb         37 Aug  6 23:53 tel2
    $ mv tel tel1
    $ ls -l
    total 3
    drwxr-xr-x   2 aeb       1024 Aug  6 23:51 bin
    -rw-r--r--   1 aeb         37 Aug  6 23:52 tel1
    -rw-r--r--   1 aeb         37 Aug  6 23:53 tel2
    $ diff tel1 tel2
    $ rm tel1
    $ grep maja tel2
    maja    0501-1136285
    $

A questo punto digitando Control-D si termina la sessione.

Il carattere $ in questo caso è il prompt dei comandi ○oè il modo della shell di indicare che è pronta per il prossimo comando). Il prompt può essere personalizzato in moltissimi modi, includendo cose come nome utente, nome macchina, directory attuale, ora, ecc. Un'assegnazione PS1="Cosa faccio ora, capo? " cambierebbe il prompt come indicato.

Vediamo che ci sono comandi date (che fornisce data e ora), e cal (che fornisce un calendario).

Il comando ls elenca i contenuti della directory attuale ○oè elenca i file presenti). Con l'opzione -l fornisce un elenco lungo, che include proprietario, dimensione e data del file, e i permessi degli utenti per modificare o cambiare il file. Per esempio il file "tel" è lungo 37 byte, il proprietario è aeb che può leggerlo e scriverlo, altri possono solo leggerlo. Proprietario e permessi possono essere cambiati dai comandi chown e chmod.

Il comando cat visualizzerà il contenuto di un file. (Il nome viene da "concatenate and print": tutti i file indicati come parametri sono concatenati e inviati allo "standard output" (si veda stdout(3)), che qui è il terminale video).

Il comando cp (da "copy") copierà un file.

Il comando mv (da "move"), d'altra parte, si limita a rinominarlo.

Il comando diff elenca le differenze tra due file. In questo caso non c'è output perché non ci sono differenze.

Il comando rm (da "remove") cancella il file, e si faccia attenzione: è andato. Nessun cestino per la carta straccia o altro. Cancellato significa perso.

Il comando grep (da "g/re/p") trova le ricorrenze di una stringa in uno o più file. In questo caso trova il numero di telefono di Maja.

  Nomi di percorso e la directory attuale
I file risiedono in un grande albero, la gerarchia dei file. Ciascuno ha un nome di percorso che descrive il percorso dalla radice dell'albero (che è chiamata /) al file. Per esempio, un nome di percorso completo potrebbe essere /home/aeb/tel. Usare sempre nomi di percorso completi non sarebbe conveniente, e il nome di un file nella directory attuale potrebbe essere abbreviato dando solo l'ultimo componente. Questa è la ragione per cui /home/aeb/tel può essere abbreviato in tel quando la directory attuale è /home/aeb.

Il comando pwd stampa la directory attuale.

Il comando cd cambia la directory attuale.

Si provino alternativamente i comandi cd
 e pwd e si esamini l'uso di cd:
 "cd", "cd .", "cd ..", "cd /" e "cd ~".

  Directory
Il comando mkdir crea una nuova directory.

Il comando rmdir rimuove una directory se è vuota, altrimenti si lamenta.

Il comando find (con una sintassi piuttosto barocca) troverà file con il nome indicato o con altre proprietà. Per esempio "find . -name tel" troverà il file tel a partire dalla directory attuale (che è chiamata .). E "find / -name tel" farà lo stesso, ma partendo dalla radice dell'albero. Ricerche ampie su un disco di molti GB richiederanno tempo, e potrebbe essere meglio usare locate(1).

  Dischi e Filesystem
Il comando mount attaccherà il filesystem presente su un disco (o floppy, o CDROM o altro) alla grande gerarchia del filesystem. E umount lo stacca di nuovo. Il comando df informerà su quanto spazio è ancora libero sul disco.

  Processi
Su un sistema Unix molti processi degli utenti e di sistema sono in funzione contemporaneamente. Quello che si sta utilizzando funziona in primopiano, gli altri sullo sfondo. Il comando ps visualizzerà i processi attivi e i numeri a loro associati. Il comando kill permette di sbarazzarsene. Senza opzioni è una richiesta amichevole: per favore vattene. E "kill -9" seguito dal numero del processo terminerà immediatamente il processo stesso. I processi in primo piano possono spesso essere interrotti digitando Control-C.

  Ottenere informazioni
Esistono migliaia di comandi, ciascuno con molte opzioni. I comandi tradizionali sono documentati nelle pagine di manuale, (come questa), dunque il comando "man kill" documenterà l'uso del comando "kill" (e "man man" documenterà il comando "man"). Il programma man invia il testo a qualche paginatore, di solito less. Premere la barra spaziatrice per andare alla pagina successiva, premere q per uscire.

Nella documentazione è abitudine fare riferimento alle pagine di manuale indicando nome e numero di sezione, come in man(1). Le pagine di manuale sono concise, e permettono di trovare rapidamente qualche dettaglio dimenticato. Per i nuovi arrivati è utile un testo introduttivo con più esempi e spiegazioni.

Molto del software GNU/FSF è fornito con file info. Digitare "info info" per un'introduzione all'uso del programma info.

Argomenti speciali sono spesso trattati in HOWTO. Si guardi in /usr/share/doc/howto/en usando un browser se vi si trovano file in HTML.

VEDERE ANCHE
ash(1), bash(1), chsh(1), csh(1), dash(1), ksh(1), locate(1), login(1), man(1), xterm(1), zsh(1), wait(2), stdout(3), man-pages(7), standards(7)

COLOPHON
Questa pagina fa parte del rilascio 4.00 del progetto Linux man-pages. Una descrizione del progetto, le istruzioni per la segnalazione degli errori, e l'ultima versione di questa pagina si trova su http://www.kernel.org/doc/man-pages/. La versione italiana fa parte del pacchetto man-pages-it v. 4.00, a cura di: ILDP "Italian Linux Documentation Project" http://www.pluto.it/ildp
Per la traduzione in italiano si può fare riferimento a http://www.pluto.it/ildp/collaborare/
Segnalare eventuali errori di traduzione a ildp@pluto.it