<!--
     The FreeBSD Italian Documentation Project

     $FreeBSD$
-->

<chapter id="getting-started">
  <title>Iniziamo</title>

  <sect1 id="getting-started-login">
    <title>Effettuare il login</title>

    <para>Una volta che l'utente si &egrave; collegato a un sistema Unix, gli
      viene chiesto di inserire un <emphasis>login</emphasis> username
      (nome utente) e una <emphasis>password</emphasis> (codice segreto).  Il
      login username &egrave; il nome univoco dell'utente sul sistema.  La
      password &egrave; un codice modificabile conosciuto solo dall'utente.
      Alla richiesta di <emphasis>login</emphasis>, l'utente deve inserire lo
      username e alla richiesta della <emphasis>password</emphasis>, deve essere
      inserita la password effettiva.</para>

    <note>
      <para><emphasis>Unix &egrave; un sistema case sensitive</emphasis> (fa
        distinzione tra caratteri minuscoli e maiuscoli).  Quindi sia il
        <emphasis>login</emphasis> username che la <emphasis>password</emphasis>
        devono essere inseriti esattamente come sono stati creati; il login
        username &egrave; normalmente in minuscolo.</para>
    </note>

    <sect2 id="getting-started-login-terminal-type">
      <title>Tipi di terminali</title>

      <para>Molti sistemi sono configurati in modo tale da richiedere all'utente
        il tipo di terminale da usare, il quale dovrebbe essere settato al tipo
        di terminale usato nella fase di login.  Molti computer lavorano
        se si sceglie il tipo <literal>vt100</literal>.  Gli utenti connessi
        tramite una workstation Sun molto probabilmente useranno il tipo
        <literal>sun</literal>; quelli che usano un Terminale-X molto
        probabilmente useranno <literal>xterms</literal> oppure
        <literal>xterm</literal>.</para>

      <para>Il tipo di terminale indica al sistema Unix come interagire quando
        una sessione viene aperta.</para>

      <para>Pu&ograve; essere necessario risettare il tipo di terminale,
        digitando il comando:</para>

      <informaltable frame="none">
        <tgroup cols="2">
          <colspec colwidth="3.3in">

          <tbody>
            <row>
              <entry><command>setenv TERM <replaceable>&lt;tipo di
                  terminale&gt;</replaceable></command></entry>

              <entry>-se si usa la shell C
                (vedere <link linkend="shells">Capitolo 5</link>)</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>

      <para>(Inoltre su alcuni sistemi Unix, ad esempio MAGNUS, &egrave;
        necessario dare il comando <command>unsetenv
          TERMCAP</command>.)</para>

      <para>oppure</para>

      <informaltable frame="none">
        <tgroup cols="2">
          <colspec colwidth="3.3in">

          <tbody>
            <row>
              <entry><command>TERM=<replaceable>&lt;tipo di
                  terminale&gt;</replaceable>; export TERM</command></entry>

              <entry>-se si usa la shell Bourne
                (vedere <link linkend="shells">Capitolo 5</link>)</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>

      <para>dove <replaceable>&lt;tipo di terminale&gt;</replaceable> &egrave;
        il tipo di terminale, come <literal>vt100</literal>, che si desidera
        settare.</para>
    </sect2>

    <sect2 id="getting-started-login-passwords">
      <title>Password</title>

      <para>Quando viene assegnato il proprio account, si riceve una password
        iniziale.  Questa password &egrave; importate sia per la sicurezza
        del sistema sia per una sicurezza personale, perci&ograve; la password
        per il proprio account pu&ograve; essere cambiata a propria scelta.  Il
        comando per cambiare una password &egrave;
        &man.passwd.1;.  Verr&agrave; chiesto di inserire sia la propria
        vecchia password, sia la nuova password desiderata, quest'ultima due
        volte.  Se si sbaglia la propria vecchia password o non si inserisce
        quella nuova nello stesso modo per due volte, il sistema
        indicher&agrave; che la password non ha subito cambiamenti.</para>

      <para>Alcuni amministratori di sistema hanno programmi che verificano
        l'accuratezza di una password (che deve essere sufficientemente criptica
        per assicurare una certa sicurezza al sistema).  Un cambiamento di
        password pu&ograve; essere rifiutato da questi programmi.</para>

      <para>Quando si sceglie una password, &egrave; importante che questa non
        sia in qualche modo indovinabile n&eacute; per qualche sconosciuto
        che tenta di scoprirla n&eacute; per un conoscente.  I suggerimenti per
        scegliere e mantenere una password sono i seguenti:</para>

      <itemizedlist>
        <listitem>
          <para>non usare una parola (o parole) di un linguaggio;</para>
        </listitem>

        <listitem>
          <para>non usare il proprio nome;</para>
        </listitem>

        <listitem>
          <para>non usare informazioni che possono essere trovate nel proprio
            portafoglio;</para>
        </listitem>

        <listitem>
          <para>non usare informazioni comunemente conosciute circa se stessi
            (come il soprannome, patente di guida, ecc.);</para>
        </listitem>

        <listitem>
          <para>non usare caratteri di controllo.  Alcuni sistemi non li
            accettano;</para>
        </listitem>

        <listitem>
          <para>non scrivere la password in qualche posto;</para>
        </listitem>

        <listitem>
          <para>non dare la propria password a *nessuno*;</para>
        </listitem>
      </itemizedlist>

      <itemizedlist>
        <listitem>
          <para>usare un mix di tipi di caratteri (alfabetici, numerici,
            speciali);</para>
        </listitem>

        <listitem>
          <para>usare un mix di caratteri maiuscoli e caratteri
            minuscoli;</para>
        </listitem>

        <listitem>
          <para>usare un minimo di 6 caratteri;</para>
        </listitem>

        <listitem>
          <para>scegliere una password in modo da poterla ricordare;</para>
        </listitem>

        <listitem>
          <para>cambiare di frequente la propria password;</para>
        </listitem>

        <listitem>
          <para>assicurarsi che nessuna persona vicino a voi vi guardi quando si
            inserisce la propria password.</para>
        </listitem>
      </itemizedlist>
    </sect2>

    <sect2 id="getting-started-login-exiting">
      <title>Uscita</title>

      <para><keycombo action="simul">
          <keycap>Ctrl</keycap>
          <keycap>D</keycap>
        </keycombo> - indica la fine di un flusso di dati;
        pu&ograve; far uscire dal sistema un utente.  L'ultimo caso &egrave;
        disabilitato su molti sistemi</para>

      <para><keycombo action="simul">
          <keycap>Ctrl</keycap>
          <keycap>C</keycap>
        </keycombo> - interruzione</para>

      <para>&man.logout.1; - rilascia il sistema</para>

      <para>&man.exit.1; - rilascia la shell</para>
    </sect2>

    <sect2 id="getting-started-login-identity">
      <title>Identit&agrave;</title>

      <para>Il sistema identifica un utente attraverso il numero di utente e il
        numero di gruppo (rispettivamente <emphasis>userid</emphasis> e
        <emphasis>groupid</emphasis>) assegnati dall'amministratore di sistema.
        Generalmente non &egrave; necessario conoscere il proprio userid e
        groupid, poich&egrave; il sistema traduce in modo automatico lo userid
        in username (e viceversa) ed il groupid in groupname (e viceversa).
        Probabilmente si conosce gi&agrave; lo username: &egrave; il nome
        utilizzato per il login.  Il groupname non &egrave; ovvio, e in
        realt&agrave; si pu&ograve; appartenere a pi&ugrave; di un gruppo.  Il
        proprio gruppo primario &egrave; quello associato con il proprio
        username nel file database delle password, configurato
        dall'amministratore di sistema.  Similmente, c'&egrave; un file database
        per i gruppi, dove l'amministratore di sistema pu&ograve; assegnare
        gruppi aggiuntivi ad un utente.</para>

      <para>Nei seguenti esempi il simbolo &prompt.user; &egrave; il proprio
        prompt di shell e non va digitato.</para>

      <para>Si pu&ograve; determinare il proprio userid e la lista dei gruppi di
        appartenenza con i comandi &man.id.1; e &man.groups.1;.  Su alcuni
        sistemi &man.id.1; mostra le informazioni sull'utente e le informazioni
        sul gruppo primario, esempio:</para>

      <screen>&prompt.user; <userinput>id</userinput>
uid=1101(frank) gid=10(staff)</screen>

      <para>su altri sistemi mostra anche le informazioni sui gruppi aggiuntivi
        di appartenenza:</para>

      <screen>&prompt.user; <userinput>id</userinput>
uid=1101(frank) gid=10(staff) groups=10(staff),5(operator),14(sysadmin),110(uts)</screen>

      <para>Il comando &man.groups.1; mostra le informazioni di tutti i gruppi
        di appartenenza, esempio:</para>

      <screen>&prompt.user; <userinput>groups</userinput>
staff sysadmin uts operator</screen>
    </sect2>
  </sect1>

  <sect1 id="getting-started-comm-line-struct">
    <title>Struttura della linea di comando di Unix</title>

    <para>Un <emphasis>comando</emphasis> &egrave; un programma che chiama
      il sistema Unix per qualche compito.  Un comando ha la forma:</para>

    <para><command><replaceable>comando</replaceable>
        [<replaceable>opzioni</replaceable>]
        [<replaceable>argomenti</replaceable>]</command></para>

    <para>dove un <emphasis>argomento</emphasis> indica su cosa il comando deve
      realizzare la sua azione, generalmente un file o una serie di file.
      Un'opzione modifica il comando, cambiandone il modo di esecuzione.</para>

    <para>I comandi sono case sensitive (sensibili alle lettere maiuscole e
      minuscole).  <command><replaceable>comando</replaceable></command>
      e <command><replaceable>Comando</replaceable></command> non sono
      la stessa cosa.</para>

    <para>Le <emphasis>opzioni</emphasis> sono generalmente precedute da un
      trattino (<keycap>-</keycap>) e per molti comandi, pi&ugrave; opzioni
      possono essere messe insieme nella forma:</para>

    <para><command><replaceable>comando</replaceable>
        -[<replaceable>opzione</replaceable>][<replaceable>opzione</replaceable>][<replaceable>opzione</replaceable>]</command></para>

    <para>esempio:</para>

    <para><command>ls -alR</command></para>

    <para>che mostrer&agrave; un listato lungo di tutti i file che si trovano
      nella directory corrente e ricorsivamente anche quelli che si trovano in
      tutte le sotto-directory.</para>

    <para>In molti comandi si possono separare le opzioni, facendole precedere
      ognuna da un trattino, esempio:</para>

    <para><command><replaceable>comando
        -opzione1 -opzione2 -opzione3</replaceable></command></para>

    <para>come in:</para>

    <para><command>ls -a -l -R</command></para>

    <para>Alcuni comandi hanno opzioni che richiedono parametri.  Le opzioni che
      richiedono parametri sono di solito specificate separatamente,
      esempio:</para>

    <para><command>lpr -Pprinter3 -#2 file</command></para>

    <para>che trasmetter&agrave; 2 copie del file specificato a
      <devicename>printer3</devicename>.</para>

    <para>Ci sono delle convenzioni standard per i comandi.  Comunque, non tutti
      i comandi Unix seguono questo standard.  Alcuni non richiedono il trattino
      prima dell'opzione e alcuni non permettono di mettere insieme pi&ugrave;
      opzioni, per esempio alcuni possono richiedere che ogni opzione sia
      preceduta da un trattino e separata con uno spazio bianco da un'altra
      opzione o argomento.</para>

    <para>Le opzioni e la sintassi di un comando sono mostrate nelle
      <emphasis>pagine man</emphasis> del comando.</para>
  </sect1>

  <sect1 id="getting-started-control-keys">
    <title>Tasti di controllo</title>

    <para>I <emphasis>tasti di controllo</emphasis> sono usati per realizzare
      speciali funzioni su linea di comando o all'interno di un editor.
      Queste funzioni possono essere generate premendo contemporaneamente il
      tasto <keycap>control</keycap> e alcuni altri <emphasis>tasti</emphasis>.
      Questa combinazione &egrave; generalmente indicata con
      <keycombo action="simul">
        <keycap>Ctrl</keycap>
        <keycap><replaceable>Tasto</replaceable></keycap>
      </keycombo> (oppure <keycombo action="simul">
        <keycap>^</keycap>
        <keycap><replaceable>Tasto</replaceable></keycap>
      </keycombo>).  <keycombo action="simul">
        <keycap>Control</keycap>
        <keycap>S</keycap>
      </keycombo> pu&ograve; essere scritto come <keycombo action="simul">
        <keycap>Ctrl</keycap>
        <keycap>S</keycap>
      </keycombo> (oppure <keycombo action="simul">
        <keycap>^</keycap>
        <keycap>S</keycap>
      </keycombo>).  Con i tasti di controllo le lettere maiuscole e minuscole
      sono la stessa cosa, cos&igrave; <keycombo action="simul">
        <keycap>Ctrl</keycap>
        <keycap>S</keycap>
      </keycombo> &egrave; lo stesso di <keycombo action="simul">
        <keycap>Ctrl</keycap>
        <keycap>s</keycap>
      </keycombo>.  Questo particolare esempio (<keycombo action="simul">
        <keycap>Ctrl</keycap>
        <keycap>S</keycap>
      </keycombo>) &egrave; un segnale di <emphasis>stop</emphasis> e
      dice al terminale di non accettare pi&ugrave; input.  Il terminale
      rimarr&agrave; sospeso finch&egrave; un segnale di
      <emphasis>start</emphasis> <keycombo action="simul">
        <keycap>Ctrl</keycap>
        <keycap>Q</keycap>
      </keycombo> non sar&agrave; generato.</para>

    <para><keycombo action="simul">
        <keycap>Ctrl</keycap>
        <keycap>U</keycap>
      </keycombo> &egrave; normalmente il segnale di
      <quote><emphasis>cancellazione di linea</emphasis></quote> per il proprio
      terminale.  Quando lo si digita, l'intera linea di input viene
      cancellata.</para>

    <para>Nell'editor &man.vi.1; si possono inserire i tasti
      di controllo all'interno del file di testo facendo seguire a
      <keycombo action="simul">
        <keycap>Ctrl</keycap>
        <keycap>V</keycap>
      </keycombo> il carattere di controllo desiderato; cos&igrave; per
      inserire in un documento <keycombo action="simul">
        <keycap>Ctrl</keycap>
        <keycap>H</keycap>
      </keycombo> si digita <keycombo action="simul">
        <keycap>Ctrl</keycap>
        <keycap>V</keycap>
      </keycombo>, <keycombo action="simul">
        <keycap>Ctrl</keycap>
        <keycap>H</keycap>
      </keycombo>.</para>
  </sect1>

  <sect1 id="getting-started-stty">
    <title>stty - controllo del terminale</title>

    <para>&man.stty.1; mostra o configura le opzioni di controllo del terminale.
      L'abbreviazione <quote><emphasis>tty</emphasis></quote> risale fino ai
      giorni dei <quote>teletypewrite</quote>, che erano associati alla
      trasmissione di messaggi telegrafici ed erano primitivi modelli di
      terminali di computer.</para>

    <para>Per i nuovi utenti, l'uso principale del comando &man.stty.1; riguarda
      l'assegnazione della funzione di <quote>cancellazione di linea</quote> ad
      un tasto specifico per i loro terminali.  Per i programmatori di sistema o
      per chi scrive script di shell, il comando &man.stty.1; fornisce uno
      strumento prezioso per la configurazione di molti aspetti legati al
      controllo di I/O di un dispositivo specifico, inclusi i seguenti:</para>

    <itemizedlist>
      <listitem>
        <para>carattere di erase (eliminazione carattere) e di
          line-kill (eliminazione linea);</para>
      </listitem>

      <listitem>
        <para>velocit&agrave; di trasmissione dati;</para>
      </listitem>

      <listitem>
        <para>controllo di parit&agrave; sulla trasmissione dati;</para>
      </listitem>

      <listitem>
        <para>controllo del flusso hardware;</para>
      </listitem>

      <listitem>
        <para>carattere di nuova linea (&lt;NL&gt;), di return (&lt;CR&gt;) e di
          alimentazione linea (&lt;LF&gt;);</para>
      </listitem>

      <listitem>
        <para>interpretazione del carattere tab;</para>
      </listitem>

      <listitem>
        <para>modifica di un input grezzo;</para>
      </listitem>

      <listitem>
        <para>trasformazione di lettere minuscole in lettere maiuscole.</para>
      </listitem>
    </itemizedlist>

    <para>Il comando &man.stty.1; &egrave; molto dipendente dal sistema, quindi
      consultare le relative <emphasis>pagine man</emphasis> sul proprio sistema
      per i dettagli.</para>

    <para><emphasis>Sintassi</emphasis></para>

    <para><command>stty [<replaceable>opzioni</replaceable>]</command></para>

    <para><emphasis>Opzioni generali</emphasis></para>

    <informaltable frame="none">
      <tgroup cols="2">
        <colspec colwidth="1.5in">

        <tbody>
          <row>
            <entry><option>(none)</option></entry>

            <entry>mostra i settaggi del terminale</entry>
          </row>

          <row>
            <entry><option>all (-a)</option></entry>

            <entry>mostra tutte le opzioni</entry>
          </row>

          <row>
            <entry><option>echoe</option></entry>

            <entry>richiama ERASE come BS-spazio-BS</entry>
          </row>

          <row>
            <entry><option>dec</option></entry>

            <entry>imposta la modalit&agrave; specifica dei sistemi operativi
              conformi al Digital Equipment Corporation (che distinguono ERASE
              da BACKSPACE) (non disponibile su tutti i sistemi)</entry>
          </row>

          <row>
            <entry><option>kill</option></entry>

            <entry>imposta il carattere per LINE-KILL</entry>
          </row>

          <row>
            <entry><option>erase</option></entry>

            <entry>imposta il carattere per ERASE</entry>
          </row>

          <row>
            <entry><option>intr</option></entry>

            <entry>imposta il carattere per INTERRUPT</entry>
          </row>
        </tbody>
      </tgroup>
    </informaltable>

    <para><emphasis>Esempi:</emphasis></para>

    <para>Con il comando &man.stty.1; si possono visualizzare e cambiare i
      settaggi del proprio terminale di controllo.  Per visualizzare tutti
      (<option>-a</option>) i settaggi correnti:</para>

    <screen>&prompt.user; <userinput>stty -a</userinput>
speed 38400 baud, 24 rows, 80 columns
parenb -parodd cs7 -cstopb -hupcl cread -clocal -crtscts
-ignbrk brkint ignpar -parmrk -inpck istrip -inlcr -igncr icrnl -iuclc
ixon -ixany -ixoff imaxbel
isig iexten icanon -xcase echo echoe echok -echonl -noflsh -tostop
echoctl -echoprt echoke
opost -olcuc onlcr -ocrnl -onocr -onlret -ofill -ofdel
erase kill werase rprnt flush lnext susp intr quit stop eof
^H     ^U    ^W     ^R    ^O   ^V  ^Z/^Y  ^C   ^\  ^S/^Q ^D</screen>

    <para>Per cambiare i settaggi usando &man.stty.1;, ad esempio per cambiare
      il carattere di erase da <keycombo action="simul">
        <keycap>Ctrl</keycap>
        <keycap>?</keycap>
      </keycombo> (il tasto elimina) a <keycombo action="simul">
        <keycap>Ctrl</keycap>
        <keycap>H</keycap>
      </keycombo>:</para>

    <screen>&prompt.user; <userinput>stty erase ^H</userinput></screen>

    <para>Questo setter&agrave; l'opzione del terminale solamente per la
      sessione corrente.  Per far in modo che questo comando sia eseguito
      automaticamente ad ogni login, &egrave; possibile inserire tale comando
      nel file <filename>.login</filename> o <filename>.profile</filename> di
      cui si parler&agrave; pi&ugrave; avanti.</para>
  </sect1>

  <sect1 id="getting-started-get-help">
    <title>Ottenere aiuto</title>

    <para>Il manuale di Unix, usualmente chiamato <emphasis>man page</emphasis>
      (pagine man), &egrave; disponibile per spiegare l'uso del sistema Unix e
      dei suoi comandi.  Per servirsi di una pagina man digitare il comando
      &man.man.1; al prompt di sistema seguito dal comando di cui si necessitano
      informazioni.</para>

    <para><emphasis>Sintassi</emphasis></para>

    <para><command>man [<replaceable>opzioni</replaceable>]
        <replaceable>nome_comando</replaceable></command></para>

    <para><emphasis>Opzioni generali</emphasis></para>

    <informaltable frame="none">
      <tgroup cols="2">
        <colspec colwidth="1.5in">

        <tbody>
          <row>
            <entry><option>-k
                <replaceable>parola_chiave</replaceable></option></entry>

            <entry>mostra alcune linee riassuntive dei comandi contenenti la
              parola chiave richiesta</entry>
          </row>

          <row>
            <entry><option>-M <replaceable>path</replaceable></option></entry>

            <entry>percorso per le pagine man</entry>
          </row>

          <row>
            <entry><option>-a</option></entry>

            <entry>mostra tutte le pagine man trovate (SVR4)</entry>
          </row>
        </tbody>
      </tgroup>
    </informaltable>

    <para><emphasis>Esempi:</emphasis></para>

    <para>Si pu&ograve; usare &man.man.1; per ottenere una linea riassuntiva di
      alcuni comandi che contengono la parola che si vuole ricercare con
      l'opzione <option>-k</option>, ad esempio per cercare la parola
      <emphasis>password</emphasis>, si digita:</para>

    <screen>&prompt.user; <userinput>man -k password</userinput>
passwd (5) - password file
passwd (1) - cambia la password</screen>

    <para>Il numero in parentesi indica la sezione delle pagine man dove sono
      stati trovati i riferimenti.  Si pu&ograve; accedere a quella pagina man
      (di default si fa riferimento al numero di sezione pi&ugrave; basso, ma si
      pu&ograve; usare un'opzione su linea di comando per specificarne uno
      differente) con:</para>

    <screen>&prompt.user; <userinput>man passwd</userinput>
PASSWD(1) USER COMMANDS PASSWD(1)

NOME
passwd - cambia password

SINTASSI
passwd [ -e login_shell ] [ username ]

DESCRIZIONE
passwd cambia (o setta) la password di un utente.
passwd chiede per due volte la nuova password, senza mostrarla.
Questo per prendere in considerazione la possibilit&agrave; di digitare errori.
Solamente l'utente stesso e il super-user possono cambiare la password
di un utente.

OPZIONI

-e Cambia la shell di login dell'utente.</screen>

    <para>Qui l'output &egrave; stato parafrasato e troncato per una questione
      di spazio e di copyright.</para>
  </sect1>

  <sect1 id="getting-started-directory-nav-control">
    <title>Navigazione e controllo delle directory</title>

    <para>Il file system di Unix &egrave; organizzato come la struttura
      ramificata di un albero a partire da root.  La directory
      <emphasis>root</emphasis> del sistema &egrave; rappresentata dal carattere
      di slash in avanti (<filename>/</filename>).  Le directory di sistema e
      quelle degli utenti sono organizzate sotto la directory
      <emphasis>root</emphasis>.  In Unix l'utente non ha una directory root;
      generalmente dopo il login gli utenti vengono posizionati nella loro
      directory <emphasis>home</emphasis>.  Gli utenti possono creare altre
      directory sotto la loro directory <emphasis>home</emphasis>.  La tabella
      che segue mostra alcuni comandi per la navigazione tra directory.</para>

    <table frame="all" id="getting-started-table-directory-nav-control">
      <title>Comandi di navigazione e controllo delle directory</title>

      <tgroup cols="2">
        <colspec colwidth="3in">

        <thead>
          <row>
            <entry align="center">Comando/Sintassi</entry>

            <entry align="center">Cosa fa</entry>
          </row>
        </thead>

        <tbody>
          <row>
            <entry><command>cd
                [<replaceable>directory</replaceable>]</command></entry>

            <entry>cambia directory</entry>
          </row>

          <row>
            <entry><command>ls
                [<replaceable>opzioni</replaceable>][<replaceable>directory
                o file</replaceable>]</command></entry>

            <entry>lista il contenuto della directory o i permessi del
              file specificato</entry>
          </row>

          <row>
            <entry><command>mkdir
                [<replaceable>opzioni</replaceable>]
                <replaceable>directory</replaceable></command></entry>

            <entry>crea una directory</entry>
          </row>

          <row>
            <entry><command>pwd</command></entry>

            <entry>mostra la directory (corrente) di lavoro</entry>
          </row>

          <row>
            <entry><command>rmdir [<replaceable>opzioni</replaceable>]
                <replaceable>directory</replaceable></command></entry>

            <entry>rimuove una directory</entry>
          </row>
        </tbody>
      </tgroup>
    </table>

    <para>Se si ha una certa familiarit&agrave; con DOS la tabella che segue
      paragona i suoi simili comandi a quelli Unix in modo tale da fornire un
      appropriato quadro di riferimento.</para>

    <table frame="all"
      id="getting-started-table-directory-nav-control-unix-vs-dos">
      <title>Comandi di navigazione e controllo delle directory Unix vs
        DOS</title>

      <tgroup cols="3">
        <colspec colwidth="3in">

        <colspec colwidth="2in">

        <thead>
          <row>
            <entry align="center">Comando</entry>

            <entry align="center">Unix</entry>

            <entry align="center">DOS</entry>
          </row>
        </thead>

        <tbody>
          <row>
            <entry>lista il contenuto di una directory</entry>

            <entry><command>ls</command></entry>

            <entry><command>dir</command></entry>
          </row>

          <row>
            <entry>crea una directory</entry>

            <entry><command>mkdir</command></entry>

            <entry><command>md</command> &amp;
              <command>mkdir</command></entry>
          </row>

          <row>
            <entry>cambia directory</entry>

            <entry><command>cd</command></entry>

            <entry><command>cd</command> &amp;
              <command>chdir</command></entry>
          </row>

          <row>
            <entry>rimuove una directory</entry>

            <entry><command>rmdir</command></entry>

            <entry><command>rm</command> &amp;
              <command>rmdir</command></entry>
          </row>

          <row>
            <entry>ritorna alla directory home dell'utente</entry>

            <entry><command>cd</command></entry>

            <entry><command>cd\</command></entry>
          </row>

          <row>
            <entry>mostra la directory corrente di lavoro</entry>

            <entry><command>pwd</command></entry>

            <entry><command>cd</command></entry>
          </row>
        </tbody>
      </tgroup>
    </table>

    <sect2 id="getting-started-directory-nav-control-pwd">
      <title>pwd - mostra la directory di lavoro</title>

      <para>In ogni momento si pu&ograve; determinare in che punto si &egrave;
        nella gerarchia del file system mostrando la directory di lavoro con il
        comando &man.pwd.1;, esempio:</para>

      <screen>&prompt.user; <userinput>pwd</userinput>
/home/frank/src</screen>
    </sect2>

    <sect2 id="getting-started-directory-nav-control-cd">
      <title>cd - cambia directory</title>

      <para>Ci si pu&ograve; portare in una nuova directory con il comando
        &man.cd.1;, cambio di directory.  &man.cd.1; accetta sia path name
        (percorsi) assoluti sia path name relativi.</para>

      <para><emphasis>Sintassi</emphasis></para>

      <para><command>cd [<replaceable>directory</replaceable>]</command></para>

      <para><emphasis>Esempi:</emphasis></para>

      <informaltable frame="none">
        <tgroup cols="2">
          <colspec colwidth="3.2in">

          <tbody>
            <row>
              <entry><command>cd</command> (oppure <command>chdir</command> in
                alcune shell)</entry>

              <entry>cambia directory</entry>
            </row>

            <row>
              <entry><command>cd</command></entry>

              <entry>si posiziona nella directory home dell'utente</entry>
            </row>

            <row>
              <entry><command>cd /</command></entry>

              <entry>si posiziona nella directory di sistema roor (/)</entry>
            </row>

            <row>
              <entry><command>cd ..</command></entry>

              <entry>sale di un livello di directory</entry>
            </row>

            <row>
              <entry><command>cd ../..</command></entry>

              <entry>sale di due livelli di directory</entry>
            </row>

            <row>
              <entry><command>cd
                  <replaceable>/completo/path/name/da/root</replaceable></command></entry>

              <entry>cambia directory rispetto a un path name assoluto
                (notare lo slash iniziale)</entry>
            </row>

            <row>
              <entry><command>cd
                  <replaceable>path/da/posizione/corrente</replaceable></command></entry>

              <entry>cambia directory rispetto a un path name relativo alla
                posizione corrente (no slash iniziale)</entry>
            </row>

            <row>
              <entry><command>cd
                  <replaceable>~username/directory</replaceable></command></entry>

              <entry>cambia directory rispetto alla directory home dell'utente
                specificato (il carattere ~ non &egrave; valido nella shell
                Bourne; vedere il <link
                  linkend="shells">Capitolo 5</link>).</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>
    </sect2>

    <sect2 id="getting-started-directory-nav-control-mkdir">
      <title>mkdir - crea una directory</title>

      <para>La gerarchia della propria directory home si estende creando
        sotto-directory all'interno di essa.  Questo &egrave; possibile con il
        comando &man.mkdir.1;, crea directory.  Di nuovo si pu&ograve;
        specificare un path name assoluto o relativo della directory che si
        vuole creare.</para>

      <para><emphasis>Sintassi</emphasis></para>

      <para><command>mkdir [<replaceable>opzioni</replaceable>]
          <replaceable>directory</replaceable></command></para>

      <para><emphasis>Opzioni generali</emphasis></para>

      <informaltable frame="none">
        <tgroup cols="2">
          <colspec colwidth="1.5in">

          <tbody>
            <row>
              <entry><option>-p</option></entry>

              <entry>crea una directory intermedia (genitore), quando
                necessario</entry>
            </row>

            <row>
              <entry><option>-m <replaceable>modi</replaceable></option></entry>

              <entry>permessi di accesso (SVR4).  (Si vedranno i
                <quote>modi</quote> pi&ugrave; avanti in questo
                Capitolo)</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>

      <para><emphasis>Esempi:</emphasis></para>

      <screen>&prompt.user; <userinput>mkdir /home/frank/data</userinput></screen>

      <para>oppure se la directory di lavoro corrente &egrave;
        <filename>/home/frank</filename>, il seguente comando &egrave;
        equivalente:</para>

      <screen>&prompt.user; <userinput>mkdir data</userinput></screen>
    </sect2>

    <sect2 id="getting-started-directory-nav-control-rmdir">
      <title>rmdir - rimuove una directory</title>

      <para>Per rimuovere una directory &egrave; necessario che questa sia
        vuota.  Altrimenti bisogna prima rimuovere i file contenuti in essa.
        Inoltre, non si pu&ograve; rimuovere una directory se questa &egrave; la
        directory di lavoro corrente, bisogna prima uscire da
        quest'ultima.</para>

      <para><emphasis>Sintassi</emphasis></para>

      <para><command>rmdir
          <replaceable>directory</replaceable></command></para>

      <para><emphasis>Esempi:</emphasis></para>

      <para>Per rimuovere la directory vuota
        <filename>/home/frank/data</filename> mentre si &egrave; in
        <filename>/home/frank</filename> usare:</para>

      <screen>&prompt.user; <userinput>rmdir data</userinput></screen>

      <para>oppure</para>

      <screen>&prompt.user; <userinput>rmdir /home/frank/data</userinput></screen>
    </sect2>

    <sect2 id="getting-started-directory-nav-control-ls">
      <title>ls - mostra i contenuti delle directory</title>

      <para>Il comando per visualizzare le proprie directory e i propri file
        &egrave; &man.ls.1;.  &Egrave; possibile ottenere, attraverso le opzioni,
        informazioni circa la dimensione, il tipo, i permessi, la data di
        creazione, di modifica e di accesso del file.</para>

      <para><emphasis>Sintassi</emphasis></para>

      <para><command>ls [<replaceable>opzioni</replaceable>]
          [<replaceable>argomenti</replaceable>]</command></para>

      <para><emphasis>Opzioni generali</emphasis></para>

      <para>Quando non viene usato nessun argomento, viene mostrato il contenuto
        della directory corrente.  Ci sono molte utili opzioni per il comando
        &man.ls.1;.  Segue una lista di alcune di queste.  Quando si usa il
        comando, le opzioni sono raggruppate insieme, precedute da un
        trattino (-).</para>

      <informaltable frame="none">
        <tgroup cols="2">
          <colspec colwidth="0.7in">

          <tbody>
            <row>
              <entry><option>-a</option></entry>

              <entry>mostra tutti i file, inclusi quelli che iniziano con
                un punto (.)</entry>
            </row>

            <row>
              <entry><option>-d</option></entry>

              <entry>mostra solo i nomi delle directory, non i file
                nella directory</entry>
            </row>

            <row>
              <entry><option>-F</option></entry>

              <entry>indica il tipo di elemento terminandolo con un
                simbolo:</entry>
            </row>

            <row>
              <entry></entry>

              <entry><emphasis>directory</emphasis> /</entry>
            </row>

            <row>
              <entry></entry>

              <entry><emphasis>socket</emphasis> =</entry>
            </row>

            <row>
              <entry></entry>

              <entry><emphasis>link simbolico</emphasis> @</entry>
            </row>

            <row>
              <entry></entry>

              <entry><emphasis>eseguibile</emphasis> *</entry>
            </row>

            <row>
              <entry><option>-g</option></entry>

              <entry>mostra il gruppo Unix assegnato al file, richiede l'opzione
                <option>-l</option> (BSD solamente) o su una macchina SVR4,
                esempio Solaris, questa opzione ha l'effetto opposto</entry>
            </row>

            <row>
              <entry><option>-L</option></entry>

              <entry>se il file &egrave; un link simbolico, mostra le
                informazioni del file o della directory a cui il link si
                riferisce, non le informazioni del link stesso</entry>
            </row>

            <row>
              <entry><option>-l</option></entry>

              <entry>listato lungo: mostra i modi, informazioni di link, il
                proprietario, la dimensione, la data dell'ultima modifica del
                file.  Se il file &egrave; un link simbolico, una freccia
                (--&gt;) precede il percorso del file collegato.</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>

      <para>Il <emphasis>campo modi</emphasis> viene fornito dall'opzione
        <option>-l</option> e consiste di 10 caratteri.  Il primo carattere
        &egrave; uno dei seguenti:</para>

      <informaltable frame="none">
        <tgroup cols="2">
          <colspec colwidth="2in">

          <thead>
            <row>
              <entry>CARATTERE</entry>

              <entry>SE L'ELEMENTO E'</entry>
            </row>
          </thead>

          <tbody>
            <row>
              <entry><emphasis>d</emphasis></entry>

              <entry>directory</entry>
            </row>

            <row>
              <entry><emphasis>-</emphasis></entry>

              <entry>file ordinario</entry>
            </row>

            <row>
              <entry><emphasis>b</emphasis></entry>

              <entry>file speciale per dispositivi a blocchi</entry>
            </row>

            <row>
              <entry><emphasis>c</emphasis></entry>

              <entry>file speciale per dispositivi a caratteri</entry>
            </row>

            <row>
              <entry><emphasis>l</emphasis></entry>

              <entry>link simbolico</entry>
            </row>

            <row>
              <entry><emphasis>s</emphasis></entry>

              <entry>socket</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>

      <para>I 9 caratteri successivi sono raggruppati in 3 blocchi di 3
        caratteri ciascuno.  Indicano i <emphasis>permessi di accesso al
          file</emphasis>: i primi 3 caratteri si riferiscono ai permessi del
        <emphasis>proprietario</emphasis> del file, i successivi 3 ai permessi
        degli utenti del <emphasis>gruppo</emphasis> Unix assegnato al file e
        gli ultimi 3 caratteri ai permessi degl'<emphasis>altri</emphasis>
        utenti sul sistema.  Possono assumere i seguenti simboli:</para>

      <informaltable frame="none">
        <tgroup cols="2">
          <colspec colwidth="0.4in">

          <tbody>
            <row>
              <entry><emphasis>r</emphasis></entry>

              <entry>permesso di lettura</entry>
            </row>

            <row>
              <entry><emphasis>w</emphasis></entry>

              <entry>permesso di scrittura</entry>
            </row>

            <row>
              <entry><emphasis>x</emphasis></entry>

              <entry>permesso di esecuzione</entry>
            </row>

            <row>
              <entry><emphasis>-</emphasis></entry>

              <entry>permesso negato</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>

      <para>Esistono altri permessi, specificamente progettati per essere usati
        in speciali situazioni.  Questi sono spiegati nelle pagine man di
        &man.ls.1;.</para>

      <para><emphasis>Esempi:</emphasis></para>

      <para>Per mostrare i file in una directory</para>

      <screen>&prompt.user; <userinput>ls</userinput>
demofiles  frank  linda</screen>

      <para>Per mostrare tutti i file in una directory, inclusi i file nascosti
        (iniziano con un punto):</para>

      <screen>&prompt.user; <userinput>ls -a</userinput>
.   .cshrc  .history  .plan     .rhosts    frank
..  .emacs  .login    .profile  demofiles  linda</screen>

      <para>Per avere un listato lungo:</para>

      <screen>&prompt.user; <userinput>ls -al</userinput>
total 24
drwxr-sr-x 5 workshop acs 512 Jun 7 11:12  .
drwxr-xr-x 6 root     sys 512 May 29 09:59 ..
-rwxr-xr-x 1 workshop acs 532 May 20 15:31 .cshrc
-rw------- 1 workshop acs 525 May 20 21:29 .emacs
-rw------- 1 workshop acs 622 May 24 12:13 .history
-rwxr-xr-x 1 workshop acs 238 May 14 09:44 .login
-rw-r--r-- 1 workshop acs 273 May 22 23:53 .plan
-rwxr-xr-x 1 workshop acs 413 May 14 09:36 .profile
-rw------- 1 workshop acs 49  May 20 20:23 .rhosts
drwx------ 3 workshop acs 512 May 24 11:18 demofiles
drwx------ 2 workshop acs 512 May 21 10:48 frank
drwx------ 3 workshop acs 512 May 24 10:59 linda</screen>
    </sect2>
  </sect1>

  <sect1 id="getting-started-file-mant-comm">
    <title>Comandi di gestione dei file</title>

    <para>Per creare, copiare, rimuovere file e per modificarne i permessi
      si possono usare i seguenti comandi.</para>

    <table frame="all" id="getting-started-table-file-mant-comm">
      <title>Comandi di gestione dei file</title>

      <tgroup cols="2">
        <colspec colwidth="3in">

        <thead>
          <row>
            <entry align="center">Comando/Sintassi</entry>

            <entry align="center">Cosa fa</entry>
          </row>
        </thead>

        <tbody>
          <row>
            <entry><command>chgrp [<replaceable>opzioni</replaceable>]
                <replaceable>gruppo file</replaceable></command></entry>

            <entry>cambia il gruppo assegnato ad un file</entry>
          </row>

          <row>
            <entry><command>chmod [<replaceable>opzioni</replaceable>]
                <replaceable>file</replaceable></command></entry>

            <entry>cambia i permessi di accesso a file o directory</entry>
          </row>

          <row>
            <entry><command>chown [<replaceable>opzioni</replaceable>]
                <replaceable>proprietario file</replaceable></command></entry>

            <entry>cambia il proprietario di un file; pu&ograve; essere usato
              solamente dal super-user</entry>
          </row>

          <row>
            <entry><command>cp [<replaceable>opzioni</replaceable>]
                <replaceable> file1 file2</replaceable></command></entry>

            <entry>copia <filename><replaceable>file1</replaceable></filename>
              in <filename><replaceable>file2</replaceable></filename>;
              <filename><replaceable>file2</replaceable></filename> non dovrebbe
              gi&agrave; esistere.  Questo comando crea o sovrascrive
              <filename><replaceable>file2</replaceable></filename></entry>
          </row>

          <row>
            <entry><command>mv [<replaceable>opzioni</replaceable>]
                <replaceable>file1 file2</replaceable></command></entry>

            <entry>muove (rinomina)
              <filename><replaceable>file1</replaceable></filename> in
              <filename><replaceable>file2</replaceable></filename></entry>
          </row>

          <row>
            <entry><command>rm [<replaceable>opzioni</replaceable>]
                <replaceable>file</replaceable></command></entry>

            <entry>elimina un file o una directory (<option>-r</option> rimuove
              ricorsivamente le directory e il loro contenuto)
              (<option>-i</option> chiede conferma prima di rimuove i
              file)</entry>
          </row>
        </tbody>
      </tgroup>
    </table>

    <para>Se si ha una certa familiarit&agrave; con DOS la tabella che segue
      paragona i suoi simili comandi a quelli Unix in modo tale da fornire un
      appropriato quadro di riferimento.</para>

    <table frame="all" id="getting-started-table-file-mant-comm-unix-vs-dos">
      <title>Comandi di gestione dei file Unix vs DOS</title>

      <tgroup cols="3">
        <colspec colwidth="3in">

        <colspec colwidth="2in">

        <thead>
          <row>
            <entry align="center">Comando</entry>

            <entry align="center">Unix</entry>

            <entry align="center">Dos</entry>
          </row>
        </thead>

        <tbody>
          <row>
            <entry>copia un file</entry>

            <entry><command>cp</command></entry>

            <entry><command>copy</command></entry>
          </row>

          <row>
            <entry>muove un file</entry>

            <entry><command>mv</command></entry>

            <entry><command>move</command> (non supportato in tutte le
              versioni di Dos)</entry>
          </row>

          <row>
            <entry>rinomina un file</entry>

            <entry><command>mv</command></entry>

            <entry><command>rename</command> &amp;
              <command>ren</command></entry>
          </row>

          <row>
            <entry>elimina un file</entry>

            <entry><command>rm</command></entry>

            <entry><command>erase</command> &amp;
              <command>del</command></entry>
          </row>

          <row>
            <entry>mostra un file a schermo</entry>

            <entry><command>cat</command></entry>

            <entry><command>type</command></entry>
          </row>

          <row>
            <entry>mostra un file a schermo, una pagina alla volta</entry>

            <entry><command>more</command>, <command>less</command>,
              <command>pg</command></entry>

            <entry><command>type /p</command> (non supportato in tutte
              le versioni di Dos)</entry>
          </row>
        </tbody>
      </tgroup>
    </table>

    <sect2 id="getting-started-file-mant-comm-cp">
      <title>cp - copia un file</title>

      <para>Il comando &man.cp.1; copia il contenuto di un file in un altro
        file.</para>

      <para><emphasis>Sintassi</emphasis></para>

      <para><command>cp [<replaceable>opzioni</replaceable>]
          <replaceable>filename1 filename2</replaceable></command></para>

      <para><emphasis>Opzioni generali</emphasis></para>

      <informaltable frame="none">
        <tgroup cols="2">
          <colspec colwidth="0.5in">

          <tbody>
            <row>
              <entry><option>-i</option></entry>

              <entry>interattivo (chiede conferma prima di procedere)</entry>
            </row>

            <row>
              <entry><option>-r</option></entry>

              <entry>copia ricorsivamente una directory</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>

      <para><emphasis>Esempi:</emphasis></para>

      <screen>&prompt.user; <userinput>cp <replaceable>filename1 filename2</replaceable></userinput></screen>

      <para>Si hanno due copie del file, ognuna con un identico contenuto.
        Questi file sono completamente indipendenti tra loro e possono essere
        editati e modificati entrambi quando necessario.  Ciascuno di essi ha il
        proprio inode, i propri blocchi di dati e il proprio elemento nella
        tabella di directory.</para>
    </sect2>

    <sect2 id="getting-started-file-mant-comm-mv">
      <title>mv - sposta un file</title>

      <para>Il comando &man.mv.1; rinomina (sposta) un file.</para>

      <para><emphasis>Sintassi</emphasis></para>

      <para><command>mv [<replaceable>opzioni</replaceable>]
          <replaceable>vecchio_file nuovo_file</replaceable></command></para>

      <para><emphasis>Opzioni generali</emphasis></para>

      <informaltable frame="none">
        <tgroup cols="2">
          <colspec colwidth="0.5in">

          <tbody>
            <row>
              <entry><option>-i</option></entry>

              <entry>interattivo (chiede conferma prima di procedere)</entry>
            </row>

            <row>
              <entry><option>-f</option></entry>

              <entry>non chiede la conferma quando si sovrascrive un file
                esistente (ignora <option>-i</option>)</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>

      <para><emphasis>Esempi:</emphasis></para>

      <screen>&prompt.user; <userinput>mv <replaceable>vecchio_file nuovo_file</replaceable></userinput></screen>

      <para>Il file <filename><replaceable>nuovo_file</replaceable></filename>
        sostituisce
        <filename><replaceable>vecchio_file</replaceable></filename>.
        In realt&agrave; tutto quello che &egrave; stato fatto &egrave; aver
        aggiornato l'elemento della tabella di directory per attribuire al file
        il nuovo nome.  Il contenuto del file rimane come era prima della
        rinominazione.</para>
    </sect2>

    <sect2 id="getting-started-file-mant-comm-rm">
      <title>rm - elimina un file</title>

      <para>Il comando &man.rm.1; elimina un file.</para>

      <para><emphasis>Sintassi</emphasis></para>

      <para><command>rm [<replaceable>opzioni</replaceable>]
          <replaceable>filename</replaceable></command></para>

      <para><emphasis>Opzioni generali</emphasis></para>

      <informaltable frame="none">
        <tgroup cols="2">
          <colspec colwidth="0.5in">

          <tbody>
            <row>
              <entry><option>-i</option></entry>

              <entry>interattivo (chiede conferma prima di procedere)</entry>
            </row>

            <row>
              <entry><option>-r</option></entry>

              <entry>rimuove una directory ricorsivamente, rimuovendo prima i file
                e le directory sottostanti</entry>
            </row>

            <row>
              <entry><option>-f</option></entry>

              <entry>non chiede conferma prima di procedere
                (ignora <option>-i</option>)</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>

      <para><emphasis>Esempi:</emphasis></para>

      <screen>&prompt.user; <userinput>rm <replaceable>filename</replaceable></userinput></screen>

      <para>Visualizzando il contento della directory si vedr&agrave; che quel
        file non esiste pi&ugrave;.  In realt&agrave; tutto quello che &egrave;
        stato fatto &egrave; aver rimosso l'elemento dalla tabella di directory
        e marcato l'inode come <quote>non usato</quote>.  Il contenuto del file
        &egrave; ancora sul disco, ma ora il sistema non ha pi&ugrave; modo di
        identificare quei blocchi di dati con il nome del file eliminato.  Non
        c'&egrave; un certo comando per
        <quote><emphasis>riprendere</emphasis></quote> un file che &egrave;
        stato eliminato in questo modo.  Per questa ragione molti utenti alle
        prime armi effettuano un alias del comando di eliminazione in
        <command>rm -i</command> dove l'opzione <option>-i</option> chiede di
        confermare prima di rimuovere il file.  Simili alias sono generalmente
        messi nel file <filename>.cshrc</filename> per la shell C (vedere il
        <link linkend="shells">Capitolo 5</link>).</para>
    </sect2>

    <sect2 id="getting-started-file-mant-comm-file-perm">
      <title>Permessi dei file</title>

      <para>Ciascun file e directory ha permessi che stabiliscono chi pu&ograve;
        <emphasis>leggerlo</emphasis>, <emphasis>scriverlo</emphasis> e/o
        <emphasis>eseguirlo</emphasis>.  Per scoprire i permessi assegnati a un
        file, pu&ograve; essere usato il comando &man.ls.1; con l'opzione
        <option>-l</option>.  Quando si ha la necessit&agrave; di conoscere il
        gruppo per il quale i permessi sono stati assegnati si pu&ograve; usare
        l'opzione <option>-g</option> insieme a <command>ls -l</command>
        (solamente BSD).</para>

      <para>Quando si usa il comando <command>ls -lg</command> su un file
        (<command>ls -l</command> su SysV) l'output sar&agrave; mostrato come
        il seguente:</para>

      <screen>-rwxr-x--- user Unixgroup size Month nn hh:mm filename</screen>

      <para>La zona dedicata ai caratteri e trattini
        (<emphasis>-rwxr-x---</emphasis>) &egrave; la zona che mostra il tipo di
        file e i permessi del file, come spiegato nella precedente sezione.
        Quindi la stringa di permessi dell'esempio,
        <emphasis>-rwxr-x---</emphasis>, permette al proprietario
        <username>user</username> del file di leggerlo, modificarlo ed
        eseguirlo; gli utenti del gruppo <groupname>Unixgroup</groupname> del
        file possono leggerlo ed eseguirlo; gli <emphasis>altri</emphasis>
        utenti del sistema non possono accedere in alcun modo al file.</para>
    </sect2>

    <sect2 id="getting-started-file-mant-comm-chmod">
      <title>chmod - cambio dei permessi del file</title>

      <para>Il comando per cambiare i permessi ad un elemento (file, directory,
        ecc.) &egrave; &man.chmod.1; (cambio dei modi).  La sintassi richiede
        l'uso del comando con tre cifre (rappresentanti i permessi del
        <emphasis>proprietario</emphasis> (<emphasis>u</emphasis>), i permessi
        del <emphasis>gruppo</emphasis> (<emphasis>g</emphasis>) e i permessi
        degli <emphasis>altri</emphasis> utenti (<emphasis>o</emphasis>))
        seguite da un argomento (che pu&ograve; essere un nome di un file o una
        lista di file e directory).  Oppure pu&ograve; essere usato con una
        rappresentazione simbolica dei permessi, indicando a quale utenza questi
        vanno applicati.</para>

      <para>Ogni tipo di permesso &egrave; rappresentato dal proprio numero
        equivalente:</para>

      <para><emphasis>lettura=4, scrittura=2, esecuzione=1</emphasis></para>

      <para>o da singoli caratteri:</para>

      <para><emphasis>lettura=r, scrittura=w, esecuzione=x</emphasis></para>

      <para>Il permesso <emphasis>4</emphasis> o <emphasis>r</emphasis>
        specifica il permesso di <emphasis>lettura</emphasis>.  Se i permessi
        desiderati sono lettura e scrittura, il 4 (rappresentante la lettura) e
        il 2 (rappresentante la scrittura) sono addizionati per ottenere il
        permesso 6.  Quindi, un permesso settato a 6 vorr&agrave; concedere un
        permesso di lettura e di scrittura.</para>

      <para>Alternativamente si pu&ograve; usare una notazione simbolica che
        usa un carattere rappresentativo per l'utenza a cui ci si riferisce, uno
        per il permesso e uno per l'operazione, dove l'operazione pu&ograve;
        essere:</para>

      <informaltable frame="none">
        <tgroup cols="2">
          <colspec colwidth="0.7in">

          <tbody>
            <row>
              <entry>+</entry>

              <entry>aggiunge permessi</entry>
            </row>

            <row>
              <entry>-</entry>

              <entry>rimuove permessi</entry>
            </row>

            <row>
              <entry>=</entry>

              <entry>setta permessi</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>

      <para>Quindi per settare i permessi di lettura e di scrittura per il
        proprietario del file si usa nella notazione simbolica
        <emphasis>u=rw</emphasis>.</para>

      <para><emphasis>Sintassi</emphasis></para>

      <informaltable frame="none">
        <tgroup cols="2">
          <colspec colwidth="3.5in">

          <tbody>
            <row>
              <entry><command>chmod <replaceable>nnn</replaceable>
                  [<replaceable>lista argomenti</replaceable>]</command></entry>

              <entry>modalit&agrave; numerica</entry>
            </row>

            <row>
              <entry><command>chmod [<replaceable>chi</replaceable>]
                  <replaceable>op</replaceable>
                  [<replaceable>perm</replaceable>]
                  [<replaceable>lista argomenti</replaceable>]</command></entry>

              <entry>modalit&agrave; simbolica</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>

      <para>dove <replaceable>nnn</replaceable> sono i tre numeri rappresentanti
        i permessi del <emphasis>proprietario</emphasis>, del
        <emphasis>gruppo</emphasis> e degli <emphasis>altri</emphasis> utenti;
        <replaceable>chi</replaceable> pu&ograve; essere
        <emphasis>u,g,o</emphasis> oppure <emphasis>a</emphasis> (tutti) e
        <replaceable>perm</replaceable> pu&ograve; essere
        <emphasis>r,w,x</emphasis>.  Nella notazione simbolica si pu&ograve;
        separare la specifica dei permessi con una virgola, come mostrato
        nell'esempio qui sotto.</para>

      <para><emphasis>Opzioni generali</emphasis></para>

      <informaltable frame="none">
        <tgroup cols="2">
          <colspec colwidth="0.7in">

          <tbody>
            <row>
              <entry><option>-f</option></entry>

              <entry>forza (nessun messaggio di errore viene generato se la
                modifica non ha avuto successo)</entry>
            </row>

            <row>
              <entry><option>-R</option></entry>

              <entry>discesa ricorsiva attraverso la struttura delle directory
                e cambio dei modi</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>

      <para><emphasis>Esempi:</emphasis></para>

      <para>Se i permessi desiderati per il <filename>file1</filename> sono:
        <emphasis>proprietario</emphasis>: lettura, scrittura ed esecuzione;
        <emphasis>gruppo</emphasis>: lettura ed esecuzione;
        <emphasis>altri</emphasis>: lettura ed esecuzione; il comando da usare
        &egrave;:</para>

      <para><command>chmod 755 file1</command> oppure
        <command>chmod u=rwx,go=rx file1</command></para>

      <note>
        <para>Quando si assegnano i permessi a un file per l'utenza
        <emphasis>gruppo</emphasis> e per l'utenza <emphasis>altri</emphasis>
        &egrave; necessario che il minimo permesso di esecuzione (inteso come
        permesso di accesso) per la directory nella quale il file &egrave;
        posizionato sia abilitato.  Un semplice modo per far questo &egrave;
        posizionarsi nella directory nella quale i permessi devo essere
        garantiti e digitare:</para>

        <para><command>chmod 711 .</command> oppure
          <command>chmod u=rw,+x .</command> oppure
          <command>chmod u=rwx,go=x .</command></para>

        <para>dove il punto (.) indica la
          <emphasis>directory corrente</emphasis>.</para>
      </note>
    </sect2>

    <sect2 id="getting-started-file-mant-comm-chown">
      <title>chown - cambio del proprietario del file</title>

      <para>Il proprietario di un file pu&ograve; essere cambiato con il comando
        &man.chown.8;.  Su molte versioni Unix questo pu&ograve; essere
        realizzato solo dal super-user, ad esempio, un utente normale non
        pu&ograve; attribuire i suoi file ad altri proprietari.  &man.chown.8;
        &egrave; usato come qui sotto, dove &prompt.root; rappresenta il prompt
        di shell per il super-user.</para>

      <para><emphasis>Sintassi</emphasis></para>

      <informaltable frame="none">
        <tgroup cols="2">
          <colspec colwidth="3.5in">

          <tbody>
            <row>
              <entry><command>chown [<replaceable>opzioni</replaceable>]
                  <replaceable>utente</replaceable>[:<replaceable>gruppo</replaceable>]
                  <replaceable>file</replaceable></command></entry>

              <entry>(SVR4)</entry>
            </row>

            <row>
              <entry><command>chown [<replaceable>opzioni</replaceable>]
                  <replaceable>utente</replaceable>[.<replaceable>gruppo</replaceable>]
                  <replaceable>file</replaceable></command></entry>

              <entry>(BSD)</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>

      <para><emphasis>Opzioni generali</emphasis></para>

      <informaltable frame="none">
        <tgroup cols="2">
          <colspec colwidth="0.7in">

          <tbody>
            <row>
              <entry><option>-R</option></entry>

              <entry>discende ricorsivamente attraverso la struttura della
                directory</entry>
            </row>

            <row>
              <entry><option>-f</option></entry>

              <entry>forza, non riporta errori</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>

      <para><emphasis>Esempi:</emphasis></para>

      <screen>&prompt.root; <userinput>chown <replaceable>nuovo_proprietario file</replaceable></userinput></screen>
    </sect2>

    <sect2 id="getting-started-file-mant-comm-chgrp">
      <title>chgrp - cambio del gruppo del file</title>

      <para>Con il comando &man.chgrp.1; tutti possono cambiare il gruppo dei
        propri file in un altro gruppo di appartenenza.</para>

      <para><emphasis>Sintassi</emphasis></para>

      <para><command>chgrp [<replaceable>opzioni</replaceable>]
          <replaceable>gruppo file</replaceable></command></para>

      <para><emphasis>Opzioni generali</emphasis></para>

      <informaltable frame="none">
        <tgroup cols="2">
          <colspec colwidth="0.7in">

          <tbody>
            <row>
              <entry><option>-R</option></entry>

              <entry>discende ricorsivamente attraverso la struttura della
                directory</entry>
            </row>

            <row>
              <entry><option>-f</option></entry>

              <entry>forza, non riporta errori</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>

      <para><emphasis>Esempi:</emphasis></para>

      <screen>&prompt.user; <userinput>chgrp <replaceable>nuovo_gruppo file</replaceable></userinput></screen>
    </sect2>
  </sect1>

  <sect1 id="getting-started-display-comm">
    <title>Comandi di visualizzazione</title>

    <para>Ci sono alcuni comandi che si possono usare per
      <emphasis>visualizzare</emphasis> o <emphasis>esaminare</emphasis> un
      file.  Alcuni di questi sono editor che verranno trattati pi&ugrave;
      avanti.  Qui si illustreranno alcuni comandi normalmente usati per
      visualizzare un file.</para>

    <table frame=all id="getting-started-table-display-comm">
      <title>Comandi di visualizzazione</title>

      <tgroup cols="2">
        <colspec colwidth="3.5in">

        <thead>
          <row>
            <entry align="center">Comando/Sintassi</entry>

            <entry align="center">Cosa fa</entry>
          </row>
        </thead>

        <tbody>
          <row>
            <entry><command>echo
                [<replaceable>stringa</replaceable>]</command></entry>

            <entry>riporta in standard ouptut una stringa di testo</entry>
          </row>

          <row>
            <entry><command>cat [<replaceable>opzioni</replaceable>]
                <replaceable>file</replaceable></command></entry>

            <entry>concatena (lista) un file</entry>
          </row>

          <row>
            <entry><command>more</command> (o <command>less</command> o
              <command>pg</command>)
              <command>[<replaceable>opzioni</replaceable>]
                <replaceable>file</replaceable></command></entry>

            <entry>visualizzazione paginata di un file di testo</entry>
          </row>

          <row>
            <entry><command>head [<replaceable>-numero</replaceable>]
                <replaceable>file</replaceable></command></entry>

            <entry>visualizza le prime 10 (o <replaceable>-numero</replaceable>)
              linee di un file</entry>
          </row>

          <row>
            <entry><command>tail [<replaceable>opzioni</replaceable>]
                <replaceable>file</replaceable></command></entry>

            <entry>visualizza le ultime linee (o parte) di un file</entry>
          </row>
        </tbody>
      </tgroup>
    </table>

    <sect2 id="getting-started-display-comm-echo">
      <title>echo - mostra un'espressione</title>

      <para>Il comando &man.echo.1; viene utilizzato per ripetere l'argomento
        assegnato al comando nel dispositivo standard di uscita.  Normalmente
        l'argomento termina con un carattere di alimentazione di linea, ma si
        pu&ograve; specificare un'opzione per impedirlo.</para>

      <para><emphasis>Sintassi</emphasis></para>

      <para><command>echo [<replaceable>stringa</replaceable>]</command></para>

      <para><emphasis>Opzioni generali</emphasis></para>

      <informaltable frame="none">
        <tgroup cols="2">
          <colspec colwidth="0.7in">

          <tbody>
            <row>
              <entry><option>-n</option></entry>

              <entry>non stampa new-line (BSD, shell built-in)</entry>
            </row>

            <row>
              <entry><option>\c</option></entry>

              <entry>non stampa new-line (SVR4)</entry>
            </row>

            <row>
              <entry><option>\0<replaceable>n</replaceable></option></entry>

              <entry>dove <replaceable>n</replaceable> &egrave; il codice del
                carattere ASCII a 8 bit (SVR4)</entry>
            </row>

            <row>
              <entry><option>\t</option></entry>

              <entry>tab (SVR4)</entry>
            </row>

            <row>
              <entry><option>\f</option></entry>

              <entry>form-feed (emissione carta) (SVR4)</entry>
            </row>

            <row>
              <entry><option>\n</option></entry>

              <entry>new-line (SVR4)</entry>
            </row>

            <row>
              <entry><option>\v</option></entry>

              <entry>tab verticale (SVR4)</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>

      <para><emphasis>Esempi:</emphasis></para>

      <screen>&prompt.user; <userinput>echo Hello Class</userinput></screen>

      <para>oppure</para>

      <screen>&prompt.user; <userinput>echo "Hello Class"</userinput></screen>

      <para>Per impedire il carattere di fine linea:</para>

      <screen>&prompt.user; <userinput>echo -n Hello Class</userinput></screen>

      <para>oppure</para>

      <screen>&prompt.user; <userinput>echo "Hello Class \c"</userinput></screen>

      <para>dove il modo utilizzato nell'ultimo esempio dipende dal comando
        &man.echo.1; usato.</para>

      <para>L'opzione <option>\<replaceable>x</replaceable></option> deve essere
        interna a un paio di caratteri di quoting singoli o doppi, con o senza
        altri caratteri di stringa.</para>
    </sect2>

    <sect2 id="getting-started-display-comm-cat">
      <title>cat - concatena un file</title>

      <para>Il comando di concatenazione &man.cat.1; visualizza il contenuto di
        un file.</para>

      <para><emphasis>Sintassi</emphasis></para>

      <para><command>cat [<replaceable>opzioni</replaceable>]
          [<replaceable>file</replaceable>]</command></para>

      <para><emphasis>Opzioni generali</emphasis></para>

      <informaltable frame="none">
        <tgroup cols="2">
          <colspec colwidth="0.7in">

          <tbody>
            <row>
              <entry><option>-n</option></entry>

              <entry>precede ogni linea con un numero</entry>
            </row>

            <row>
              <entry><option>-v</option></entry>

              <entry>visualizza i caratteri non stampabili, eccetto tab,
                new-line e form-feed</entry>
            </row>

            <row>
              <entry><option>-e</option></entry>

              <entry>visualizza $ alla fine di ogni linea (prima di new-line)
                (quando usato con l'opzione <option>-v</option>)</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>

      <para><emphasis>Esempi:</emphasis></para>

      <screen>&prompt.user; <userinput>cat <replaceable>filename</replaceable></userinput></screen>

      <para>Si possono specificare una serie di file su linea di comando e
        &man.cat.1; li concatener&agrave; ciascuno a turno, seguendo lo stesso
        ordine di immissione, esempio:</para>

      <screen>&prompt.user; <userinput>cat <replaceable>file1 file2 file3</replaceable></userinput></screen>
    </sect2>

    <sect2 id="getting-started-display-comm-more-less-pg">
      <title>more, less e pg - visualizzazione paginata di un file</title>

      <para>&man.more.1;, &man.less.1; e <command>pg</command> permettono di
        visualizzare il contenuto di un file una schermata (pagina) alla volta.
        Inoltre permettono di ritornare sulla precedente pagina, di cercare
        parole, ecc.  Questi comandi potrebbero non essere disponibili sul
        proprio sistema Unix.</para>

      <para><emphasis>Sintassi</emphasis></para>

      <para><command>more [<replaceable>opzioni</replaceable>]
          [<replaceable>+/schema</replaceable>]
          [<replaceable>filename</replaceable>]</command></para>

      <para><command>less [<replaceable>opzioni</replaceable>]
          [<replaceable>+/schema</replaceable>]
          [<replaceable>filename</replaceable>]</command></para>

      <para><command>pg [<replaceable>opzioni</replaceable>]
          [<replaceable>+/schema</replaceable>]
          [<replaceable>filename</replaceable>]</command></para>

      <para><emphasis>Opzioni</emphasis></para>

      <informaltable frame="none">
        <tgroup cols="4">
          <colspec colwidth="1.5in">

          <colspec colwidth="1.5in">

          <colspec colwidth="1.5in">

          <thead>
            <row>
              <entry>more</entry>

              <entry>less</entry>

              <entry>pg</entry>

              <entry>Azione</entry>
            </row>
          </thead>

          <tbody>
            <row>
              <entry><option>-c</option></entry>

              <entry><option>-c</option></entry>

              <entry><option>-c</option></entry>

              <entry>pulisce lo schermo prima di visualizzare</entry>
            </row>

            <row>
              <entry></entry>

              <entry><option>-i</option></entry>

              <entry></entry>

              <entry>ignora differenza tra maiuscole e minuscole</entry>
            </row>

            <row>
              <entry><option>-w</option></entry>

              <entry>default</entry>

              <entry>default</entry>

              <entry>non esce alla fine dell'input, ma si mette in attesa di
                comandi</entry>
            </row>

            <row>
              <entry><option>-<replaceable>linee</replaceable></option></entry>

              <entry></entry>

              <entry><option>-<replaceable>linee</replaceable></option></entry>

              <entry># (numero di) linee di avanzamento</entry>
            </row>

            <row>
              <entry><option>+/<replaceable>schema</replaceable></option></entry>

              <entry><option>+/<replaceable>schema</replaceable></option></entry>

              <entry><option>+/<replaceable>schema</replaceable></option></entry>

              <entry>ricerca lo schema (pattern)</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>

      <para><emphasis>Controlli interni</emphasis></para>

      <informaltable frame="none">
        <tgroup cols="2">
          <colspec colwidth="2in">

          <tbody>
            <row>
              <entry><command>more</command></entry>

              <entry>visualizza (una schermata alla volta) il file
                specificato</entry>
            </row>

            <row>
              <entry align="center"><emphasis>&lt;spazio&gt;</emphasis></entry>

              <entry>per vedere la schermata successiva</entry>
            </row>

            <row>
              <entry align="center"><emphasis>&lt;return&gt;o&lt;CR&gt;</emphasis></entry>

              <entry>per avanzare di una linea</entry>
            </row>

            <row>
              <entry align="center"><emphasis>q</emphasis></entry>

              <entry>per uscire</entry>
            </row>

            <row>
              <entry align="center"><emphasis>h</emphasis></entry>

              <entry>help</entry>
            </row>

            <row>
              <entry align="center"><emphasis>b</emphasis></entry>

              <entry>torna alla schermata precedente</entry>
            </row>

            <row>
              <entry align="center"><emphasis>/<replaceable>parola</replaceable></emphasis></entry>

              <entry>cerca <replaceable>parola</replaceable> nel resto del
                file</entry>
            </row>

            <row>
              <entry></entry>

              <entry>vedere le <emphasis>pagine man</emphasis> per altre
                opzioni</entry>
            </row>

            <row>
              <entry><command>less</command></entry>

              <entry>simile a &man.more.1;, vedere le
                <emphasis>pagine man</emphasis> per le opzioni</entry>
            </row>

            <row>
              <entry><command>pg</command></entry>

              <entry>in SVR4 equivale a &man.more.1; (pagina)</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>
    </sect2>

    <sect2 id="getting-started-display-comm-head">
      <title>head - mostra l'inizio di un file</title>

      <para>Il comando &man.head.1; visualizza l'inizio di un file.</para>

      <para><emphasis>Sintassi</emphasis></para>

      <para><command>head [<replaceable>opzioni</replaceable>]
          <replaceable>file</replaceable></command></para>

      <para><emphasis>Opzioni generali</emphasis></para>

      <informaltable frame="none">
        <tgroup cols="2">
          <colspec colwidth="1in">

          <tbody>
            <row>
              <entry><option>-n
                  <replaceable>numero</replaceable></option></entry>

              <entry>numero di linee da visualizzare partendo dall'inizio del
                file</entry>
            </row>

            <row>
              <entry><option>-<replaceable>numero</replaceable></option></entry>

              <entry>come sopra</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>

      <para><emphasis>Esempi:</emphasis></para>

      <para>Di default &man.head.1; mostra le prime 10 linee del file.  Si
        possono visualizzare pi&ugrave; (o meno) linee con l'opzione
        <option>-n <replaceable>numero</replaceable></option> o
        <option>-<replaceable>numero</replaceable></option>, ad esempio, per
        visualizzare le prime 40 linee:</para>

      <screen>&prompt.user; <userinput>head -40 <replaceable>filename</replaceable></userinput></screen>

      <para>oppure</para>

      <screen>&prompt.user; <userinput>head -n 40 <replaceable>filename</replaceable></userinput></screen>
    </sect2>

    <sect2 id="getting-started-display-comm-tail">
      <title>tail - mostra la fine di un file</title>

      <para>Il comando &man.tail.1; visualizza la fine di un file.</para>

      <para><emphasis>Sintassi</emphasis></para>

      <para><command>tail [<replaceable>opzioni</replaceable>]
          <replaceable>file</replaceable></command></para>

      <para><emphasis>Opzioni generali</emphasis></para>

      <informaltable frame="none">
        <tgroup cols="2">
          <colspec colwidth="1in">

          <tbody>
            <row>
              <entry><option>-<replaceable>numero</replaceable></option></entry>

              <entry>numero di linee da visualizzare, partendo dalla fine del
                file</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>

      <para><emphasis>Esempi:</emphasis></para>

      <para>Di default &man.tail.1; mostra le ultime 10 linee del file, ma si
        pu&ograve; specificare un numero differente di linee o di byte, o un
        differente punto di inizio all'interno del file.  Per visualizzare le
        ultime 30 linee di un file, usare l'opzione
        <option>-<replaceable>numero</replaceable></option>:</para>

      <screen>&prompt.user; <userinput>tail -30 <replaceable>filename</replaceable></userinput></screen>
    </sect2>
  </sect1>
</chapter>

<!--
     Local Variables:
     mode: sgml
     sgml-indent-data: t
     sgml-omittag: nil
     sgml-always-quote-attributes: t
     sgml-parent-document: ("../book.sgml" "book" "chapter")
     End:
-->
