diff options
Diffstat (limited to 'it_IT.ISO8859-15/books/handbook/basics/chapter.sgml')
-rw-r--r-- | it_IT.ISO8859-15/books/handbook/basics/chapter.sgml | 2735 |
1 files changed, 0 insertions, 2735 deletions
diff --git a/it_IT.ISO8859-15/books/handbook/basics/chapter.sgml b/it_IT.ISO8859-15/books/handbook/basics/chapter.sgml deleted file mode 100644 index 326b9368e3..0000000000 --- a/it_IT.ISO8859-15/books/handbook/basics/chapter.sgml +++ /dev/null @@ -1,2735 +0,0 @@ -<!-- - The FreeBSD Italian Documentation Project - - $FreeBSD$ - Original revision: 1.126 ---> - -<chapter id="basics"> - <chapterinfo> - <authorgroup> - <author> - <firstname>Chris</firstname> - - <surname>Shumway</surname> - - <contrib>Riscritto da </contrib> - </author> - </authorgroup> - </chapterinfo> - - <title>Basi di Unix</title> - - <sect1 id="basics-synopsis"> - <title>Sinossi</title> - - <indexterm><primary>basi</primary></indexterm> - - <para>Il seguente capitolo tratta i comandi e le funzionalità di - base del sistema operativo FreeBSD. Molto di questo materiale è - valido anche per altri sistemi operativi &unix;-like. Sentiti libero di - leggere velocemente questo capitolo se hai familiarità con questo - materiale. Se sei un utente alle prime armi di FreeBSD, allora dovrai di - sicuro leggere questo capitolo attentamente.</para> - - <para>Dopo aver letto questo capitolo, saprai:</para> - - <itemizedlist> - <listitem> - <para>Come usare le <quote>console virtuali</quote> di FreeBSD.</para> - </listitem> - - <listitem> - <para>Come funzionano i permessi dei file &unix;.</para> - </listitem> - - <listitem> - <para>La struttura di default del file system di &os;.</para> - </listitem> - - <listitem> - <para>L'organizzazione del disco di &os;.</para> - </listitem> - - <listitem> - <para>Come montare e smontare i file system.</para> - </listitem> - - <listitem> - <para>Cosa sono i processi, i demoni e i segnali.</para> - </listitem> - - <listitem> - <para>Cos'è una shell, e come cambiare il proprio ambiente di - login di default.</para> - </listitem> - - <listitem> - <para>I principi di base sull'uso degli editor testuali.</para> - </listitem> - - <listitem> - <para>Cosa sono i dispositivi e i nodi dei dispositivi.</para> - </listitem> - - <listitem> - <para>Quali formati dei binari sono usati in &os;.</para> - </listitem> - - <listitem> - <para>Come leggere le pagine man per ottenere maggiori - informazioni.</para> - </listitem> - </itemizedlist> - </sect1> - - <sect1 id="consoles"> - <title>Console Virtuali e Terminali</title> - - <indexterm><primary>console virtuali</primary></indexterm> - <indexterm><primary>terminali</primary></indexterm> - - <para>FreeBSD può essere usato in vari modi. Uno di questi è - quello di digitare i comandi tramite un terminale testuale. Quando si - utilizza FreeBSD in questo modo si ha velocemente nelle proprie mani molta - della flessibilità e della potenza di un sistema operativo &unix;. - Questa sezione descrive cosa sono i <quote>terminali</quote> e le - <quote>console</quote>, e come si possono utilizzare in FreeBSD.</para> - - <sect2 id="consoles-intro"> - <title>La console</title> - - <indexterm><primary>console</primary></indexterm> - - <para>Se non hai configurato FreeBSD in modo tale da avviare in modo - automatico l'ambiente grafico durante l'avvio, il sistema ti - fornirà un prompt di login dopo la fase di avvio, esattamente - dopo che gli script di avvio sono stati eseguiti. Dovresti vedere - qualcosa simile a questo:</para> - - <screen>Additional ABI support:. -Local package initialization:. -Additional TCP options:. - -Fri Sep 20 13:01:06 EEST 2002 - -FreeBSD/i386 (pc3.example.org) (ttyv0) - -login:</screen> - - <para>I messaggi potrebbero essere leggermente diversi sul tuo sistema, - tuttavia dovresti vedere qualcosa di analogo. In questo momento ci - interessano le ultime due righe. Analizziamo la penultima riga:</para> - - <programlisting>FreeBSD/i386 (pc3.example.org) (ttyv0)</programlisting> - - <para>Questa riga contiene alcune informazioni sul sistema che hai appena - avviato. Sei di fronte a una console <quote>FreeBSD</quote>, che sta - girando su un processore Intel o su un processore compatibile con - l'architettura x86<footnote> - <para>Questo è il significato di <literal>i386</literal>. - Nota che anche se non stai eseguendo FreeBSD su una CPU della serie - 386 di Intel, questo messaggio resta <literal>i386</literal>. Non - si riferisce al tipo del tuo processore, ma bensì - all'<quote>architettura</quote> del processore.</para></footnote>. - Il nome di questa macchina (tutte le macchine &unix; hanno un nome) - è <hostid>pc3.example.org</hostid>, e in questo momento sei di - fronte alla sua console di sistema—il terminale - <devicename>ttyv0</devicename>.</para> - - <para>Infine, l'ultima riga è sempre:</para> - - <programlisting>login:</programlisting> - - <para>Qui devi digitare il tuo <quote>username</quote> per loggarti in - FreeBSD. La prossima sezione descrive come fare ad effettuare il login - su FreeBSD.</para> - </sect2> - - <sect2 id="consoles-login"> - <title>Loggarsi in FreeBSD</title> - - <para>FreeBSD è un sistema multi-utente e multi-processo. Questa - è la descrizione formale che viene usualmente attribuita a un - sistema che può essere usato da diverse persone, le quali - eseguono contemporaneamente molti programmi su una singola - macchina.</para> - - <para>Ogni sistema multi-utente necessita di qualche metodo che distingua - un <quote>utente</quote> in modo univoco. In FreeBSD (e in tutti i - sistemi operativi &unix;-like), questo viene realizzato richiedendo che - ogni utente debba <quote>loggarsi</quote> nel sistema prima che possa - eseguire qualche programma. Ogni utente ha un nome univoco (lo - <quote>username</quote>), uno personale e una chiave segreta (la - <quote>password</quote>). FreeBSD richiede entrambe queste due cose - prima di dare la possibilità ad un utente di eseguire qualche - programma.</para> - - <indexterm><primary>script di avvio</primary></indexterm> - - <para>Giusto dopo la fase di avvio di FreeBSD e quando gli script di avvio - sono stati eseguiti<footnote> - <para>Gli script di avvio sono programmi che vengono eseguiti in modo - automatico durante la fase di avvio di FreeBSD. Il loro compito - principale è quello di settare delle cose che potranno essere - utilizzate da qualsiasi altra cosa venga eseguita, ed avviare i - servizi che potresti avere configurato in modo tale da essere - eseguiti in background per realizzare cose utili.</para> - </footnote>, ti viene presentato un prompt dove inserire un valido - username:</para> - - <screen>login:</screen> - - <para>Giusto per questo esempio, assumiamo che il tuo username sia - <username>john</username>. Al prompt digita <literal>john</literal> e - premi <keycap>Invio</keycap>. Ti verrà presentato un prompt - dove inserire la <quote>password</quote>:</para> - - <screen>login: <userinput>john</userinput> -Password:</screen> - - <para>Digita la password di <username>john</username>, e premi - <keycap>Invio</keycap>. La password <emphasis>non viene - visualizzata!</emphasis> Non ti devi preoccupare di questo per ora. - È sufficiente sapere che è una questione di - sicurezza.</para> - - <para>Se hai digitato la tua password in modo corretto, dovresti essere - loggato in FreeBSD e sei quindi pronto per provare tutti i comandi - disponibili.</para> - - <para>Dovresti inoltre vedere il messaggio del giorno - (<acronym>MOTD</acronym>) seguito da un prompt dei comandi (un - carattere <literal>#</literal>, <literal>$</literal>, o - <literal>%</literal>). Ciò - indica che sei a tutti gli effetti loggato in FreeBSD.</para> - </sect2> - - <sect2 id="consoles-virtual"> - <title>Console Multiple</title> - - <para>Eseguire comandi &unix; in una sola console va bene, tuttavia - FreeBSD può eseguire più programmi alla volta. Avere una - sola console dove poter digitare i comandi può essere un - pò uno spreco quando un sistema operativo come FreeBSD è - in grado di eseguire dozzine di programmi contemporaneamente. È - in questo caso che le <quote>console virtuali</quote> possono essere - molto utili.</para> - - <para>FreeBSD può essere configurato in modo tale da poter - utilizzare differenti console virtuali. Puoi passare da una console - virtuale ad un'altra digitando un paio di tasti sulla tastiera. Ogni - console ha il proprio canale di output indipendente, e FreeBSD si - occupa di redirigere correttamente l'input della tastiera e l'output del - monitor quando passi da una console virtuale in un'altra.</para> - - <para>In FreeBSD alcune combinazioni speciali di tasti sono state - riservate per il passaggio tra le console<footnote> - <para>Una descrizione abbastanza tecnica ed accurata di tutti i - dettagli della console di FreeBSD e dei driver della tastiera - può essere trovata nelle pagine man di &man.syscons.4;, - &man.atkbd.4;, &man.vidcontrol.1; e &man.kbdcontrol.1;. Qui non - approfondiremo i dettagli, ma il lettore interessato può - sempre consultare le pagine man per una spiegazione dettagliata - e completa su come funzionano queste cose.</para> - </footnote>. Puoi usare - <keycombo><keycap>Alt</keycap><keycap>F1</keycap></keycombo>, - <keycombo><keycap>Alt</keycap><keycap>F2</keycap></keycombo>, fino a - <keycombo><keycap>Alt</keycap><keycap>F8</keycap></keycombo> per - cambiare console su FreeBSD.</para> - - <para>Quando passi da una console ad un'altra, FreeBSD si preoccupa di - salvare e ripristinare l'output a video. Il risultato è - l'<quote>illusione</quote> di avere più schermi e più - tastiere <quote>virtuali</quote> che puoi utilizzare per dare in pasto a - FreeBSD dei comandi. I programmi che lanci su una console virtuale - rimarranno in esecuzione anche quando la console non è visibile. - L'esecuzione di questi programmi continua quando passi in un'altra - console virtuale.</para> - </sect2> - - <sect2 id="consoles-ttys"> - <title>Il File <filename>/etc/ttys</filename></title> - - <para>La configurazione di default di FreeBSD prevede l'avvio del sistema - con otto console virtuali. Comunque questo non è un settaggio - obbligatorio, e puoi facilmente personalizzare la tua installazione in - modo tale da avviare il sistema con qualche console virtuale in - più. Il numero e i settaggi delle console virtuali sono - configurati nel file <filename>/etc/ttys</filename>.</para> - - <para>Puoi usare il file <filename>/etc/ttys</filename> per configurare - le console virtuali di FreeBSD. In questo file ogni riga non commentata - (le righe che non iniziano con il carattere <literal>#</literal>) - contiene i settaggi di un singolo terminale o di una singola console - virtuale. La versione di default di questo file contenuta in FreeBSD - configura nove console virtuale, e ne abilita otto di queste. Si tratta - delle righe che iniziano con <literal>ttyv</literal>:</para> - - <programlisting># name getty type status comments -# -ttyv0 "/usr/libexec/getty Pc" cons25 on secure -# Terminali virtuali -ttyv1 "/usr/libexec/getty Pc" cons25 on secure -ttyv2 "/usr/libexec/getty Pc" cons25 on secure -ttyv3 "/usr/libexec/getty Pc" cons25 on secure -ttyv4 "/usr/libexec/getty Pc" cons25 on secure -ttyv5 "/usr/libexec/getty Pc" cons25 on secure -ttyv6 "/usr/libexec/getty Pc" cons25 on secure -ttyv7 "/usr/libexec/getty Pc" cons25 on secure -ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure</programlisting> - - <para>Per una descrizione più dettagliata su ogni colonna di questo - file e per tutte le opzioni che puoi utilizzare per settare le console - virtuali, consulta la pagina man &man.ttys.5;.</para> - </sect2> - - <sect2 id="consoles-singleuser"> - <title>Console in Modalità Single User</title> - - <para>Una descrizione dettagliata del significato della - <quote>modalità single user</quote> può essere trovata - nella <xref linkend="boot-singleuser">. È bene notare che - c'è un'unica console quando avvii FreeBSD in modalità - single user. Le console virtuali non sono disponibili. Anche i - settaggi della console in modalità single user possono essere - trovati nel file <filename>/etc/ttys</filename>. Guarda la riga che - inizia con <literal>console</literal>:</para> - - <programlisting># name getty type status comments -# -# Se la console è definita "insecure", allora il processo init richiederà la password di root -# quando entrerai in modalità single-user. -console none unknown off secure</programlisting> - - <note> - <para>Come riportato nel commento sopra la riga - <literal>console</literal>, puoi modificare questa riga cambiando - <literal>secure</literal> in <literal>insecure</literal>. Se lo fai, - quando FreeBSD viene avviato in modalità single user, - verrà chiesta la password di <username>root</username>.</para> - - <para><emphasis>Pensaci comunque due volte a settare il parametro - <literal>insecure</literal></emphasis>. Se non ricordi più - la password di <username>root</username>, riuscire ad avviare il - sistema in modalità single user sarà molto complesso. - È ancora possibile, ma potrebbe essere molto difficile per chi - non conosce molto bene il meccanismo di avvio di FreeBSD e i relativi - programmi.</para> - </note> - </sect2> - </sect1> - - <sect1 id="permissions"> - <title>I Permessi</title> - - <indexterm><primary>UNIX</primary></indexterm> - - <para>FreeBSD, essendo un discendente diretto dello &unix; BSD, si basa su - molti concetti chiave di &unix;. Il primo e il più affermato - è che FreeBSD è un sistema operativo multi-utente. - Il sistema può gestire diversi utenti che lavorano - contemporaneamente su lavori indipendenti. Il sistema è - responsabile della gestione e della suddivisione appropiata delle - richieste di utilizzo dei dispositivi hardware, delle periferiche, della - memoria, e del tempo di CPU in modo equo per ogni utente.</para> - - <para>Poichè il sistema è in grado di supportare più - utenti, tutto ciò che il sistema gestisce possiede un'insieme di - permessi che determinano chi può leggere, scrivere, ed eseguire la - risorsa. Questi permessi sono memorizzati mediante tre ottetti - suddivisi in tre parti, una per il proprietario del file, una per il - gruppo al quale il file appartiene, e una per tutti gli altri. Questa - rappresentazione numerica funziona in questo modo:</para> - - <indexterm><primary>permessi</primary></indexterm> - <indexterm><primary>permessi dei file</primary></indexterm> - - <informaltable frame="none"> - <tgroup cols="3"> - <thead> - <row> - <entry>Valore</entry> - - <entry>Permessi</entry> - - <entry>Listato nella Directory</entry> - </row> - </thead> - - <tbody> - <row> - <entry>0</entry> - - <entry>Lettura no, scrittura no, esecuzione no</entry> - - <entry><literal>---</literal></entry> - </row> - - <row> - <entry>1</entry> - - <entry>Lettura no, scrittura no, esecuzione</entry> - - <entry><literal>--x</literal></entry> - </row> - - <row> - <entry>2</entry> - - <entry>Lettura no, scrittura, esecuzione no</entry> - - <entry><literal>-w-</literal></entry> - </row> - - <row> - <entry>3</entry> - - <entry>Lettura no, scrittura, esecuzione</entry> - - <entry><literal>-wx</literal></entry> - </row> - - <row> - <entry>4</entry> - - <entry>Lettura, scrittura no, esecuzione no</entry> - - <entry><literal>r--</literal></entry> - </row> - - <row> - <entry>5</entry> - - <entry>Lettura, scrittura no, esecuzione</entry> - - <entry><literal>r-x</literal></entry> - </row> - - <row> - <entry>6</entry> - - <entry>Lettura, scrittura, esecuzione no</entry> - - <entry><literal>rw-</literal></entry> - </row> - - <row> - <entry>7</entry> - - <entry>Lettura, scrittura, esecuzione</entry> - - <entry><literal>rwx</literal></entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <indexterm><primary><command>ls</command></primary></indexterm> - <indexterm><primary>directory</primary></indexterm> - - <para>Puoi usare l'opzione <option>-l</option> del comando &man.ls.1; per - visualizzare un lungo listato della directory che include una colonna - contenente le informazioni sui permessi del file per il proprietario, per - il gruppo, e per gli altri. Per esempio, digitando <command>ls - -l</command> in una arbitraria directory:</para> - - <screen>&prompt.user; <userinput>ls -l</userinput> -total 530 --rw-r--r-- 1 root wheel 512 Sep 5 12:31 myfile --rw-r--r-- 1 root wheel 512 Sep 5 12:31 otherfile --rw-r--r-- 1 root wheel 7680 Sep 5 12:31 email.txt -...</screen> - - <para>Ecco come è suddivisa la prima colonna dell'output del comando - <command>ls -l</command>:</para> - - <screen>-rw-r--r--</screen> - - <para>Il primo carattere (partendo da sinistra) indica se il file in - questione è un file regolare, una directory, un file speciale per - dispositivi a caratteri, una socket, o un file speciale per altri - dispositivi. Nel nostro caso, il <literal>-</literal> indica un - file regolare. I tre caratteri successivi, che in questo esempio sono - <literal>rw-</literal>, indicano i permessi per il proprietario del file. - Seguono altri tre caratteri, <literal>r--</literal>, che indicano i - permessi del gruppo al quale il file appartiene. Gli ultimi tre - caratteri, <literal>r--</literal>, indicano i permessi per il resto del - mondo. Un trattino significa che il permesso non viene concesso. - Nel caso di questo file, i permessi sono settati affinchè il - proprietario possa leggere e scrivere il file, il gruppo possa leggere - il file, e il resto del mondo possa solamente leggere il file. In accordo - con la precedente tabella, i permessi per questo file sono - <literal>644</literal>, dove ogni cifra rappresenta una delle tre parti - che costituiscono i permessi del file.</para> - - <para>D'accordo, ma il sistema come controlla i permessi sui dispositivi? - FreeBSD tratta molti dispositivi hardware esattamente come un file che i - programmi possono aprire, leggere, e scrivere dei dati proprio come - avviene con gli altri file. Questi file speciali per i dispositivi sono - memorizzati nella directory <filename>/dev</filename>.</para> - - <para>Anche le directory sono trattate come file. Queste hanno permessi di - lettura, scrittura e di esecuzione. Il bit riferito al permesso di - esecuzione per una directory ha un significato leggermente differente - rispetto a quello dei file. Quando una directory ha il permesso di - esecuzione abilitato, significa che si ha accesso alla directory, ossia - è possibile eseguire il comando <quote>cd</quote> (cambio di - directory) per entrarci. Inoltre questo significa che all'interno della - directory è possibile accedere ai file dei quali si conosce il nome - (naturalmente a condizione dei permessi degli stessi file).</para> - - <para>In particolare, per visualizzare il contenuto di una directory, deve - essere abilitato il permesso di lettura sulla stessa, mentre per - eliminare un file di cui si conosce il nome, è necessario che la - directory contenente il file abbia i permessi di scrittura - <emphasis>e</emphasis> di esecuzione abilitati.</para> - - <para>Ci sono altri bit per permessi particolari, ma sono in genere usati - in circostanze speciali come il permesso di setuid per i binari e - quello di sticky per le directory. Se vuoi avere più informazioni - sui permessi dei file e su come settarli, guarda la pagina man di - &man.chmod.1;.</para> - - <sect2> - <sect2info> - <authorgroup> - <author> - <firstname>Tom</firstname> - - <surname>Rhodes</surname> - - <contrib>Contributo di </contrib> - </author> - </authorgroup> - </sect2info> - - <title>Permessi Simbolici</title> - - <indexterm> - <primary>Permessi</primary><secondary>simbolici</secondary> - </indexterm> - - <para>I permessi simbolici, qualche volta chiamati espressioni simboliche, - usano caratteri al posto dei numeri ottali per assegnare i permessi a - file o directory. Le espressioni simboliche usano la sintassi (chi) - (azione) (permessi), con i seguenti valori:</para> - - <informaltable frame="none"> - <tgroup cols="3"> - <thead> - <row> - <entry>Opzione</entry> - - <entry>Lettera</entry> - - <entry>Cosa rappresenta/Cosa fa</entry> - </row> - </thead> - - <tbody> - <row> - <entry>(chi)</entry> - - <entry>u</entry> - - <entry>Utente</entry> - </row> - - <row> - <entry>(chi)</entry> - - <entry>g</entry> - - <entry>Gruppo di appartenenza</entry> - </row> - - <row> - <entry>(chi)</entry> - - <entry>o</entry> - - <entry>Altri</entry> - </row> - - <row> - <entry>(chi)</entry> - - <entry>a</entry> - - <entry>Tutti (tutto il <quote>mondo</quote>)</entry> - </row> - - <row> - <entry>(azione)</entry> - - <entry>+</entry> - - <entry>Aggiunge i permessi</entry> - </row> - - <row> - <entry>(azione)</entry> - - <entry>-</entry> - - <entry>Rimuove i permessi</entry> - </row> - - <row> - <entry>(azione)</entry> - - <entry>=</entry> - - <entry>Setta esplicitamente i permessi</entry> - </row> - - <row> - <entry>(permessi)</entry> - - <entry>r</entry> - - <entry>Lettura</entry> - </row> - - <row> - <entry>(permessi)</entry> - - <entry>w</entry> - - <entry>Scrittura</entry> - </row> - - <row> - <entry>(permessi)</entry> - - <entry>x</entry> - - <entry>Esecuzione</entry> - </row> - - <row> - <entry>(permessi)</entry> - - <entry>t</entry> - - <entry>Bit sticky</entry> - </row> - - <row> - <entry>(permessi)</entry> - - <entry>s</entry> - - <entry>Setta UID o GID</entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <para>Questi valori sono usati con il comando &man.chmod.1; - in modo simile a prima, ma con le lettere. Per esempio, puoi usare il - seguente comando per impedire agli altri utenti l'accesso a - <replaceable>FILE</replaceable>:</para> - - <screen>&prompt.user; <userinput>chmod go= FILE</userinput></screen> - - <para>Se si ha la necessità di realizzare più di una - modifica ai settaggi di un file si può usare una lista di - settaggi separati da virgola. Per esempio il seguente comando - rimuoverà il permesso di scrittura su - <replaceable>FILE</replaceable> al gruppo di appartenenza del file e al - resto del <quote>mondo</quote>, e inoltre aggiungerà - il permesso di esecuzione per tutti:</para> - - <screen>&prompt.user; <userinput>chmod go-w,a+x <replaceable>FILE</replaceable></userinput></screen> - </sect2> - </sect1> - - <sect1 id="dirstructure"> - <title>Struttura delle Directory</title> - - <indexterm><primary>gerarchia delle directory</primary></indexterm> - - <para>La gerarchia delle directory di FreeBSD è fondamentale per - ottenere una comprensione globale del sistema. Il concetto più - importante da cogliere al volo è quello relativo alla directory - root, <quote>/</quote>. Questa directory è la prima ad essere - montata all'avvio e contiene gli elementi fondamentali del sistema - necessari per predisporre il sistema operativo al funzionamento - multi-utente. Inoltre la directory root contiene i punti di mount per - gli altri file system che potresti voler montare.</para> - - <para>Un punto di mount è una directory dove dei file system - aggiuntivi possono essere innestati sul file system root. Alcuni punti di - mount standard sono <filename>/usr</filename>, <filename>/var</filename>, - <filename>/mnt</filename>, e <filename>/cdrom</filename>. Queste - directory compaiono in genere negli elementi del file - <filename>/etc/fstab</filename>. Il file <filename>/etc/fstab</filename> - è una tabella di file system e punti di mount che viene consultata - dal sistema. Molti dei file system riferiti nel file - <filename>/etc/fstab</filename> sono montati in modo automatico all'avvio - tramite lo script &man.rc.8; a meno che essi sia stati dichiarati con - l'opzione <option>noauto</option>. Consulta la pagina man di - &man.fstab.5; per maggiori informazioni sul formato del file - <filename>/etc/fstab</filename> e per le opzioni che può - contenere.</para> - - <para>Una descrizione completa della gerarchia del file system è - disponibile nella pagina man &man.hier.7;. Per ora, è - sufficiente una breve panoramica generale delle directory più - comuni.</para> - - <para> - <informaltable frame="none"> - <tgroup cols="2"> - <thead> - <row> - <entry>Directory</entry> - - <entry>Descrizione</entry> - </row> - </thead> - - <tbody> - <row> - <entry><filename class="directory">/</filename></entry> - - <entry>Directory root del file system.</entry> - </row> - - <row> - <entry><filename class="directory">/bin/</filename></entry> - - <entry>Utilità fondamentali per l'utente sia in ambiente - mono-utente sia in ambiente multi-utente.</entry> - </row> - - <row> - <entry><filename class="directory">/boot/</filename></entry> - - <entry>Programmi e file di configurazione utilizzati durante la - fase di avvio del sistema operativo.</entry> - </row> - - <row> - <entry><filename - class="directory">/boot/defaults/</filename></entry> - - <entry>File di configurazione di avvio di default; consultare - &man.loader.conf.5;.</entry> - </row> - - <row> - <entry><filename class="directory">/dev/</filename></entry> - - <entry>Nodi di dispositivo; consultare &man.intro.4;.</entry> - </row> - - <row> - <entry><filename class="directory">/etc/</filename></entry> - - <entry>Script e file di configurazione del sistema.</entry> - </row> - - <row> - <entry><filename - class="directory">/etc/defaults/</filename></entry> - - <entry>File di configurazione di default del sistema; consultare - &man.rc.8;.</entry> - </row> - - <row> - <entry><filename class="directory">/etc/mail/</filename></entry> - - <entry>File di configurazione per gli MTA (Mail Transfer Agent, - agente di trasferimento della posta elettronica) come - &man.sendmail.8;.</entry> - </row> - - <row> - <entry><filename class="directory">/etc/namedb/</filename></entry> - - <entry>File di configurazione di <command>named</command>; - consultare &man.named.8;.</entry> - </row> - - <row> - <entry><filename - class="directory">/etc/periodic/</filename></entry> - - <entry>Script che sono eseguiti giornalmente, settimanalmente, e - mensilmente tramite &man.cron.8;; consultare - &man.periodic.8;.</entry> - </row> - - <row> - <entry><filename class="directory">/etc/ppp/</filename></entry> - - <entry>File di configurazione di <command>ppp</command>; - consultare &man.ppp.8;.</entry> - </row> - - <row> - <entry><filename class="directory">/mnt/</filename></entry> - - <entry>Directory vuota usata comunemente dagli amministratori di - sistema come punto di mount temporaneo.</entry> - </row> - - <row> - <entry><filename class="directory">/proc/</filename></entry> - - <entry>File system dedicato ai processi; consultare - &man.procfs.5;, &man.mount.procfs.8;.</entry> - </row> - - <row> - <entry><filename class="directory">/root/</filename></entry> - - <entry>Directory home per l'account - <username>root</username>.</entry> - </row> - - <row> - <entry><filename class="directory">/sbin/</filename></entry> - - <entry>Programmi di sistema e utilità di amministrazione - fondamentali sia in ambiente mono-utente sia in ambiente - multi-utente.</entry> - </row> - - <row> - <entry><filename class="directory">/stand/</filename></entry> - - <entry>Programmi usati in un ambiente standalone.</entry> - </row> - - <row> - <entry><filename class="directory">/tmp/</filename></entry> - - <entry>File temporanei, di solito un file system basato sulla - memoria come &man.mfs.8; (generalmente il contenuto di <filename - class="directory">/tmp</filename> non viene preservato dopo - un reboot del sistema).</entry> - </row> - - <row> - <entry><filename class="directory">/usr/</filename></entry> - - <entry>La maggior parte delle applicazioni e delle utilità - dell'utente.</entry> - </row> - - <row> - <entry><filename class="directory">/usr/bin/</filename></entry> - - <entry>Utilità, strumenti di programmazione, e - applicazioni comuni.</entry> - </row> - - <row> - <entry><filename - class="directory">/usr/include/</filename></entry> - - <entry>File include standard del C.</entry> - </row> - - <row> - <entry><filename class="directory">/usr/lib/</filename></entry> - - <entry>Archivio di librerie.</entry> - </row> - - <row> - <entry><filename - class="directory">/usr/libdata/</filename></entry> - - <entry>Archivio di dati per utilità varie.</entry> - </row> - - <row> - <entry><filename - class="directory">/usr/libexec/</filename></entry> - - <entry>Demoni & utilità di sistema (eseguiti da altri - programmi).</entry> - </row> - - <row> - <entry><filename class="directory">/usr/local/</filename></entry> - - <entry>Eseguibili locali, librerie locali, ecc. Usata anche - come destinazione di default per la struttura dei port di - FreeBSD. All'interno di <filename>/usr/local</filename>, viene - usato lo stesso schema generale descritto in &man.hier.7; per la - directory <filename>/usr</filename>. Le eccezioni sono la - directory man, che è posta direttamente sotto - <filename>/usr/local</filename> piuttosto che sotto - <filename>/usr/local/share</filename>, e la documentazione dei - port che è in - <filename>share/doc/<replaceable>port</replaceable></filename>. - </entry> - </row> - - <row> - <entry><filename class="directory">/usr/obj/</filename></entry> - - <entry>Albero degli elementi dipendenti dal tipo di architettura - dell'elaboratore prodotto dalla costruzione dell'albero - <filename>/usr/src</filename>.</entry> - </row> - - <row> - <entry><filename class="directory">/usr/ports</filename></entry> - - <entry>Collezione dei port di FreeBSD (opzionale).</entry> - </row> - - <row> - <entry><filename class="directory">/usr/sbin/</filename></entry> - - <entry>Demoni & utilità di sistema (eseguiti dagli - utenti).</entry> - </row> - - <row> - <entry><filename class="directory">/usr/share/</filename></entry> - - <entry>File indipendenti dal tipo di architettura - dell'elaboratore.</entry> - </row> - - <row> - <entry><filename class="directory">/usr/src/</filename></entry> - - <entry>File sorgenti di BSD e/o sorgenti proprietari.</entry> - </row> - - <row> - <entry><filename class="directory">/usr/X11R6/</filename></entry> - - <entry>Eseguibili, librerie, ecc. riguardanti la distribuzione - X11R6 (opzionale).</entry> - </row> - - <row> - <entry><filename class="directory">/var/</filename></entry> - - <entry>File log di vario genere, file temporanei, file transitori, - e file di spool.</entry> - </row> - - <row> - <entry><filename class="directory">/var/log/</filename></entry> - - <entry>File di log del sistema di vario genere.</entry> - </row> - - <row> - <entry><filename class="directory">/var/mail/</filename></entry> - - <entry>File delle caselle di posta degli utenti.</entry> - </row> - - <row> - <entry><filename class="directory">/var/spool/</filename></entry> - - <entry>Directory di spool per stampanti e per la posta elettronica - del sistema.</entry> - </row> - - <row> - <entry><filename class="directory">/var/tmp/</filename></entry> - - <entry>File temporanei che sono mantenuti tra i reboot del - sistema.</entry> - </row> - - <row> - <entry><filename>/var/yp</filename></entry> - - <entry>Mappe NIS.</entry> - </row> - </tbody> - </tgroup> - </informaltable> - </para> - </sect1> - - <sect1 id="disk-organization"> - <title>Organizzazione del Disco</title> - - <para>La più piccola unità di organizzazione che FreeBSD usa - per ricercare file è il nome del file. I nomi dei file sono - case-sensitive, ciò significa che <filename>readme.txt</filename> - e <filename>README.TXT</filename> sono due file distinti. FreeBSD non usa - l'estensione (es. <filename>.txt</filename>) di un file per determinare - se il file è un programma, un documento, o qualche altra forma di - dati.</para> - - <para>I file sono memorizzati in directory. Una directory può - contenere centinaia di file o non contenerne affatto. Inoltre una - directory può contenere altre directory, consentendo di costruire - una gerarchia di directory all'interno di un'altra. Tutto questo rende - più facile l'organizzazione dei tuoi dati.</para> - - <para>File e directory sono riferiti attraverso il nome del file o della - directory, seguito da uno slash in avanti, <literal>/</literal>, - a sua volta seguito da altri nomi di directory che sono necessari. Se - hai una directory di nome <filename>foo</filename>, la quale contiene la - directory <filename>bar</filename>, che a sua volta contiene il file - <filename>readme.txt</filename>, allora il nome completo, chiamato anche - il <firstterm>path</firstterm> del file è - <filename>foo/bar/readme.txt</filename>.</para> - - <para>Le directory e i file sono memorizzati in un filesystem. Ogni - filesystem contiene esattamente una directory al livello più alto, - chiamata la <firstterm>directory root</firstterm> di quel filesystem. - Questa directory root può contenere altre directory.</para> - - <para>Fin qui è probabilmente tutto simile ad altri sistemi - operativi che hai usato. Tuttavia ci sono alcune differenze; per - esempio, il &ms-dos; usa il carattere <literal>\</literal> per separare i - nomi di file e directory, mentre &macos; usa <literal>:</literal>.</para> - - <para>FreeBSD non usa lettere di dispositivi, o altri nomi di dispositivi - nel path. In FreeBSD non dovrai mai scrivere - <filename>c:/foo/bar/readme.txt</filename>.</para> - - <para>Piuttosto, un filesystem è designato come il - <firstterm>filesystem root</firstterm>. La directory root del - filesystem root è riferita con <literal>/</literal>. Ogni altro - filesystem è <firstterm>montato</firstterm> sotto il filesystem - root. Non importa quanti dischi hai sul tuo sistema FreeBSD, ogni - directory è come se fosse parte dello stesso disco.</para> - - <para>Supponiamo che tu abbia tre filesystem, chiamati - <literal>A</literal>, <literal>B</literal>, e <literal>C</literal>. - Ogni filesystem ha una directory root, la quale contiene altre due - directory, chiamate <literal>A1</literal>, <literal>A2</literal> (e - nello stesso modo <literal>B1</literal>, <literal>B2</literal> e - <literal>C1</literal>, <literal>C2</literal>).</para> - - <para>Sia <literal>A</literal> il filesystem root. Se usi il comando - <command>ls</command> per visualizzare il contenuto di questa directory - dovresti vedere due sottodirectory, <literal>A1</literal> e - <literal>A2</literal>. L'albero delle directory assomiglia a - questo:</para> - - <mediaobject> - <imageobject> - <imagedata fileref="install/example-dir1" format="EPS"> - </imageobject> - - <textobject> - <literallayout class="monospaced"> / - | - +--- A1 - | - `--- A2</literallayout> - </textobject> - </mediaobject> - - <para>Un filesystem deve essere montato su una directory di un altro - filesystem. Supponiamo ora che tu monti il filesystem - <literal>B</literal> sulla directory <literal>A1</literal>. La directory - root di <literal>B</literal> rimpiazza <literal>A1</literal>, e di - conseguenza appariranno le directory di <literal>B</literal>:</para> - - <mediaobject> - <imageobject> - <imagedata fileref="install/example-dir2" format="EPS"> - </imageobject> - - <textobject> - <literallayout class="monospaced"> / - | - +--- A1 - | | - | +--- B1 - | | - | `--- B2 - | - `--- A2</literallayout> - </textobject> - </mediaobject> - - <para>I file contenuti nelle directory <literal>B1</literal> o - <literal>B2</literal> possono essere raggiunti con il path - <filename>/A1/B1</filename> o <filename>/A1/B2</filename>. I file che - erano in <filename>/A1</filename> sono stati temporaneamente nascosti. - Questi riappariranno quando <literal>B</literal> sarà - <firstterm>smontato</firstterm> da A.</para> - - <para>Se <literal>B</literal> è stato montato su - <literal>A2</literal> allora il diagramma assomiglierà a - questo:</para> - - <mediaobject> - <imageobject> - <imagedata fileref="install/example-dir3" format="EPS"> - </imageobject> - - <textobject> - <literallayout class="monospaced"> / - | - +--- A1 - | - `--- A2 - | - +--- B1 - | - `--- B2</literallayout> - </textobject> - </mediaobject> - - <para>e i path saranno rispettivamente <filename>/A2/B1</filename> e - <filename>/A2/B2</filename>.</para> - - <para>I filesystem possono essere montati in cima ad altri filesystem. - Continuando con l'ultimo esempio, il filesystem <literal>C</literal> - può essere montato in cima alla directory <literal>B1</literal> - nel filesystem <literal>B</literal>, arrivando a questa - sistemazione:</para> - - <mediaobject> - <imageobject> - <imagedata fileref="install/example-dir4" format="EPS"> - </imageobject> - - <textobject> - <literallayout class="monospaced"> / - | - +--- A1 - | - `--- A2 - | - +--- B1 - | | - | +--- C1 - | | - | `--- C2 - | - `--- B2</literallayout> - </textobject> - </mediaobject> - - <para>Oppure <literal>C</literal> potrebbe essere montato direttamente sul - filesystem <literal>A</literal>, sotto la directory - <literal>A1</literal>:</para> - - <mediaobject> - <imageobject> - <imagedata fileref="install/example-dir5" format="EPS"> - </imageobject> - - <textobject> - <literallayout class="monospaced"> / - | - +--- A1 - | | - | +--- C1 - | | - | `--- C2 - | - `--- A2 - | - +--- B1 - | - `--- B2</literallayout> - </textobject> - </mediaobject> - - <para>Se hai familiarità con &ms-dos;, questo è simile, man - non identico, al comando <command>join</command>.</para> - - <para>Di solito non ti devi occupare direttamente di questi aspetti. - Tipicamente quando installi FreeBSD crei i filesystem e decidi dove - montarli, e da quel momento non avrai più la necessità di - modificarli a meno che installi un nuovo disco.</para> - - <para>È possibile avere un unico filesystem root, senza avere la - necessità di crearne altri. Esistono alcuni svantaggi - utilizzando questo approccio, e un solo vantaggio.</para> - - <itemizedlist> - <title>Benefici con Filesystem Multipli</title> - - <listitem> - <para>Filesystem diversi possono avere <firstterm>opzioni di - mount</firstterm> diverse. Per esempio, in una attenta progettazione, - il filesystem root potrebbe essere montato in modalità di sola - lettura, rendendo impossibile la cancellazione accidentale o la modifica - di un file critico. Inoltre, separando i filesystem scrivibili - dall'utente, come <filename>/home</filename>, da altri filesystem - permette di montare i primi con l'opzione <firstterm>nosuid</firstterm>; - questa opzione non permette il settaggio dei bit - <firstterm>suid</firstterm>/<firstterm>guid</firstterm> sui file - eseguibili memorizzati sul filesystem che ha tale opzione di mount - attivata, migliorando l'aspetto sicurezza.</para> - </listitem> - - <listitem> - <para>FreeBSD ottimizza in modo automatico la disposizione dei file sul - filesystem, a seconda di come è usato il filesystem. Quindi - un filesystem che contiene molti file piccoli che sono scritti di - frequente avrà un'ottimizzazione diversa rispetto ad un altro - filesystem che contiene pochi file di grandi dimensioni. Utilizzando - un solo grande filesystem questa ottimizzazione viene a - mancare.</para> - </listitem> - - <listitem> - <para>I filesystem di FreeBSD reagiscono bene ad una violenta perdita di - energia elettrica. Tuttavia, una perdita di energia in un punto - critico potrebbe sempre danneggiare la struttura del filesystem. - Splittando i tuoi dati su filesystem multipli sarà più - probabile che il sistema riparta, dandoti la possibilità di - ripristinare un precedente backup se necessario.</para> - </listitem> - </itemizedlist> - - <itemizedlist> - <title>Benefici di un Filesystem Singolo</title> - - <listitem> - <para>I filesystem sono a dimensione fissa. Se crei un solo filesystem - quando installi FreeBSD e gli assegni una data dimensione, in futuro - potresti scoprire che necessiti di creare una partizione più - grande. Questo non è facilmente realizzabile se non - effettuando un backup dei dati, ricreando il filesystem con la nuova - dimensione, e quindi ripristinando il backup di dati.</para> - - <important> - <para>FreeBSD 4.4 e successivi hanno il comando &man.growfs.8;, - con il quale è possibile incrementare la dimensione del - filesystem al volo, rimuovendo questa limitazione.</para> - </important> - </listitem> - </itemizedlist> - - <para>I filesystem sono contenuti all'interno di partizioni. Qui il - significato del termine partizione si discosta dall'uso comune di questo - termine (partizioni &ms-dos;, per esempio), a causa dell'eredità - &unix; di &os;. Ogni partizione è identificata da una lettera - partendo dalla <literal>a</literal> fino alla <literal>h</literal>. Ogni - partizione può contenere solo un filesystem, il che significa che i - filesystem sono spesso identificati sia dal loro punto di mount nella - gerarchia del filesystem, sia dalla lettera della partizione nella quale - sono contenuti.</para> - - <para>Inoltre FreeBSD usa parte del disco per lo <firstterm>spazio di - swap</firstterm>. Lo spazio di swap fornisce a FreeBSD la - funzionalità di <firstterm>memoria virtuale</firstterm>. Questo - permette al tuo computer di comportarsi come se avesse più memoria - di quella che ha realmente. Quando FreeBSD esaurisce la memoria muove - alcuni dati presenti in memoria che non sono utilizzati in quel momento - nello spazio di swap, e li riporta in memoria (spostando nello spazio di - swap qualche altro dato) non appena necessari.</para> - - <para>Alcune partizioni hanno certe convenzioni a loro associate.</para> - - <informaltable frame="none" pgwide="1"> - <tgroup cols="2"> - <colspec colwidth="1*"> - - <colspec colwidth="5*"> - - <thead> - <row> - <entry>Partizione</entry> - - <entry>Convenzione</entry> - </row> - </thead> - - <tbody> - <row> - <entry><literal>a</literal></entry> - - <entry>In genere contiene il filesystem root</entry> - </row> - - <row> - <entry><literal>b</literal></entry> - - <entry>In genere contiene lo spazio di swap</entry> - </row> - - <row> - <entry><literal>c</literal></entry> - - <entry>Di solito rappresenta l'intera dimensione della slice. - Questo permette a utility che necessitano di lavorare sull'intera - slice (per esempio, uno scanner di blocchi difettosi) di lavorare - sulla partizione <literal>c</literal>. Di norma non dovresti - creare un filesystem su questa partizione.</entry> - </row> - - <row> - <entry><literal>d</literal></entry> - - <entry>La partizione <literal>d</literal> era utilizzata in passato - con un significato speciale, sebbene ora non sia più - utilizzata. Ai giorni d'oggi, alcuni strumenti operano in modo - starno se gli si dice di lavorare sulla partizione - <literal>d</literal>, e per questo motivo - <application>sysinstall</application> di norma non la - crea.</entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <para>Ogni partizione-che-contiene-un-filesystem è memorizzata in - ciò che FreeBSD chiama <firstterm>slice</firstterm>. Slice - è un termine di FreeBSD per identificare ciò che comunemente - viene chiamato partizione, e di nuovo, questo è dovuto dal - background &unix; di FreeBSD. Le slices sono numerate, partendo da 1 e - arrivando fino a 4.</para> - - <indexterm><primary>slice</primary></indexterm> - - <indexterm><primary>partizioni</primary></indexterm> - - <indexterm><primary>pericolosamente dedicate</primary></indexterm> - - <para>I numeri di slice seguono il nome del dispositivo, preceduti da una - <literal>s</literal>, e partendo da 1. Quindi - <quote>da0<emphasis>s1</emphasis></quote> è la prima slice sul - primo disco SCSI. Ci possono essere solo quattro slice fisiche su un - disco, ma puoi avere slice logiche all'interno di slice fisiche di un - appropriato tipo. Queste slice estese sono numerate a partire da 5, - quindi <quote>ad0<emphasis>s5</emphasis></quote> è la prima - slice estesa sul primo disco IDE. Questi stratagemmi sono usati per i - filesystem che si aspettano di occupare una slice.</para> - - <para>Le slice, i dispositivi fisici <quote>pericolosamente - dedicati</quote>, e altri dispositivi contengono - <firstterm>partizioni</firstterm>, le quali sono rappresentate tramite - lettere dalla <literal>a</literal> fino alla <literal>h</literal>. Queste - lettere seguono il nome del dispositivo, quindi - <quote>da0<emphasis>a</emphasis></quote> è la partizione a - sul primo dispositivo da, il quale è <quote>pericolosamente - dedicato</quote>. <quote>ad1s3<emphasis>e</emphasis></quote> è - la quinta partizione nel terza slice del secondo disco IDE.</para> - - <para>In fine, ogni disco sul sistema è identificato. Un nome di un - disco incomincia con un codice che indica il tipo di disco, seguito da un - numero, che indica quale disco esso sia. A differenza delle slice, - i numeri riferiti al disco incominciano da 0. Puoi vedere dei codici - generici in <xref linkend="basics-dev-codes">.</para> - - <para>Quando fai riferimento a una partizione di FreeBSD devi specificare - anche il nome della slice e del disco che contengono la partizione, e - quando fai riferimento a una slice dovresti specificare anche il nome del - disco. Specifica quindi il nome del disco, il carattere - <literal>s</literal>, il numero di slice, e infine la lettera della - partizione. Alcuni esempi sono mostrati nell'<xref - linkend="basics-disk-slice-part">.</para> - - <para>L'<xref linkend="basics-concept-disk-model"> mostra un modello - concettuale di struttura di un disco che dovrebbe aiutare a chiare le - cose.</para> - - <para>Per installare FreeBSD devi prima configurare le slice del disco, - creare le partizioni all'interno della slice che vuoi usare per FreeBSD, - e quindi creare un filesystem (o spazio di swap) in ogni partizione, e - decidere dove il filesystem deve essere montato.</para> - - <table frame="none" pgwide="1" id="basics-dev-codes"> - <title>Codici dei Dispositivi Disco</title> - - <tgroup cols="2"> - <colspec colwidth="1*"> - - <colspec colwidth="5*"> - - <thead> - <row> - <entry>Codice</entry> - - <entry>Significato</entry> - </row> - </thead> - - <tbody> - <row> - <entry><devicename>ad</devicename></entry> - - <entry>disco ATAPI (IDE)</entry> - </row> - - <row> - <entry><devicename>da</devicename></entry> - - <entry>disco ad accesso diretto SCSI</entry> - </row> - - <row> - <entry><devicename>acd</devicename></entry> - - <entry>CDROM ATAPI (IDE)</entry> - </row> - - <row> - <entry><devicename>cd</devicename></entry> - - <entry>CDROM SCSI</entry> - </row> - - <row> - <entry><devicename>fd</devicename></entry> - - <entry>Disco floppy</entry> - </row> - </tbody> - </tgroup> - </table> - - <example id="basics-disk-slice-part"> - <title>Esempi di Nomi di Dischi, di Slice, e di Partizioni</title> - - <informaltable frame="none" pgwide="1"> - <tgroup cols="2"> - <colspec colwidth="1*"> - - <colspec colwidth="5*"> - - <thead> - <row> - <entry>Nome</entry> - - <entry>Significato</entry> - </row> - </thead> - - <tbody> - <row> - <entry><literal>ad0s1a</literal></entry> - - <entry>La prima partizione (<literal>a</literal>) sulla prima - slice (<literal>s1</literal>) sul primo disco IDE - (<literal>ad0</literal>).</entry> - </row> - - <row> - <entry><literal>da1s2e</literal></entry> - - <entry>La quinta partizione (<literal>e</literal>) sulla seconda - slice (<literal>s2</literal>) sul secondo disco SCSI - (<literal>da1</literal>).</entry> - </row> - </tbody> - </tgroup> - </informaltable> - </example> - - <example id="basics-concept-disk-model"> - <title>Modello Concettuale di un Disco</title> - - <para>Questo diagramma mostra come FreeBSD vede il primo disco IDE - attaccato al sistema. Si assuma che il disco sia di 4 GB, e che - contenga due slice da 2 GB (equivalenti come significato a due - partizioni &ms-dos;). La prima slice contiene un disco &ms-dos;, - <devicename>C:</devicename>, e la seconda slice contiene - un'installazione di FreeBSD. In questo esempio l'installazione di - FreeBSD ha tre partizioni standard più una di swap.</para> - - <para>Le tre partizioni conterranno ognuna un filesystem. La partizione - <literal>a</literal> sarà usata per il filesystem root, - la <literal>e</literal> per la gerarchia di directory - <filename>/var</filename>, e la partizione <literal>f</literal> per - la gerarchia di directory <filename>/usr</filename>.</para> - - <mediaobject> - <imageobject> - <imagedata fileref="install/disk-layout" format="EPS"> - </imageobject> - - <textobject> - <literallayout class="monospaced">.-----------------. --. -| | | -| DOS / Windows | | -: : > Prima slice, ad0s1 -: : | -| | | -:=================: ==: --. -| | | Partizione a, montata come / | -| | > riferita come ad0s2a | -| | | | -:-----------------: ==: | -| | | Partizione b, usata come swap | -| | > riferita come ad0s2b | -| | | | -:-----------------: ==: | Partizione c, senza -| | | Partizione e, usata come /var > filesystem, tutta -| | > riferita come ad0s2e | la slice di FreeBSD, -| | | | ad0s2c -:-----------------: ==: | -| | | | -: : | Partizione f, usata come /usr | -: : > riferita come ad0s2f | -: : | | -| | | | -| | --' | -`-----------------' --'</literallayout> - </textobject> - </mediaobject> - </example> - </sect1> - - <sect1 id="mount-unmount"> - <title>Montaggio e Smontaggio dei File system</title> - - <para>Il file system è raffigurato in maniera ottimale da un albero, - radicato, per così dire, in <filename>/</filename>. Le directory - <filename>/dev</filename>, <filename>/usr</filename>, e le altre - directory che stanno all'interno della directory root sono i rami, i quali - possono essere a loro volta ramificati, come in - <filename>/usr/local</filename>, e così via.</para> - - <indexterm><primary>file system root</primary></indexterm> - - <para>Esistono varie ragioni per mantenere alcune di queste directory su - file system separati. La directory <filename>/var</filename> contiene - le directory <filename>log/</filename>, <filename>spool/</filename>, - e vari tipi di file temporanei, e come tale, può riempirsi. - Riempire il file system root non è una buona idea, quindi scindere - la directory <filename>/var</filename> da <filename>/</filename> è - spesso vantaggioso.</para> - - <para>Un'altra motivazione per mantenere certi alberi di directory su altri - file system è quando questi alberi sono alloggiati su dischi fisici - separati, o sono dischi virtuali separati, come avviene per i mount del - <link linkend="network-nfs">Network File System</link>, o dei dispositivi - CDROM.</para> - - <sect2 id="disks-fstab"> - <title>Il File <filename>fstab</filename></title> - - <indexterm> - <primary>file system</primary> - <secondary>montati con fstab</secondary> - </indexterm> - - <para>Durante la <link linkend="boot">fase di avvio</link>, i file system - elencati nel file <filename>/etc/fstab</filename> sono montati - in modo automatico (a meno che siano specificati con l'opzione - <option>noauto</option>).</para> - - <para>Il file <filename>/etc/fstab</filename> contiene una serie di righe - il cui formato è il seguente:</para> - - <programlisting><replaceable>device</replaceable> <replaceable>/mount-point</replaceable> <replaceable>fstype</replaceable> <replaceable>options</replaceable> <replaceable>dumpfreq</replaceable> <replaceable>passno</replaceable></programlisting> - - <variablelist> - <varlistentry> - <term><literal>device</literal></term> - - <listitem> - <para>Il nome del dispositivo (che deve esistere), come spiegato - nella <xref linkend="disks-naming">.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>mount-point</literal></term> - - <listitem> - <para>La directory (che deve esistere), sulla quale montare il file - system.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>fstype</literal></term> - - <listitem> - <para>Il tipo di file system da passare a &man.mount.8;. Il file - system di default di FreeBSD è - <literal>ufs</literal>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>options</literal></term> - - <listitem> - <para><option>rw</option> per file system leggibili-scrivibili, - oppure <option>ro</option> per file system solamente leggibili, - seguite da altre opzioni che potrebbero essere necessarie. - Un'opzione comune è <option>noauto</option> per i file - system che normalmente non sono montati durante la sequenza di - avvio. Altre opzioni sono elencate nella pagina man di - &man.mount.8;.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>dumpfreq</literal></term> - - <listitem> - <para>Viene usato da &man.dump.8; per determinare quali file system - richiedono un dump. Se non si specifica nulla, viene assunto il - valore zero.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>passno</literal></term> - - <listitem> - <para>Determina l'ordine secondo il quale i file system vengono - controllati. I file system che devono saltare il controllo devono - avere i loro <literal>passno</literal> settati a zero. Il file - system root (che deve essere controllato prima di qualsiasi altra - cosa) deve avere il suo <literal>passno</literal> settato a uno, - e i <literal>passno</literal> degli altri file system devono - essere settati a valori maggiori di uno. Se più di un - file system ha lo stesso <literal>passno</literal> allora - &man.fsck.8; tenterà di controllare i file system in - parallelo.</para> - </listitem> - </varlistentry> - </variablelist> - </sect2> - - <sect2 id="disks-mount"> - <title>Il Comando <command>mount</command></title> - - <indexterm> - <primary>file system</primary> - <secondary>montaggio</secondary> - </indexterm> - - <para>Il comando &man.mount.8; è ciò che in definitiva viene - usato per montare i file system.</para> - - <para>La sua forma di utilizzo elementare è:</para> - - <informalexample> - <screen>&prompt.root; <userinput>mount <replaceable>device</replaceable> <replaceable>mountpoint</replaceable></userinput></screen> - </informalexample> - - <para>Esistono molte opzioni, come spiegato nella pagina man di - &man.mount.8;, ma le più comuni sono:</para> - - <variablelist> - <title>Opzioni di Mount</title> - - <varlistentry> - <term><option>-a</option></term> - - <listitem> - <para>Monta tutti i file system elencati nel file - <filename>/etc/fstab</filename>. Le eccezioni sono quei file - system specificati come <quote>noauto</quote>, quelli esclusi - dalla flag <option>-t</option>, o quei file system che sono - già montati.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-d</option></term> - - <listitem> - <para>Fà tutto ad eccezione della attuale system call di - mount. Questa opzione risulta utile in congiunzione con la flag - <option>-v</option> per determinare quale &man.mount.8; si stia - effettivamente tentando di realizzare.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-f</option></term> - - <listitem> - <para>Forza il mount di un file system impuro (pericoloso), o forza - la revoca di accesso in scrittura quando si declassa lo stato - di mount di un file system da lettura-scrittura a lettura - solamente.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-r</option></term> - - <listitem> - <para>Monta il file system in sola lettura. Questo è - identico ad usare l'argomento <option>rdonly</option> con - l'opzione <option>-o</option>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-t</option> <replaceable>fstype</replaceable></term> - - <listitem> - <para>Monta il dato file system secondo il tipo di file system - specificato, oppure, se affiancato dall'opzione - <option>-a</option>, monta solamente i file system di un dato - tipo.</para> - - <para><quote>ufs</quote> è il tipo di file system di - default.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-u</option></term> - - <listitem> - <para>Aggiorna le opzioni di mount sul file system.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-v</option></term> - - <listitem> - <para>Modalità verbose.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-w</option></term> - - <listitem> - <para>Monta il file system in lettura-scrittura.</para> - </listitem> - </varlistentry> - </variablelist> - - <para>L'opzione <option>-o</option> accetta una lista di argomenti - separati da una virgola, inclusi i seguenti:</para> - - <variablelist> - <varlistentry> - <term>nodev</term> - - <listitem> - <para>Non permette l'interpretazione di dispositivi speciali sul - file system. Questa è un'utile opzione di - sicurezza.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>noexec</term> - - <listitem> - <para>Non permette l'esecuzione di binari su questo file system. - Questa è un'altra utile opzione di sicurezza.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>nosuid</term> - - <listitem> - <para>Non permette l'interpretazione delle flag setuid o setgid sul - file system. Anche questa è un'utile opzione di - sicurezza.</para> - </listitem> - </varlistentry> - </variablelist> - </sect2> - - <sect2 id="disks-umount"> - <title>Il Comando <command>umount</command></title> - - <indexterm> - <primary>file system</primary> - <secondary>smontaggio</secondary> - </indexterm> - - <para>Il comando &man.umount.8; accetta, come unico parametro, un punto di - mount, un nome di dispositivo, l'opzione <option>-a</option> o l'opzione - <option>-A</option>.</para> - - <para>Tutte queste modalità accettano l'opzione <option>-f</option> - per forzare la smontatura, e l'opzione <option>-v</option> per la - modalità verbose. Sei avvisato che l'opzione <option>-f</option> - non è in generale un buona idea. Smontare in modo violento i - file system può mandare in crash il computer o danneggiare i dati - sul file system.</para> - - <para>Le opzioni <option>-a</option> e <option>-A</option> sono usate per - smontare tutti i file system, con la possibilità di specificare - i tipi di file system elencandoli dopo la flag <option>-t</option>. - Tuttavia, l'opzione <option>-A</option> non tenta di smontare il file - system root.</para> - </sect2> - </sect1> - - <sect1 id="basics-processes"> - <title>I Processi</title> - - <para>FreeBSD è un sistema operativo multi-tasking. Con questa - capacità il sistema è come se potesse eseguire più di - un programma alla volta. Ogni programma in esecuzione in un dato istante - è chiamato <firstterm>processo</firstterm>. Ogni volta che esegui - un comando fai partire almeno un nuovo processo, e ci sono molti processi - di sistema che sono sempre in esecuzione, che permettono il corretto - funzionamento del sistema.</para> - - <para>Ogni processo è identificato in modo univoco da un numero - chiamato <firstterm>process ID</firstterm>, o <firstterm>PID</firstterm>, - e, come avviene per i file, ogni processo ha un proprietario e un gruppo. - Le informazioni sul proprietario e sul gruppo sono usate per determinare, - tramite il meccanismo dei permessi dei file discusso precedentemente, - quali file e quali dispositivi il processo può aprire. Inoltre - molti processi hanno un processo padre. Tale processo è il - processo che li ha generati. Per esempio, se stai digitando dei comandi - in shell allora la shell è un processo, così come lo sono i - comandi che esegui. Ogni processo che esegui in questo modo avrà - come suo processo padre la tua shell. L'eccezione a questo meccanismo - è un processo speciale chiamato &man.init.8;. Il processo - <command>init</command> è sempre il primo processo, quindi il suo - PID è sempre 1. <command>init</command> viene avviato in modo - automatico dal kernel quando si avvia FreeBSD.</para> - - <para>Due comandi sono particolarmente utili per monitorare i processi sul - sistema, &man.ps.1; e &man.top.1;. Il comando <command>ps</command> - è usato per mostrare una lista statica dei processi che sono in - esecuzione in quel momento, e può mostrare i loro PID, quanta - memoria stanno usando, la linea di comando che li ha avviati, e altro - ancora. Il comando <command>top</command> visualizza tutti i processi in - esecuzione, e aggiorna queste informazioni ogni qualche secondo, in modo - che puoi vedere interattivamente cosa sta facendo il tuo computer.</para> - - <para>Di default, <command>ps</command> mostra solo i tuoi comandi che sono - in quel momento in esecuzione. Per esempio:</para> - - <screen>&prompt.user; <userinput>ps</userinput> - PID TT STAT TIME COMMAND - 298 p0 Ss 0:01.10 tcsh - 7078 p0 S 2:40.88 xemacs mdoc.xsl (xemacs-21.1.14) -37393 p0 I 0:03.11 xemacs freebsd.dsl (xemacs-21.1.14) -48630 p0 S 2:50.89 /usr/local/lib/netscape-linux/navigator-linux-4.77.bi -48730 p0 IW 0:00.00 (dns helper) (navigator-linux-) -72210 p0 R+ 0:00.00 ps - 390 p1 Is 0:01.14 tcsh - 7059 p2 Is+ 1:36.18 /usr/local/bin/mutt -y - 6688 p3 IWs 0:00.00 tcsh -10735 p4 IWs 0:00.00 tcsh -20256 p5 IWs 0:00.00 tcsh - 262 v0 IWs 0:00.00 -tcsh (tcsh) - 270 v0 IW+ 0:00.00 /bin/sh /usr/X11R6/bin/startx -- -bpp 16 - 280 v0 IW+ 0:00.00 xinit /home/nik/.xinitrc -- -bpp 16 - 284 v0 IW 0:00.00 /bin/sh /home/nik/.xinitrc - 285 v0 S 0:38.45 /usr/X11R6/bin/sawfish</screen> - - <para>Come puoi vedere in questo esempio, l'output di &man.ps.1; è - organizzato in molte colonne. La colonna <literal>PID</literal> si - riferisce al process ID discusso poco fà. I PID sono assegnati - partendo dal numero 1, andando fino al 99999, e ricominciando dall'inizio - una volta esauriti (se disponibili). La colonna <literal>TT</literal> - mostra su quale tty il programma è in esecuzione, e può - essere benissimo ignorata per il momento. La colonna - <literal>STAT</literal> mostra lo stato del programma, e di nuovo, - può essere benissimo ignorata. La colonna <literal>TIME</literal> - indica per quanto tempo il programma è stato in esecuzione sulla - CPU—di solito non indica il tempo trascorso da quando hai avviato - il programma, poichè la maggior parte dei programmi trascorrono - molto tempo in attesa per faccende che accadono prima che questi possano - trascorrere del tempo in CPU. Infine, la colonna - <literal>COMMAND</literal> indica la riga di comando che è stata - utilizzata per eseguire il programma.</para> - - <para>Il comando &man.ps.1; supporta varie opzioni per cambiare le - informazioni da visualizzare. Uno dei gruppi di opzioni più utili - è <literal>auxww</literal>. L'opzione <option>a</option> mostra le - informazioni riguardo a tutti i processi in esecuzione, non solo quelli - che ti appartengono. L'opzione <option>u</option> mostra il nome utente - del proprietario del processo, come pure la memoria utilizzata dal - processo. L'opzione <option>x</option> mostra le informazioni riguardo ai - processi demoni, e l'opzione <option>ww</option> indica a &man.ps.1; di - visualizzare la linea di comando completa che ha avviato il processo, - piuttosto che troncarla quando è troppo lunga per essere adattata - sullo schermo.</para> - - <para>L'output di &man.top.1; è simile. Un esempio di esecuzione - assomiglia a questo:</para> - - <screen>&prompt.user; <userinput>top</userinput> -last pid: 72257; load averages: 0.13, 0.09, 0.03 up 0+13:38:33 22:39:10 -47 processes: 1 running, 46 sleeping -CPU states: 12.6% user, 0.0% nice, 7.8% system, 0.0% interrupt, 79.7% idle -Mem: 36M Active, 5256K Inact, 13M Wired, 6312K Cache, 15M Buf, 408K Free -Swap: 256M Total, 38M Used, 217M Free, 15% Inuse - - PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND -72257 nik 28 0 1960K 1044K RUN 0:00 14.86% 1.42% top - 7078 nik 2 0 15280K 10960K select 2:54 0.88% 0.88% xemacs-21.1.14 - 281 nik 2 0 18636K 7112K select 5:36 0.73% 0.73% XF86_SVGA - 296 nik 2 0 3240K 1644K select 0:12 0.05% 0.05% xterm -48630 nik 2 0 29816K 9148K select 3:18 0.00% 0.00% navigator-linu - 175 root 2 0 924K 252K select 1:41 0.00% 0.00% syslogd - 7059 nik 2 0 7260K 4644K poll 1:38 0.00% 0.00% mutt -...</screen> - - <para>L'output è diviso in due sezioni. La parte superiore (le prime - cinque linee) mostra il PID dell'ultimo processo eseguito, il carico medio - del sistema (che è un indice di come il sistema sia impegnato), il - tempo di vita del sistema (il tempo passato dall'ultimo reboot) e l'ora - corrente. I restanti numeri nella parte superiore riportano quanti - processi sono in esecuzione (47 in questo caso), quanta memoria di sistema - e quanta memoria di swap è stata utilizzata, e quanto tempo il - sistema sta trascorrendo nei vari stati di CPU.</para> - - <para>Sotto ci sono una serie di colonne che contengono simili informazioni - a quelle contenute nell'output di &man.ps.1;. Come prima puoi vedere il - PID, il nome utente, quanto tempo di CPU è stato utilizzato, e il - comando che era stato eseguito. Inoltre il comando &man.top.1; di default - ti mostra quanta memoria è stata concessa al processo. Questa - informazione è suddivisa in due colonne, una per la dimensione - totale, e l'altra per la dimensione attuale—la dimensione totale - è la quantità di memoria che l'applicazione ha richiesto, e - la dimensione attuale è la quantità di memoria che sta - utilizzando in quel momento. In questo esempio puoi vedere che - <application>Netscape</application> ha richiesto quasi 30 MB di RAM, - ma al momento ne sta usando solo 9 MB.</para> - - <para>Il comando &man.top.1; aggiorna in modo automatico queste informazioni - ogni due secondi; questo lasso temporale può essere modificato con - l'opzione <option>s</option>.</para> - </sect1> - - <sect1 id="basics-daemons"> - <title>I Demoni, i Segnali, e come Uccidere i Processi</title> - - <para>Quando esegui un'editor risulta semplice averne il controllo, dirgli - di caricare file, e così via. Tutto questo può essere fatto - poichè l'editor fornisce delle agevolazioni in questo senso, e - anche perchè l'editor è collegato a un - <firstterm>terminale</firstterm>. Alcuni programmi non sono stati - progettati per essere eseguiti con un continuo input dell'utente, e - perciò questi programmi si sconnettono dal terminale alla prima - occasione. Per esempio, un server web trascorre tutto il giorno - rispondendo a richieste web, e normalmente non necessita di alcun input - da parte tua. I programmi che trasportano la posta elettronica da un sito - a un'altro sito sono un'altro esempio di questa classe di - applicazioni.</para> - - <para>Chiamiamo questi programmi <firstterm>demoni</firstterm>. I demoni - erano dei personaggi della mitologia greca; nè buoni nè - cattivi, erano piccoli custodi degli spiriti che, nel complesso, - risultavano essere utili per l'umanità. Molto similmente i server - web e quelli di posta elettronica di oggi fanno cose utili. Ecco il - motivo per cui la mascot di BSD è stata per molto tempo, e lo - è ancora, l'allegro demone con le scarpe da tennis e con il - forcone.</para> - - <para>Esiste la convenzione di chiamare i programmi che normalmente sono - eseguiti come demoni con una <quote>d</quote> finale. - <application>BIND</application> sta per Berkeley Internet Name Daemon - (e il nome effettivo del programma che viene eseguito è - <command>named</command>), il nome del programma - <application>Apache</application>, un server web, è - <command>httpd</command>, il demone dello spool di stampa è - <command>lpd</command> e così via. Questa è una - convenzione, non è una regola ferrea; per esempio, il principale - demone di posta elettronica per l'applicazione - <application>Sendmail</application> è chiamato - <command>sendmail</command>, e non <command>maild</command>, come potresti - aspettarti.</para> - - <para>A volte puoi aver bisogno di comunicare con un processo demone. - Queste comunicazioni sono chiamate <firstterm>segnali</firstterm>, e puoi - comunicare con i demoni (o con altri processi in esecuzione) mandandogli - un segnale. Esistono svariati segnali che puoi inviare—alcuni di - questi hanno un significato specifico, altri sono interpretabili - dall'applicazione, e la documentazione dell'applicazione ti dirà - come l'applicazione stessa interpreta i segnali. Puoi mandare un segnale - solo ai processi che ti appartengono. Se mandi un segnale a un processo - che non ti appartiene con il comando &man.kill.1; o &man.kill.2; il - permesso ti sarà negato. L'eccezione a questa regola riguarda - l'utente <username>root</username>, che può mandare segnali a - processi di chiunque.</para> - - <para>Inoltre in alcune circostanze FreeBSD invia segnali alle - applicazioni. Se un'applicazione è stata scritta malamente, e - tenta di accedere alla memoria che non gli compete, FreeBSD manda al - processo il segnale di <firstterm>Violazione della - Segmentazione</firstterm> (<literal>SIGSEGV</literal>). Se - un'applicazione ha utilizzato la system call &man.alarm.3; in modo tale - da essere avvisata dopo un certo periodo di tempo trascorso allora - FreeBSD invierà a questa applicazione il segnale di Allarme - (<literal>SIGALRM</literal>), e così via.</para> - - <para>Per fermare un processo possono essere utilizzati due segnali, - <literal>SIGTERM</literal> e <literal>SIGKILL</literal>. - <literal>SIGTERM</literal> è il modo cortese di terminare un - processo; il processo può <emphasis>catturare</emphasis> il - segnale, capire che vuoi abbatterlo, chiudere i file di log che potrebbe - avere aperto, e in genere terminare qualunque cosa che stava facendo prima - dell'interruzione. Nei casi in cui un processo sia coinvolto in qualche - compito che non può essere interrotto allora questo processo - può persino ignorare <literal>SIGTERM</literal>.</para> - - <para>Il segnale <literal>SIGKILL</literal> non può essere ignorato - da un processo. Questo è il segnale che dice <quote>Non mi - interessa cosa stai facendo, fermati subito</quote>. Se mandi il segnale - <literal>SIGKILL</literal> a un processo allora FreeBSD fermerà - subito il processo<footnote> - <para>Non è del tutto vero—ci sono alcune cose che non - possono essere interrotte. Per esempio, se il processo sta tentando - di leggere un file situato su un altro computer in rete, e questo - computer non è disponibile per qualche ragione (è stato - spento, o la rete ha qualche problema), allora il processo è - detto <quote>non interrompibile</quote>. Il processo finirà - in time out, generalmente dopo due minuti. Non appena avviene il - time out il processo potrà essere terminato.</para> - </footnote>. - </para> - - <para>Altri segnali che potresti aver bisogno di usare sono - <literal>SIGHUP</literal>, <literal>SIGUSR1</literal>, e - <literal>SIGUSR2</literal>. Questi sono segnali a scopo generico, e - differenti applicazioni possono fare cose diverse quando catturano questi - segnali.</para> - - <para>Supponiamo che hai cambiato il file di configurazione del tuo server - web—hai bisogno di dire al server web di rileggere la sua - configurazione. Potresti fermare e riavviare <command>httpd</command>, ma - questo porterebbe a un breve periodo di interruzione del tuo server - web, che potrebbe non essere gradito. Molti demoni sono stati scritti per - rispondere al segnale <literal>SIGHUP</literal> tramite la rilettura - dei loro file di configurazione. In questo modo invece di terminare e - riavviare <command>httpd</command> potresti inviare il segnale - <literal>SIGHUP</literal>. Poichè non esiste un modo standard di - trattare questi segnali, differenti demoni potrebbero avere un - comportamento diverso, quindi assicurati di leggere la documentazione per - il demone in questione.</para> - - <para>I segnali sono inviati utilizzando il comando &man.kill.1;, come - mostra questo esempio.</para> - - <procedure> - <title>Inviare un Segnale a un Processo</title> - - <para>Questo esempio mostra come inviare un segnale a &man.inetd.8;. Il - file di configurazione di <command>inetd</command> è - <filename>/etc/inetd.conf</filename>, e <command>inetd</command> rilegge - questo file di configurazione quando riceve il segnale - <literal>SIGHUP</literal>.</para> - - <step> - <para>Cerca il process ID del processo a cui vuoi mandare il segnale. - Puoi utilizzare &man.ps.1; e &man.grep.1; per farlo. Il comando - &man.grep.1; viene utilizzato per perlustrare attraverso l'output, - cercando la stringa da te specificata. Questo comando viene eseguito - in modalità utente, e &man.inetd.8; viene eseguito in - modalità <username>root</username>, quindi le opzioni da dare - a &man.ps.1; sono <option>ax</option>.</para> - - <screen>&prompt.user; <userinput>ps -ax | grep inetd</userinput> - 198 ?? IWs 0:00.00 inetd -wW</screen> - - <para>Come puoi vedere il PID di &man.inetd.8; è 198. In alcuni - casi potrebbe apparire nel risultato anche il comando - <literal>grep inetd</literal>. Questo dipende dal modo utilizzato - da &man.ps.1; nell'elencare la lista dei processi in - esecuzione.</para> - </step> - - <step> - <para>Usa il comando &man.kill.1; per inviare il segnale. Poichè - &man.inetd.8; viene eseguito in modalità - <username>root</username> prima devi usare il comando &man.su.1; per - diventare <username>root</username>.</para> - - <screen>&prompt.user; <userinput>su</userinput> -<prompt>Password:</prompt> -&prompt.root; <userinput>/bin/kill -s HUP 198</userinput></screen> - - <para>Come avviene per la maggior parte dei comandi &unix;, il comando - &man.kill.1; non stampa il risultato dell'operazione se questa ha - avuto successo. Se mandi un segnale a un processo del quale non sei - il proprietario allora vedrai il messaggio <errorname>kill: - <replaceable>PID</replaceable>: Operazione non permessa</errorname>. - Se sbagli il PID invierai il segnale al processo sbagliato, il che - potrebbe essere dannoso, o, se hai fortuna, manderai il segnale - a un PID che in quel momento non è in uso, e in questo caso - vedrai il messaggio <errorname>kill: <replaceable>PID</replaceable>: - Nessun processo</errorname>.</para> - - <note> - <title>Perchè Usare <command>/bin/kill</command>?</title> - - <para>Molte shell forniscono il comando <command>kill</command> come - comando built-in; ossia, la shell invia il segnale in modo - diretto, senza dover eseguire <filename>/bin/kill</filename>. Tutto - ciò può essere molto utile, ma le diverse shell hanno - una sintassi diversa per specificare il nome del segnale da inviare. - Invece di cercare di imparare tutte queste sintassi, può - essere più semplice usare direttamente il comando - <command>/bin/kill <replaceable>...</replaceable></command>.</para> - </note> - </step> - </procedure> - - <para>L'invio di altri segnali è analogo, basta sostituire - all'occorrenza <literal>TERM</literal> o <literal>KILL</literal> nella - linea di comando.</para> - - <important> - <para>Terminare processi in modo random su un sistema può essere - una cattiva idea. In particolare, il processo &man.init.8;, con process - ID 1, è un caso molto speciale. Eseguire <command>/bin/kill -s - KILL 1</command> è un modo veloce per arrestare il tuo sistema. - Controlla <emphasis>sempre</emphasis> due volte gli argomenti quando - esegui &man.kill.1; <emphasis>prima</emphasis> di premere - <keycap>Invio</keycap>.</para> - </important> - </sect1> - - <sect1 id="shells"> - <title>Le Shell</title> - - <indexterm><primary>shell</primary></indexterm> - <indexterm><primary>riga di comando</primary></indexterm> - - <para>In FreeBSD, la maggior parte del lavoro di tutti i giorni viene svolto - tramite un'interfaccia a riga di comando chiamata shell. Uno dei compiti - principali di una shell è quello di prendere in input dei comandi - ed eseguirli. Inoltre molte shell hanno delle funzioni built-in - (incorporate) utili nei lavori ordinari come la gestione dei file, la - sostituzione dei nomi dei file, la modifica della riga di comando, la - creazione di macro di comandi, e la gestione delle variabili d'ambiente. - FreeBSD si propone con una serie di shell, come la Shell Bourne, - <command>sh</command>, e la versione successiva della C-shell, - <command>tcsh</command>. Molte altre shell sono disponibili nella FreeBSD - Ports Collection, come le shell <command>zsh</command> e - <command>bash</command>.</para> - - <para>Quale shell devi usare? È veramente una questione di gusti. - Se sei un programmatore di C potresti sentirti a tuo agio con una shell - C-like come la <command>tcsh</command>. Se vieni da Linux o non sei - pratico dell'interfaccia a riga di comando di &unix; potresti provare la - <command>bash</command>. Il fatto è che ogni shell ha delle - caratteristiche che possono o meno combaciare con il tuo ambiente di - lavoro preferito, e quindi devi scegliere tu stesso quale shell - utilizzare.</para> - - <para>Una caratteristica comune in una shell è il completamento dei - nomi dei file. Dopo aver digitato alcuni dei primi caratteri di un - comando o di un nome di file, la shell di solito può completare - in modo automatico il resto del comando o del nome del file tramite la - pressione del tasto <keycap>Tab</keycap> sulla tastiera. Ecco un'esempio. - Supponiamo che hai due file chiamati <filename>foobar</filename> e - <filename>foo.bar</filename>. Vuoi cancellare - <filename>foo.bar</filename>. Quello che dovresti digitare sulla tastiera - è: - <command>rm - fo[<keycap>Tab</keycap>].[<keycap>Tab</keycap>]</command>.</para> - - <para>La shell dovrebbe visualizzare <command>rm - foo[BEEP].bar</command>.</para> - - <para>Il [BEEP] è la campanella della console, che mi segnala che la - shell è incapace di completare interamente il nome del file - poichè esiste più di una sola corrispondenza. Sia - <filename>foobar</filename> che <filename>foo.bar</filename> iniziano con - <literal>fo</literal>, tuttavia la shell è riuscita a completarlo - in <literal>foo</literal>. A questo punto premendo <literal>.</literal>, - e poi di nuovo <keycap>Tab</keycap>, la shell sarà in grado di - completare da sola il resto del nome del file.</para> - - <indexterm><primary>variabili d'ambiente</primary></indexterm> - - <para>Un'altro aspetto di una shell è l'uso delle variabili - d'ambiente. Le variabili d'ambiente sono una coppia di valori mutevoli - memorizzati nello spazio dell'ambiente della shell. Questo spazio - può essere letto dai programmi invocati dalla shell, e di - conseguenza questo spazio può contenere le configurazioni di molti - programmi. Qui sotto c'è una lista delle variabili d'ambiente - più comuni con il loro rispettivo significato:</para> - - <indexterm><primary>variabili d'ambiente</primary></indexterm> - - <informaltable frame="none"> - <tgroup cols="2"> - <thead> - <row> - <entry>Variabile</entry> - - <entry>Descrizione</entry> - </row> - </thead> - - <tbody> - <row> - <entry><envar>USER</envar></entry> - - <entry>Il nome dell'utente attualmente loggato.</entry> - </row> - - <row> - <entry><envar>PATH</envar></entry> - - <entry>Lista di directory separate da due punti utilizzate per - la ricerca dei binari.</entry> - </row> - - <row> - <entry><envar>DISPLAY</envar></entry> - - <entry>Nome di rete del display X11 a cui connettersi, se - disponibile.</entry> - </row> - - <row> - <entry><envar>SHELL</envar></entry> - - <entry>La shell corrente.</entry> - </row> - - <row> - <entry><envar>TERM</envar></entry> - - <entry>Il nome del terminale dell'utente. Usato per determinare - le capacità del terminale.</entry> - </row> - - <row> - <entry><envar>TERMCAP</envar></entry> - - <entry>Serie di elementi di codici di escape del terminale - utilizzati per realizzare svariate funzioni del terminale.</entry> - </row> - - <row> - <entry><envar>OSTYPE</envar></entry> - - <entry>Il tipo di sistema operativo. FreeBSD, ad esempio.</entry> - </row> - - <row> - <entry><envar>MACHTYPE</envar></entry> - - <entry>L'architettura della CPU su cui il sistema gira.</entry> - </row> - - <row> - <entry><envar>EDITOR</envar></entry> - - <entry>L'editor di testo preferito dall'utente.</entry> - </row> - - <row> - <entry><envar>PAGER</envar></entry> - - <entry>L'impaginatore di testo preferito dall'utente.</entry> - </row> - - <row> - <entry><envar>MANPATH</envar></entry> - - <entry>Lista di directory separate da due punti utilizzate nella - ricerca delle pagine man.</entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <indexterm><primary>shell Bourne</primary></indexterm> - - <para>Il modo di settare una variabile d'ambiente varia leggermente a - seconda della shell utilizzata. Per esempio, nelle shell C-Style come - <command>tcsh</command> e <command>csh</command>, puoi usare - <command>setenv</command> per settare le variabili d'ambiente. Sotto le - shell Bourne come <command>sh</command> e <command>bash</command>, puoi - usare <command>export</command> per settare le tue variabili d'ambiente - correnti. Per esempio, per settare o modificare la variabile d'ambiente - <envar>EDITOR</envar> a <filename>/usr/local/bin/emacs</filename>, sotto - <command>csh</command> o <command>tcsh</command> si può utilizzare - il comando:</para> - - <screen>&prompt.user; <userinput>setenv EDITOR /usr/local/bin/emacs</userinput></screen> - - <para>Sotto le shell Bourne:</para> - - <screen>&prompt.user; <userinput>export EDITOR="/usr/local/bin/emacs"</userinput></screen> - - <para>Con la maggior parte delle shell puoi inoltre creare un'espansione - di una variabile d'ambiente mettendo sulla riga di comando il simbolo - <literal>$</literal> davanti al nome della variabile stessa. Per esempio, - <command>echo $TERM</command> visualizzerà ciò che - corrisponde a <envar>$TERM</envar>, poichè la shell espande - <envar>$TERM</envar> e passa il risultato a - <command>echo</command>.</para> - - <para>Le shell trattano molti caratteri speciali, chiamati meta-caratteri - come rappresentazioni speciali di dati. Il più comune di questi - è il simbolo <literal>*</literal>, che rappresenta diverse - istanze di caratteri in un nome di file. Questi meta-caratteri possono - essere usati per la sostituzione dei nomi di file. Per esempio, digitando - <command>echo *</command> è quasi come aver digitato - <command>ls</command> poichè la shell prende tutti i file che - corrispondono a <literal>*</literal> e li mette sulla riga di comando - con <command>echo</command> che quindi li visualizza.</para> - - <para>Per impedire alla shell di interpretare questi caratteri speciali, - questi possono essere messi in escape mettendo subito prima di essi un - backslash (<literal>\</literal>). <command>echo $TERM</command> - visualizza il tipo del tuo terminale. <command>echo \$TERM</command> - visualizza <envar>$TERM</envar> così com'è.</para> - - <sect2 id="changing-shells"> - <title>Cambiare la Propria Shell</title> - - <para>Il modo più semplice per cambiare la propria shell è - quello di usare il comando <command>chsh</command>. Eseguendo - <command>chsh</command> verrà invocato l'editor definito nella - tua variabile d'ambiente <envar>EDITOR</envar>; nel caso in cui questa - non sia stata settata, verrà invocato <command>vi</command>. - Modifica la riga <quote>Shell:</quote> in base alle tue esigenze.</para> - - <para>Puoi anche eseguire <command>chsh</command> con l'opzione - <option>-s</option>; in questo modo verrà settata la shell in - modo diretto, senza che sia necessario invocare l'editor. Per - esempio, se vuoi cambiare la tua shell in <command>bash</command>, - potresti digitare il seguente comando:</para> - - <screen>&prompt.user; <userinput>chsh -s /usr/local/bin/bash</userinput></screen> - - <para>Comunque eseguendo <command>chsh</command> con nessun parametro e - modificando la shell all'interno dell'editor funzionerà lo - stesso.</para> - - <note> - <para>La shell che desideri utilizzare <emphasis>deve</emphasis> essere - presente nel file <filename>/etc/shells</filename>. Se hai installato - una shell dalla <link linkend="ports">collezione dei port</link>, - allora la nuova shell dovrebbe essere già stata inserita nel - suddetto file in modo automatico. Se installi una shell manualmente, - questo lavoro lo devi fare tu.</para> - - <para>Per esempio, se installi <command>bash</command> a mano e la - metti sotto <filename>/usr/local/bin</filename>, dovresti fare - questo:</para> - - <screen>&prompt.root; <userinput>echo "/usr/local/bin/bash" >> /etc/shells</userinput></screen> - - <para>Dopo averlo fatto riavvia <command>chsh</command>.</para> - </note> - </sect2> - </sect1> - - <sect1 id="editors"> - <title>Editor di Testo</title> - - <indexterm><primary>editor di testo</primary></indexterm> - <indexterm><primary>editor</primary></indexterm> - - <para>La maggior parte del lavoro di configurazione in FreeBSD viene fatto - tramite la modifica di file di testo. Perciò, è una buona - idea familiarizzare con un editor di testo. FreeBSD si presenta con - alcuni editor come parte base del sistema, e molti altri sono disponibili - nella collezione dei port.</para> - - <indexterm><primary><command>ee</command></primary></indexterm> - - <para>L'editor più semplice e più facile da imparare si chiama - <application>ee</application>, che sta per easy editor. Per avviare - <application>ee</application>, puoi digitare sulla riga di comando - <command>ee filename</command> dove <literal>filename</literal> è - il nome del file che deve essere modificato. Per esempio, per modificare - <filename>/etc/rc.conf</filename>, devi digitare <command>ee - /etc/rc.conf</command>. Una volta all'interno di <command>ee</command>, - tutti i comandi per azionare le funzioni dell'editor sono elencati nella - parte superiore del video. Il carattere <literal>^</literal> è il - tasto <keycap>Ctrl</keycap> della tastiera, quindi <literal>^e</literal> - si riferisce alla combinazione di tasti <keycombo action="simul"> - <keycap>Ctrl</keycap> - <keycap>e</keycap> - </keycombo>. Per uscire da <application>ee</application>, premi il tasto - <keycap>Esc</keycap>, quindi conferma l'uscita dall'editor. Se il file - ha subito delle modifiche ti verrà chiesto se le vuoi - salvare.</para> - - <indexterm> - <primary><command>vi</command></primary> - </indexterm> - <indexterm> - <primary>editor</primary> - <secondary><command>vi</command></secondary> - </indexterm> - <indexterm> - <primary><command>emacs</command></primary> - </indexterm> - <indexterm> - <primary>editor</primary> - <secondary><command>emacs</command></secondary> - </indexterm> - - <para>FreeBSD ha come parte base del sistema anche editor di testo - più potenti come <application>vi</application>, mentre altri - editor, come <application>Emacs</application> e - <application>vim</application>, sono inclusi nella - FreeBSD Ports Collection (<filename - role="package">editors/emacs</filename> e <filename - role="package">editors/vim</filename>). Questi editor offrono molte - più funzionalità e molta più potenza a costo di essere - un poco più complicati da imparare ad utilizzare. Comunque se - intendi utilizzare in modo intensivo un editor, imparando ad utilizzare un - editor potente come <application>vim</application> o - <application>Emacs</application> - risparmierai a lungo andare un sacco di tempo.</para> - </sect1> - - <sect1 id="basics-devices"> - <title>Dispositivi e Nodi di Dispositivo</title> - - <para>Il termine dispositivo viene usato prevalentemente per specificare le - unità hardware all'interno di un sistema, come i dischi, le - stampanti, le schede grafiche, e le tastiere. Durante la fase di avvio di - FreeBSD, la maggior parte delle cose che vengono visualizzate da FreeBSD - riguardano i dispositivi che sono stati rilevati. Puoi riesaminare - questi messaggi di avvio guardando il file - <filename>/var/run/dmesg.boot</filename>.</para> - - <para>Per esempio, <devicename>acd0</devicename> è il primo drive - CDROM IDE, mentre <devicename>kbd0</devicename> rappresenta la - tastiera.</para> - - <para>In un sistema operativo &unix; la maggior parte di questi dispositivi - sono accessibili tramite dei file speciali chiamati nodi di dispositivo, - i quali sono posti nella directory <filename>/dev</filename>.</para> - - <sect2> - <title>Creare i Nodi di Dispositivo</title> - - <para>Quando aggiungi un nuovo dispositivo al tuo sistema, o ricompili il - kernel per supportare dispositivi aggiuntivi, hai bisogno di creare per - questi nuovi dispositivi uno o più nodi di dispositivo.</para> - - <sect3> - <title>Script MAKEDEV</title> - - <para>Sui sistemi senza il <literal>DEVFS</literal> (tutte le versioni - di FreeBSD antecedenti la 5.0), i nodi di dispositivo sono creati - usando lo script &man.MAKEDEV.8; come mostrato qui sotto:</para> - - <screen>&prompt.root; <userinput>cd /dev</userinput> -&prompt.root; <userinput>sh MAKEDEV ad1</userinput></screen> - - <para>Questo esempio creerà gli opportuni nodi di dispositivo - per il secondo drive IDE.</para> - </sect3> - - <sect3> - <title><literal>DEVFS</literal> (DEVice File System)</title> - - <para>Il file system device, o <literal>DEVFS</literal>, fornisce la - disponibilità dello spazio dei nomi dei dispositivi del kernel - allo spazio dei nomi globale del file system. Invece di dover creare - o modificare i nodi di dispositivo, <literal>DEVFS</literal> mantiene - in modo automatico questo particolare file system.</para> - - <para>Guarda la pagina man di &man.devfs.5; per maggiori - informazioni.</para> - - <para><literal>DEVFS</literal> viene usato di default su - FreeBSD 5.0 e successive.</para> - </sect3> - </sect2> - </sect1> - - <sect1 id="binary-formats"> - <title>Formati dei Binari</title> - - <para>Per comprendere il motivo per cui FreeBSD usa il formato &man.elf.5;, - devi prima conoscere un pò i tre attuali formati eseguibili - <quote>dominanti</quote> per &unix;:</para> - - <itemizedlist> - <listitem> - <para>&man.a.out.5;</para> - - <para>Il più vecchio e <quote>classico</quote> formato oggetto - di &unix;. Usa un'intestazione corta e compatta con un numero magico - all'inizio che è spesso usato per caratterizzare il formato - (vedere &man.a.out.5; per maggiori dettagli). Contiene tre segmenti - caricabili: .text, .data, e .bss più una tabella di simboli e - una di stringhe.</para> - </listitem> - - <listitem> - <para><acronym>COFF</acronym></para> - - <para>Il formato oggetto di SVR3. Poichè l'intestazione include - una porzione di tabella, puoi avere molto di più delle sole - sezioni .text, .data, e .bss.</para> - </listitem> - - <listitem> - <para>&man.elf.5;</para> - - <para>Il successore di <acronym>COFF</acronym>, caratterizzato da - sezioni multiple e da possibili valori a 32-bit o 64-bit. Uno dei - maggiori svantaggi: <acronym>ELF</acronym> fù progettato con - l'assunzione che ci doveva essere solo un ABI per ogni tipo di - architettura dei sistemi. Tale assunzione è in realtà - piuttosto sbagliata, e non è vera nemmeno nel mondo commerciale - di SYSV (che ha almeno tre ABI: SVR4, Solaris, SCO).</para> - - <para>FreeBSD tenta di aggirare questo problema fornendo un - utility per <emphasis>marchiare</emphasis> un eseguibile - <acronym>ELF</acronym> con informazioni sull'ABI per il quale è - stato costruito. Guarda la pagina man &man.brandelf.1; per maggiori - informazioni.</para> - </listitem> - </itemizedlist> - - <para>FreeBSD proviene dalla scuola <quote>classica</quote> e ha usato il - formato &man.a.out.5;, una tecnologia sperimentata ed utilizzata - attraverso molte generazioni delle release BSD, fino agli inizi del ramo - 3.X. Sebbene fino ad allora era possibile costruire ed eseguire su - un sistema FreeBSD binari (e kernel) del formato <acronym>ELF</acronym>, - inizialmente FreeBSD si oppose al <quote>salto</quote> di cambiamento al - formato <acronym>ELF</acronym> come formato di default. Per quale motivo? - Dunque, quando la scuola Linux fece il suo doloroso passaggio a - <acronym>ELF</acronym>, questo non era sufficiente per abbandonare - il formato eseguibile <filename>a.out</filename> a causa del loro - rigido meccanismo a salto-di-tabella basato sulla libreria condivisa, il - quale rendeva la costruzione di librerie condivise un compito molto - difficile tanto per i venditori che per gli sviluppatori. Tuttavia, - quando gli strumenti di <acronym>ELF</acronym> furono in grado di offrire - una soluzione al problema della libreria condivisa e quando furono visti - come <quote>la strada imminente</quote>, il costo della migrazione - fù accettato poichè necessario e avvenne così la - transizione. Il meccanismo di libreria condivisa di FreeBSD è - basato sullo stile più restrittivo del maccanismo di libreria - condivisa degli &sunos; di Sun, e come tale, è molto facile da - utilizzare.</para> - - <para>Quindi, perchè ci sono così tanti formati - differenti?</para> - - <para>In passato l'hardware era semplice. Questo hardware semplice - sosteneva un sistema semplice e piccolo. Il formato - <filename>a.out</filename> era del tutto adatto per rappresentare i binari - su questo semplice sistema (un PDP-11). Nonostante le persone fecero il - port di &unix; da questo semplice sistema, esse mantennero il formato - <filename>a.out</filename> poichè era sufficiente per un primo port - di &unix; verso architetture come Motorola 68k, VAXen, ecc.</para> - - <para>All'epoca alcuni ingegneri hardware di spicco stabilirono che se tale - formato poteva forzare il software a fare alcuni trucchi sporchi, allora - esso sarebbe stato in grado di abbattere alcune barriere di progettazione - e permettere al core della CPU di andare più veloce. Benchè - il formato <filename>a.out</filename> fù progettato per lavorare - con questo nuovo tipo di hardware (conosciuto ai giorni d'oggi come - <acronym>RISC</acronym>), esso fù appena sufficiente per questo - hardware, quindi furono sviluppati altri formati per ottenere delle - prestazioni da questo hardware migliori di quelle che il limitato e - semplice formato <filename>a.out</filename> era in grado di offrire. - Furono inventati formati come il <acronym>COFF</acronym>, - l'<acronym>ECOFF</acronym>, e alcuni altri e furono esaminate le loro - limitazioni prima che fù prodotto l'<acronym>ELF</acronym>.</para> - - <para>Per di più, le dimensioni dei programmi stavano diventando - enormi e i dischi (e la memoria fisica) erano ancora relativamente - piccoli, e quindi il concetto di libreria condivisa prese piede. - Inoltre il sistema di VM (Memoria Virtuale) divenne più - sofisticato. Benchè ognuno di questi miglioramenti fù fatto - utilizzando il formato <filename>a.out</filename>, la sua utilità - si distese sempre più con ogni nuova caratteristica. In aggiunta, - la gente voleva caricare alcune cose in modo dinamico al tempo di - esecuzione, o anche scartare parte dei loro programmi dopo l'esecuzione - del codice iniziale al fine di salvare memoria e spazio di swap. - I linguaggi divennero più sofisticati e le persone desideravano che - il codice venisse chiamato dopo il main in modo automatico. Furono - apportati molte migliorie al formato <filename>a.out</filename> per - permettere tutte queste cose, e sostanzialmente tutto funzionò per - un dato periodo. Col passare del tempo, il formato - <filename>a.out</filename> non fù più in grado di gestire - tutti questi problemi senza apportare dei miglioramenti al codice con - un conseguente aumento della complessità. Benchè il formato - <acronym>ELF</acronym> risolveva molti di questi problemi, era doloroso - migrare da un sistema che tutto sommato funzionava. Quindi il formato - <acronym>ELF</acronym> attese fino a quando fù meno doloroso - rimanere con il formato <filename>a.out</filename> piuttosto che migrare - al formato <acronym>ELF</acronym>.</para> - - <para>Tuttavia, il tempo passò, e gli strumenti di costruzione che - FreeBSD derivò dai loro strumenti di costruzione (in particolare - l'assemblatore ed il loader) evolsero in due tronconi paralleli. - L'albero di FreeBSD aggiunse le librerie condivise e sistemò alcuni - bug. Il popolo di GNU che in origine aveva scritto questi programmi - li riscrisse e aggiunse un semplice supporto per la costruzione di - compilatori cross, la possibilità di produrre formati diversi a - piacimento, e così via. Da quando molte persone vollero costruire - compilatori cross per FreeBSD, questi furono delusi poichè i vecchi - sorgenti che FreeBSD aveva per <application>as</application> e - <application>ld</application> non erano pronti per questo lavoro. - La nuova serie di strumenti di GNU (<application>binutils</application>) - supportavano la compilazione cross, <acronym>ELF</acronym>, le librerie - condivise, le estensioni C++, ecc. Inoltre molti venditori stanno - rilasciando binari <acronym>ELF</acronym>, ed è una buona cosa - per FreeBSD eseguirli.</para> - - <para>Il formato <acronym>ELF</acronym> è più espressivo di - quello <filename>a.out</filename> e permette una maggiore - estensibilità nel sistema base. Gli strumenti di - <acronym>ELF</acronym> sono meglio mantenuti, e offrono un supporto alla - compilazione cross, che sta a cuore a molte persone. - <acronym>ELF</acronym> può essere un pò meno veloce di - <filename>a.out</filename>, ma tentare di misurarne le prestazioni non - è molto semplice. Ci sono anche numerosi dettagli che sono diversi - tra i due formati nel modo in cui essi mappano le pagine, gestiscono il - codice iniziale, ecc. Questi dettagli non sono molto importanti, ma tra i - due esistono delle differenze. Nel tempo il supporto per il formato - <filename>a.out</filename> verrà rimosso dal kernel - <filename>GENERIC</filename>, ed eventualmente sarà rimosso - completamente dal kernel non appena non ci sarà più la - necessità di eseguire programmi con il formato - <filename>a.out</filename>.</para> - </sect1> - - <sect1 id="basics-more-information"> - <title>Per Maggiori Informazioni</title> - - <sect2 id="basics-man"> - <title>Le Pagine Man</title> - - <indexterm><primary>pagine man</primary></indexterm> - - <para>La documentazione più esauriente su FreeBSD è - costituita dalle pagine man. Quasi tutti i programmi sul sistema hanno - un piccolo manuale di riferimento che spiega il funzionamento di base e - i vari argomenti del programma stesso. Questi manuali possono essere - visualizzati con il comando <command>man</command>. L'uso del comando - <command>man</command> è semplice:</para> - - <screen>&prompt.user; <userinput>man <replaceable>comando</replaceable></userinput></screen> - - <para><literal>comando</literal> è il nome del comando di cui - desideri maggiori informazioni. Per esempio, per sapere di più - circa il comando <command>ls</command> digita:</para> - - <screen>&prompt.user; <userinput>man ls</userinput></screen> - - <para>Il manuale in linea è diviso in sezione numerate:</para> - - <orderedlist> - <listitem> - <para>Comandi utente.</para> - </listitem> - - <listitem> - <para>System call e codici di errore.</para> - </listitem> - - <listitem> - <para>Funzioni della libreria C.</para> - </listitem> - - <listitem> - <para>Driver dei dispositivi.</para> - </listitem> - - <listitem> - <para>Formati di file.</para> - </listitem> - - <listitem> - <para>Giochi e altri passatempo.</para> - </listitem> - - <listitem> - <para>Informazioni varie.</para> - </listitem> - - <listitem> - <para>Comandi di mantenimento e di funzionamento del sistema.</para> - </listitem> - - <listitem> - <para>Sviluppo del kernel.</para> - </listitem> - </orderedlist> - - <para>In qualche caso, lo stesso soggetto può apparire in - più di una sezione del manuale in linea. Per esempio, esiste - un comando utente <command>chmod</command> e una system call - <function>chmod()</function>. In questo caso, puoi dire al comando - <command>man</command> quale vuoi specificando la sezione:</para> - - <screen>&prompt.user; <userinput>man 1 chmod</userinput></screen> - - <para>In questo caso verrà visualizzata la pagina man del comando - utente <command>chmod</command>. I riferimenti di una sezione - particolare del manuale in linea sono tradizionalmente posti tra - parentesi all'interno della documentazione, quindi &man.chmod.1; fa - riferimento al comando utente <command>chmod</command> e &man.chmod.2; - fa riferimento alla system call.</para> - - <para>Tutto questo va bene se conosci il nome del comando e desideri - semplicemente sapere come usarlo, ma cosa succede se non ricordi il nome - del comando? Puoi usare <command>man</command> con l'opzione - <option>-k</option> per ricercare tramite parole chiavi nelle - descrizioni dei comandi:</para> - - <screen>&prompt.user; <userinput>man -k mail</userinput></screen> - - <para>Con questo comando ti verrà presentata una lista di comandi - che hanno la parola chiave <quote>mail</quote> nella loro descrizione. - Di fatto questo meccanismo funziona proprio come il comando - <command>apropos</command>.</para> - - <para>Stai dando un'occhiata a tutti quei comandi fantastici che si - trovano in <filename>/usr/bin</filename> ma non hai la più - pallida idea di cosa fanno la maggior parte di essi? Semplicemente - digita:</para> - - <screen>&prompt.user; <userinput>cd /usr/bin</userinput> -&prompt.user; <userinput>man -f *</userinput></screen> - - <para>oppure</para> - - <screen>&prompt.user; <userinput>cd /usr/bin</userinput> -&prompt.user; <userinput>whatis *</userinput></screen> - - <para>che è la stessa cosa.</para> - </sect2> - - <sect2 id="basics-info"> - <title>I File Info di GNU</title> - - <indexterm><primary>Free Software Foundation</primary></indexterm> - - <para>FreeBSD include molte applicazioni e utility prodotti dalla Free - Software Foundation (FSF). Oltre alle pagine man, questi programmi - hanno dei più ampi documenti in ipertesto chiamati file - <literal>info</literal> che possono essere visualizzati con il comando - <command>info</command>, o se hai installato - <application>emacs</application>, con la modalità info di - <application>emacs</application>.</para> - - <para>Per usare il comando &man.info.1;, digita semplicemente:</para> - - <screen>&prompt.user; <userinput>info</userinput></screen> - - <para>Per una breve introduzione, digita <literal>h</literal>. Per un - rapido riferimento dei comandi, digita <literal>?</literal>.</para> - </sect2> - </sect1> -</chapter> - -<!-- - Local Variables: - mode: sgml - sgml-declaration: "../chapter.decl" - sgml-indent-data: t - sgml-omittag: nil - sgml-always-quote-attributes: t - sgml-parent-document: ("../book.sgml" "part" "chapter") - End: ---> |