Primi passi con NetBSD

Da Wiki di NetBSD Italia.

(Differenze fra le revisioni)
(revisione, varie correzioni e reso conforme alle linee guida)
Riga 17: Riga 17:
Una volta partito il boot selezioniamo la lingua preferita, in questo
Una volta partito il boot selezioniamo la lingua preferita, in questo
-
modo i messaggi di sysinst saranno in quella lingua che abbiamo
+
modo i messaggi di ''sysinst'' saranno in quella lingua che abbiamo
scelto.  La lingua che preferisco tra quelle è l'Inglese, seleziono
scelto.  La lingua che preferisco tra quelle è l'Inglese, seleziono
quindi l'opzione ''a''.
quindi l'opzione ''a''.
Riga 28: Riga 28:
Ok, inizia l'installazione vera e propria... Abbiamo diverse
Ok, inizia l'installazione vera e propria... Abbiamo diverse
opzioni... Vogliamo installare NetBSD quindi selezioniamo ''a''
opzioni... Vogliamo installare NetBSD quindi selezioniamo ''a''
-
(Install NetBSD to hard disk).
+
(''Install NetBSD to hard disk'').
Confermiamo la nostra scelta con un Sì (''Yes'').
Confermiamo la nostra scelta con un Sì (''Yes'').
Riga 58: Riga 58:
confermare il tutto selezionando ''x'' (''Install selected sets'').
confermare il tutto selezionando ''x'' (''Install selected sets'').
-
=== Impostazioni hard disk e partizionamento (<code>fdisk</code> e <code>disklabel</code>) ===
+
=== Impostazioni hard disk e partizionamento (''fdisk'' e ''disklabel'') ===
Una volta selezionati i ''sets'' ci chiede la geometria dell'hard disk che
Una volta selezionati i ''sets'' ci chiede la geometria dell'hard disk che
Riga 78: Riga 78:
anche in NetBSD) dobbiamo fare soltanto una partizione. In sistemi come
anche in NetBSD) dobbiamo fare soltanto una partizione. In sistemi come
ad esempio GNU/Linux dobbiamo fare una partizione per ogni gerarchia,
ad esempio GNU/Linux dobbiamo fare una partizione per ogni gerarchia,
-
quindi per esempio <code>/</code> (''root''), <code>swap</code>,
+
quindi per esempio ''/'' (''root''), ''swap'',
-
<code>/home</code> e così via.<br>
+
''/home'' e così via.<br>
Nei *BSD ci sono gli ''slices'' (tradotto in italiano "fette", infatti
Nei *BSD ci sono gli ''slices'' (tradotto in italiano "fette", infatti
possiamo immaginare benissimo l'hard disk in cui installeremo NetBSD
possiamo immaginare benissimo l'hard disk in cui installeremo NetBSD
Riga 95: Riga 95:
Ora ci chiede se installare il bootcode e quindi sovrascrivere il ''MBR''
Ora ci chiede se installare il bootcode e quindi sovrascrivere il ''MBR''
(''Master Boot Record''). Può essere fastidioso soltanto se abbiamo dei
(''Master Boot Record''). Può essere fastidioso soltanto se abbiamo dei
-
boot loader (ad esempio <code>GRUB</code>) e vogliamo utilizzarli anche per
+
boot loader (ad esempio ''GRUB'') e vogliamo utilizzarli anche per
NetBSD. Io scelgo ''a'' (''Yes'').
NetBSD. Io scelgo ''a'' (''Yes'').
Abbiamo fatto la partizione... però ancora non ci sono gli ''slices'', con
Abbiamo fatto la partizione... però ancora non ci sono gli ''slices'', con
-
<code>disklabel</code> creiamoli selezionando ''a'' (''Set sizes of NetBSD partitions'').
+
''disklabel'' creiamoli selezionando ''a'' (''Set sizes of NetBSD partitions'').
Da come si può leggere un installazione completa senza ''X'' occupa almeno
Da come si può leggere un installazione completa senza ''X'' occupa almeno
288Mb, mentre con ''X'' almeno 338Mb (questa dimensione dipende dai vari
288Mb, mentre con ''X'' almeno 338Mb (questa dimensione dipende dai vari
set che abbiamo selezionato in precedenza).
set che abbiamo selezionato in precedenza).
-
Di default NetBSD fa una ''swap'' e poi una grossa ''root'' (<code>/</code>). Non ci sta
+
Di default NetBSD fa una ''swap'' e poi una grossa ''root'' (''/''). Non ci sta
bene tutto questo, quindi cambiamolo.
bene tutto questo, quindi cambiamolo.
-
Creo una <code>/usr</code> di circa 20Gb (sono molti!), una <code>/var</code> di 3Gb, per la
+
Creo una ''/usr'' di circa 20Gb (sono molti!), una ''/var'' di 3Gb, per la
-
<code>/</code> gli do 4Gb. Tutto il resto è per <code>/home</code> (quindi metto un bel "+").
+
''/'' gli do 4Gb. Tutto il resto è per ''/home'' (quindi metto un bel ''+'').
Ci chiede di confermare se tutto va bene... Da questa richiesta si
Ci chiede di confermare se tutto va bene... Da questa richiesta si
possono vedere benissimo tutti gli ''slices'', selezioniamo ''x'' (''Partition
possono vedere benissimo tutti gli ''slices'', selezioniamo ''x'' (''Partition
Riga 117: Riga 117:
Può sembrare strano ma ancora non abbiamo scritto (e quindi eliminato nulla) se si hanno dati
Può sembrare strano ma ancora non abbiamo scritto (e quindi eliminato nulla) se si hanno dati
-
importanti è questo il momento giusto per abbandonare <code>Sysinst</code> per i
+
importanti è questo il momento giusto per abbandonare ''Sysinst'' per i
più sbadati, altrimenti ''b'' (''Yes'').
più sbadati, altrimenti ''b'' (''Yes'').
-
Con <code>newfs</code> ci crea tutti i vari ''slices'', dobbiamo solo attendere qualche
+
Con ''newfs'' ci crea tutti i vari ''slices'', dobbiamo solo attendere qualche
secondo.
secondo.
Riga 126: Riga 126:
usare tastiera e monitor (''bootblocks'').
usare tastiera e monitor (''bootblocks'').
-
<code>Sysinst</code> ora ci chiede in che modo deve stampare i messaggi
+
''Sysinst'' ora ci chiede in che modo deve stampare i messaggi
-
dell'installazione dei distribution sets. Lasciamo benissimo ''a''
+
dell'installazione dei ''distribution sets''. Lasciamo benissimo ''a''
(''Progress bar'').<br>
(''Progress bar'').<br>
Ora selezioniamo il supporto in cui prendere i ''sets'', il CD-ROM va
Ora selezioniamo il supporto in cui prendere i ''sets'', il CD-ROM va
Riga 145: Riga 145:
''password cipher'', la maggior parte delle distro GNU/Linux usa ''MD5'',
''password cipher'', la maggior parte delle distro GNU/Linux usa ''MD5'',
OpenBSD (e forsi altri OS) dovrebbero usare ''Blowfish'', io scelgo ''c''
OpenBSD (e forsi altri OS) dovrebbero usare ''Blowfish'', io scelgo ''c''
-
(''Blowfish 2^7 round'').
+
(''Blowfish 2^7 round''). Comunque è consigliabile usare ''MD5'' o ''Blowfish'',
 +
evitate ''DES''.
Vogliamo una password di root, selezioniamo quindi ''a'' (''Yes'') e  
Vogliamo una password di root, selezioniamo quindi ''a'' (''Yes'') e  
scegliamoci una bella password.  Ora ci chiede la shell che dovrà  
scegliamoci una bella password.  Ora ci chiede la shell che dovrà  
-
usare il superutente root. Scelgo <code>ksh</code> (''Korn Shell'') perchè tra <code>sh</code>
+
usare il superutente root. Scelgo ''ksh'' (''Korn Shell'') perchè tra ''sh''
-
e <code>csh</code> è la mia preferita (volendo possiamo anche installare <code>bash</code>, <code>zsh</code>
+
e ''csh'' è la mia preferita (volendo possiamo anche installare ''bash'', ''zsh''
e molte altre shell in un secondo momento).
e molte altre shell in un secondo momento).
=== Installazione completata e riavvio ===
=== Installazione completata e riavvio ===
-
Ok, ora l'installazione è finita... Come ci consiglia <code>sysinst</code> al
+
Ok, ora l'installazione è finita... Come ci consiglia ''sysinst'' al
-
prossimo boot dobbiamo leggerci il manpage <code>[[afterboot(8)]]</code> con un bel
+
prossimo boot dobbiamo leggerci il manpage [[afterboot(8)]] con un bel
-
<code>man afterboot</code> ed editare <code>rc.conf</code> per finire a configurare i vari
+
''man afterboot'' ed editare ''rc.conf'' per finire a configurare i vari
-
demoni da avviare o disattivare (l'<code>rc.conf</code> è piuttosto minimale
+
demoni da avviare o disattivare (l'''rc.conf'' è piuttosto minimale
inizialmente, quindi i demoni avviati di default sono pochi).
inizialmente, quindi i demoni avviati di default sono pochi).
Riga 170: Riga 171:
NetBSD partirà  correttamente (speriamo :-P). Si può notare che i
NetBSD partirà  correttamente (speriamo :-P). Si può notare che i
messaggi del ''kernel'' sono tutti verdi, questi messaggi possono essere
messaggi del ''kernel'' sono tutti verdi, questi messaggi possono essere
-
anche letti con <code>[[dmesg(8)]]</code>. Il tool <code>dmesg(8)</code> è utilissimo, infatti è
+
anche letti con [[dmesg(8)]]. Il tool ''dmesg'' è utilissimo, infatti è
anche consigliabile che al primo boot facciamo un breve esame di
anche consigliabile che al primo boot facciamo un breve esame di
quest'output in modo da osservare se NetBSD ha trovato correttamente
quest'output in modo da osservare se NetBSD ha trovato correttamente
Riga 178: Riga 179:
alla scheda video e scheda audio.
alla scheda video e scheda audio.
Una volta finito il boot dobbiamo vedere qualche cosa del genere:
Una volta finito il boot dobbiamo vedere qualche cosa del genere:
-
<pre>
+
 
Tue Jul 24 10:29:21 CEST 2007
Tue Jul 24 10:29:21 CEST 2007
Riga 184: Riga 185:
login: _
login: _
-
</pre>
+
[...]
Questa è la schermata di login, abbiamo a disposizione 4 terminali
Questa è la schermata di login, abbiamo a disposizione 4 terminali
Riga 191: Riga 192:
hanno già  usato un sistema operativo ''Unix-like'' troveranno questo
hanno già  usato un sistema operativo ''Unix-like'' troveranno questo
ambiente familiare, questo vale anche per gli user che non hanno mai
ambiente familiare, questo vale anche per gli user che non hanno mai
-
usato un OS ''Unix-like'', basta soltanto ambientarsi. Esploriamo i vari
+
usato un OS ''Unix-like'', basta soltanto ambientarsi. Esploriamoli premendo questa combinazione dei tasti, per esempio se premiamo ''C-M-F3'', possiamo vedere:
-
terminali premendo questa combinazione dei tasti, per esempio se
+
 
-
premiamo ''C-M-F3'', possiamo vedere:
+
-
<pre>
+
NetBSD/i386 (brucaliffo) (ttyE2)
NetBSD/i386 (brucaliffo) (ttyE2)
login: _
login: _
-
</pre>
+
[...]
Da come si può osservare la schermata è quasi uguale,
Da come si può osservare la schermata è quasi uguale,
Riga 215: Riga 214:
Per questo è da incoscienti usarlo per fare le operazioni di tutti i
Per questo è da incoscienti usarlo per fare le operazioni di tutti i
giorni, come per esempio navigare in internet, leggere news, mandare
giorni, come per esempio navigare in internet, leggere news, mandare
-
mail o giocare semplicemente a <code>tetris</code> o <code>rogue</code>.<br>
+
mail o giocare semplicemente a ''tetris'' o ''rogue''.<br>
L'utente root va quindi usato con moderazione, fare tutto da root è un
L'utente root va quindi usato con moderazione, fare tutto da root è un
male.<br>
male.<br>
-
Logghiamoci da root, scriviamo <code>root</code>, premiamo ''Return'' e scriviamo la
+
Logghiamoci da root, scriviamo ''root'', premiamo ''Return'' e scriviamo la
nostra password di root (che non verrà visualizzata su schermo) e
nostra password di root (che non verrà visualizzata su schermo) e
confermiamola sempre con il tasto ''Return''.<br>
confermiamola sempre con il tasto ''Return''.<br>
-
<pre>
+
 
login: root
login: root
Password:
Password:
Riga 238: Riga 237:
We recommend creating a non-root account and using su(1) for root access.
We recommend creating a non-root account and using su(1) for root access.
brucaliffo# _
brucaliffo# _
-
</pre>
+
[...]
 +
 
 +
Abbiamo quindi appreso che ogni comando si conforma con ''Invio''. Alla
 +
fine dell'installazione ''sysinst'' ci ha consigliato di leggere il man
 +
page afterboot sezione 8, facciamolo subito:
-
Abbiamo quindi appreso che ogni comando si conforma con invio. Alla
 
-
fine dell'installazione sysinst ci ha consigliato di leggere il man
 
-
page <code>afterboot(8)</code>, facciamolo subito:
 
-
<pre>
 
brucaliffo# man afterboot
brucaliffo# man afterboot
-
</pre>
+
[...]
-
Il comando <code>[[man(1)]]</code> è utilissimo per ogni user e amministratore di sistema, infatti grazie a <code>man</code> possiamo leggere manuali in linea di tutto il software installato. Le [[:Categoria:Pagine di manuale|pagine di manuale]] esistono anche per il software aggiuntivo quindi di norma ogni software ha la sua pagina di manuale
+
Il comando [[man(1)]] è utilissimo per ogni user e amministratore di sistema, infatti grazie a ''man'' possiamo leggere manuali in linea di tutto il software installato. Le [[:Categoria:Pagine di manuale|pagine di manuale]] esistono anche per il software aggiuntivo quindi di norma ogni software ha la sua pagina di manuale
-
Il man page <code>afterboot</code> che stiamo leggendo è un semplice file di testo
+
Il man page ''afterboot'' che stiamo leggendo è un semplice file di testo
-
e lo vediamo grazie ad un ''pager'' chiamato <code>less</code>, possiamo spostarci su e
+
e lo vediamo grazie ad un ''pager'' chiamato ''less'', possiamo spostarci su e
giù con le frecce o ''k'' e ''j''.<br>
giù con le frecce o ''k'' e ''j''.<br>
Una volta letto il man page si può uscire premendo il tasto ''q''.
Una volta letto il man page si può uscire premendo il tasto ''q''.
Riga 259: Riga 258:
non è riconosciuta, probabilmente si può risolvere ricompilando il
non è riconosciuta, probabilmente si può risolvere ricompilando il
''kernel'' abilitando il supporto per quella determinata scheda/periferica.
''kernel'' abilitando il supporto per quella determinata scheda/periferica.
-
Esaminiamo quindi l'output di <code>dmesg</code>:
+
Esaminiamo quindi l'output di ''dmesg'':
-
<pre>
+
 
brucaliffo# dmesg
brucaliffo# dmesg
-
</pre>
+
[...]
Cosa, non riuscite a leggere quello che c'è in alto ma leggete soltanto
Cosa, non riuscite a leggere quello che c'è in alto ma leggete soltanto
le ultime 24 righe? Non vi preoccupate, esistono i ''pager'' e le ''pipe''
le ultime 24 righe? Non vi preoccupate, esistono i ''pager'' e le ''pipe''
(non quelle che si fumano :-)) per risolvere questo problema:
(non quelle che si fumano :-)) per risolvere questo problema:
-
<pre>
+
 
brucaliffo# dmesg | less
brucaliffo# dmesg | less
-
</pre>
+
[...]
-
Benissimo, ora possiamo vedere e muoverci sull'output di <code>dmesg</code> come se
+
Benissimo, ora possiamo vedere e muoverci sull'output di ''dmesg'' come se
-
stessimo leggendo un man page, infatti usiamo lo stesso ''pager'' (<code>less</code>) e
+
stessimo leggendo un man page, infatti usiamo lo stesso ''pager'' (''less'') e
l'approccio è quindi uguale.
l'approccio è quindi uguale.
Non trovate che è piuttosto noioso esaminare l'output in questo modo?
Non trovate che è piuttosto noioso esaminare l'output in questo modo?
-
Sì, lo è, greppiamolo quindi! <code>grep</code> è un tool GNU che serve per cercare
+
Sì, lo è, greppiamolo quindi! ''grep'' è un tool GNU che serve per cercare
una determinata stringa o meglio ''regular expression'', tutto ciò che
una determinata stringa o meglio ''regular expression'', tutto ciò che
combacia <code>grep</code> ce lo stampa a video.<br>
combacia <code>grep</code> ce lo stampa a video.<br>
Proviamolo subito esaminando le varie periferiche,
Proviamolo subito esaminando le varie periferiche,
* scheda di rete:
* scheda di rete:
-
<pre>
+
 
brucaliffo# dmesg | grep -i realtek
brucaliffo# dmesg | grep -i realtek
rtk0 at pci0 dev 16 function 0: Realtek 8139 10/100BaseTX
rtk0 at pci0 dev 16 function 0: Realtek 8139 10/100BaseTX
-
</pre>
+
[...]
 +
 
* controller SATA PCI:
* controller SATA PCI:
-
<pre>
+
 
brucaliffo# dmesg | grep -i adaptec
brucaliffo# dmesg | grep -i adaptec
satalink0: Adaptec AAR-1210SA serial ATA RAID controller (rev. 0x02)
satalink0: Adaptec AAR-1210SA serial ATA RAID controller (rev. 0x02)
-
</pre>
+
[...]
 +
 
* scheda video:
* scheda video:
-
<pre>
+
 
brucaliffo# dmesg | grep -i nvidia
brucaliffo# dmesg | grep -i nvidia
vga1 at pci1 dev 0 function 0: NVIDIA RIVA TNT (rev. 0x04)
vga1 at pci1 dev 0 function 0: NVIDIA RIVA TNT (rev. 0x04)
-
</pre>
+
[...]
 +
 
* scheda audio:
* scheda audio:
-
<pre>
+
 
brucaliffo# dmesg | grep -i ensoniq
brucaliffo# dmesg | grep -i ensoniq
eap0 at pci0 dev 18 function 0: Ensoniq AudioPCI (rev. 0x01)
eap0 at pci0 dev 18 function 0: Ensoniq AudioPCI (rev. 0x01)
-
</pre>
+
[...]
 +
 
* hard disk:
* hard disk:
-
<pre>
+
 
brucaliffo# dmesg | grep -E "^wd0 "
brucaliffo# dmesg | grep -E "^wd0 "
wd0 at atabus2 drive 0: <MAXTOR STM3160211AS>
wd0 at atabus2 drive 0: <MAXTOR STM3160211AS>
-
</pre>
+
[...]
Ottimo, tutto l'hardware è stato rilevato correttamente.
Ottimo, tutto l'hardware è stato rilevato correttamente.
-
L'opzione ''-i'' che abbiamo dato a <code>grep</code> significa ''ignore-case'' quindi
+
L'opzione ''-i'' che abbiamo dato a ''grep'' significa ''ignore-case'' quindi
-
ignora maiuscole e minuscole. Di default infatti <code>grep</code> rispetta
+
ignora maiuscole e minuscole. Di default infatti ''grep'' rispetta
maiuscole e minuscole (''case-sensitive'').
maiuscole e minuscole (''case-sensitive'').
Riga 318: Riga 321:
riga ci deve essere uno spazio. Non vi preoccupate se non avete capito
riga ci deve essere uno spazio. Non vi preoccupate se non avete capito
questa ''regexp'', sono un po' ostiche all'inizio, per maggiori
questa ''regexp'', sono un po' ostiche all'inizio, per maggiori
-
informazioni digitate un bel <code>info grep</code>.
+
informazioni digitate un bel ''info grep''.
-
Per leggere documentazione infatti non esiste soltanto <code>man</code>; <code>man</code> di
+
Per leggere documentazione infatti non esiste soltanto ''man''; ''man'' di
solito è piuttosto scarno, descrive le varie opzioni del programma, ne
solito è piuttosto scarno, descrive le varie opzioni del programma, ne
-
dà una breve descrizione ma nulla in più. Con <code>[[info(1)]]</code> infatti possiamo
+
dà una breve descrizione ma nulla in più. Con [[info(1)]] infatti possiamo
-
leggere tutta la documentazione nel formato ''Info'' (vedere <code>[[texinfo(5)]]</code> se
+
leggere tutta la documentazione nel formato ''Info'' (vedere [[texinfo(5)]] se
-
si è ancora più curiosi). Anche usare <code>info</code> non è difficile, però lo
+
si è ancora più curiosi). Anche usare ''info'' non è difficile, però lo
proveremo dopo quando ci siamo fatti uno user.
proveremo dopo quando ci siamo fatti uno user.
=== Nuovo utente ===
=== Nuovo utente ===
Non aspettiamo allora e creiamo subito uno user! (Sostituire ''<shell>''
Non aspettiamo allora e creiamo subito uno user! (Sostituire ''<shell>''
-
con una shell, per esempio <code>/bin/ksh</code>, ''<"Nome e Cognome" dell'utente>''
+
con una shell, per esempio ''/bin/ksh'', ''<"Nome e Cognome" dell'utente>''
con il vostro Nome e Cognome, ''<utente>'' con il nuovo nome dell'utente,
con il vostro Nome e Cognome, ''<utente>'' con il nuovo nome dell'utente,
per esempio ''leot'', o ''claudio'', o quello che volete.
per esempio ''leot'', o ''claudio'', o quello che volete.
-
<pre>
+
 
brucaliffo#
brucaliffo#
useradd -m -G wheel -s <shell> -c <"Nome e Cognome" dell'utente> <utente>
useradd -m -G wheel -s <shell> -c <"Nome e Cognome" dell'utente> <utente>
-
</pre>
+
[...]
Scegliamo ora una buona password per quest'utente con:
Scegliamo ora una buona password per quest'utente con:
-
<pre>
+
 
brucaliffo# passwd <utente>
brucaliffo# passwd <utente>
-
</pre>
+
[...]
Descrivo un brevemente questi due comandi utilissimi che di norma
Descrivo un brevemente questi due comandi utilissimi che di norma
vanno fatti subito dopo ogni installazione di NetBSD. Allora il
vanno fatti subito dopo ogni installazione di NetBSD. Allora il
-
comando <code>[[passwd(1)]]</code> (<code>passwd</code> non password!) si commenta da solo, cambia la password di quell'utente dato
+
comando [[passwd(1)]] (''passwd'' non password!) si commenta da solo, cambia la password di quell'utente dato
come argomento (omettendo l'argomento cambia la password del nostro
come argomento (omettendo l'argomento cambia la password del nostro
utente, in questo caso l'utente root).
utente, in questo caso l'utente root).
-
Per quanto riguarda <code>[[useradd(8)]]</code> crea l'utente.
+
Per quanto riguarda [[useradd(8)]] crea l'utente.
-
L'opzione ''-m'' sta per ''creami una <code>/home</code>''; la <code>/home</code> è
+
L'opzione ''-m'' sta per ''creami una /home''; la ''/home'' è
la directory in cui stanno tutti i file di quell'utente e quindi tutti
la directory in cui stanno tutti i file di quell'utente e quindi tutti
i vari documenti, le varie configurazione che riguardano quell'utente.
i vari documenti, le varie configurazione che riguardano quell'utente.
Riga 360: Riga 363:
gli utenti del gruppo ''users'' di vedere un nostro file solo in lettura.<br>
gli utenti del gruppo ''users'' di vedere un nostro file solo in lettura.<br>
Il gruppo ''wheel'' invece esiste in tutti i sistemi *BSD, è molto
Il gruppo ''wheel'' invece esiste in tutti i sistemi *BSD, è molto
-
utile, infatti certi software, come ad esempio <code>[[su(1)]]</code> (tool che serve
+
utile, infatti certi software, come ad esempio [[su(1)]] (tool che serve
per cambiare utente, lo vedremo in seguito) non possono essere
per cambiare utente, lo vedremo in seguito) non possono essere
eseguiti se non si fa parte del gruppo ''wheel''. L'opzione ''-s'' è il
eseguiti se non si fa parte del gruppo ''wheel''. L'opzione ''-s'' è il
tipo di shell di quell'utente, le shell installate di default sono
tipo di shell di quell'utente, le shell installate di default sono
-
<code>ksh</code>, <code>sh</code> e <code>csh</code>, quindi queste sono sempre valide. Se installate si
+
''ksh'', ''sh'' e ''csh'', quindi queste sono sempre valide. Se installate si
possono impostare anche altre shell, ce ne sono moltissime.<br>
possono impostare anche altre shell, ce ne sono moltissime.<br>
L'opzione ''-c'' è il commento per quell'utente, di norma Nome e
L'opzione ''-c'' è il commento per quell'utente, di norma Nome e
Riga 377: Riga 380:
facciamo la stessa procedura che abbiamo fatto con l'utente root.
facciamo la stessa procedura che abbiamo fatto con l'utente root.
quindi:
quindi:
-
<pre>
+
 
NetBSD/i386 (brucaliffo) (ttyE1)
NetBSD/i386 (brucaliffo) (ttyE1)
Riga 394: Riga 397:
Terminal type is wsvt25.
Terminal type is wsvt25.
leot@brucaliffo$ _
leot@brucaliffo$ _
-
</pre>
+
[...]
Benissimo, siamo riusciti a loggarci con successo, spostiamoci ora sul
Benissimo, siamo riusciti a loggarci con successo, spostiamoci ora sul
primo terminale (''C-M-F1'') per fare il logout dell'utente root:
primo terminale (''C-M-F1'') per fare il logout dell'utente root:
-
<pre>
+
 
brucaliffo# exit
brucaliffo# exit
-
</pre>
+
[...]
-
Con <code>exit</code> abbiamo fatto il logout, un ottima alternativa ad <code>exit</code>
+
Con ''exit'' abbiamo fatto il logout, un ottima alternativa ad ''exit''
-
leggermente più rapida in <code>ksh</code> è ''C-d'' (''Ctrl + d'').
+
leggermente più rapida in ''ksh'' (e altre shell) è ''C-d'' (''Ctrl + d'').
Siccome non siamo sicuri che ci siamo loggati con il nostro utente
Siccome non siamo sicuri che ci siamo loggati con il nostro utente
-
vogliamo una conferma con <code>[[who(1)]]</code>:
+
vogliamo una conferma con [[who(1)]]:
-
<pre>
+
 
leot@brucaliffo$ who am i
leot@brucaliffo$ who am i
leot    ttyE1    Jul 24 12:48
leot    ttyE1    Jul 24 12:48
-
</pre>
+
[...]
Possiamo anche vedere tutti gli utenti loggati semplicemente con un
Possiamo anche vedere tutti gli utenti loggati semplicemente con un
-
<code>who</code>, in questo caso abbiamo root loggato sul primo terminale e leot
+
''who'', in questo caso abbiamo root loggato sul primo terminale e leot
loggato sul quarto terminale:
loggato sul quarto terminale:
-
<pre>
+
 
leot@brucaliffo$ who
leot@brucaliffo$ who
root    console  Jul 24 13:00
root    console  Jul 24 13:00
leot    ttyE3    Jul 24 12:51
leot    ttyE3    Jul 24 12:51
-
</pre>
+
[...]
 +
 
 +
Un altro comando simile a ''who'' ma non uguale è [[w(1)]]:
-
Un altro comando simile a <code>who(1)</code> ma non uguale è <code>[[w(1)]]</code>:
 
-
<pre>
 
leot@brucaliffo$ w
leot@brucaliffo$ w
  2:11PM  up 15 mins, 2 users, load avarages: 0.47, 0.24, 0.17
  2:11PM  up 15 mins, 2 users, load avarages: 0.47, 0.24, 0.17
Riga 428: Riga 431:
leot    console -                1:59PM    0 w
leot    console -                1:59PM    0 w
leot    ttyp0  192.168.1.4      2:10PM    1 emacs
leot    ttyp0  192.168.1.4      2:10PM    1 emacs
-
</pre>
+
[...]
-
Da come si può osservare con <code>w(1)</code> possiamo anche vedere quello che sta
+
Da come si può osservare con ''w'' possiamo anche vedere quello che sta
facendo l'utente, nell'esempio l'utente leot (che sta sulla macchina
facendo l'utente, nell'esempio l'utente leot (che sta sulla macchina
-
fisicamente) sta sul primo terminale e sta eseguendo <code>w</code>, il secondo
+
fisicamente) sta sul primo terminale e sta eseguendo ''w'', il secondo
utente è sempre leot, solo che proviene da bianconiglio (192.168.1.4)
utente è sempre leot, solo che proviene da bianconiglio (192.168.1.4)
-
e sta eseguendo <code>emacs</code>.
+
e sta eseguendo ''emacs''.
Sappiamo le basi, giusto per un login e logout, impariamo ora a
Sappiamo le basi, giusto per un login e logout, impariamo ora a
manipolare file e directory.<br>
manipolare file e directory.<br>
-
Creiamo una directory, il comando per creare una directory è <code>[[mkdir(1)]]</code>,
+
Creiamo una directory, il comando per creare una directory è [[mkdir(1)]],
per vedere invece il contenuto di una directory esiste il comando
per vedere invece il contenuto di una directory esiste il comando
-
<code>[[ls(1)]]</code>, invece per capire il percorso in cui siamo posizionati il tool
+
[[ls(1)]], invece per capire il percorso in cui siamo posizionati il tool
-
di cui abbiamo bisogno è <code>[[pwd(1)]]</code>:
+
di cui abbiamo bisogno è [[pwd(1)]]:
-
<pre>
+
 
leot@brucaliffo$ mkdir data
leot@brucaliffo$ mkdir data
leot@brucaliffo$ ls
leot@brucaliffo$ ls
Riga 448: Riga 451:
leot@brucaliffo$ pwd
leot@brucaliffo$ pwd
/home/leot
/home/leot
-
</pre>
+
[...]
Impariamo ora a muoverci tra le cartelle:
Impariamo ora a muoverci tra le cartelle:
-
<pre>
+
 
leot@brucaliffo$ cd data
leot@brucaliffo$ cd data
leot@brucaliffo$ pwd
leot@brucaliffo$ pwd
Riga 483: Riga 486:
leot@brucaliffo$ pwd
leot@brucaliffo$ pwd
/home/leot
/home/leot
-
</pre>
+
[...]
Possiamo vedere che non è difficile spostarsi tra le directory, può
Possiamo vedere che non è difficile spostarsi tra le directory, può
essere utilissimo l'uso del tasto ''TAB'' che autocompleta le directory e
essere utilissimo l'uso del tasto ''TAB'' che autocompleta le directory e
-
volendo anche i programmi in certe shell. <code>ksh</code> supporta
+
volendo anche i programmi in certe shell. ''ksh'' supporta
l'autocompletamento.
l'autocompletamento.
Impariamo ora a rimuovere le directory che avevamo creato, il comando
Impariamo ora a rimuovere le directory che avevamo creato, il comando
-
per rimuovere una cartella vuota si chiama <code>[[rmdir(1)[[</code>:
+
per rimuovere una cartella vuota si chiama [[rmdir(1)]]:
-
<pre>
+
 
leot@brucaliffo$ cd $HOME/data
leot@brucaliffo$ cd $HOME/data
leot@brucaliffo$ ls -1
leot@brucaliffo$ ls -1
Riga 500: Riga 503:
leot@brucaliffo$ ls
leot@brucaliffo$ ls
documenti
documenti
-
</pre>
+
[...]
Le cartelle fanno molto comodo per tenere ordinati i nostri file, ma
Le cartelle fanno molto comodo per tenere ordinati i nostri file, ma
dobbiamo imparare a modificare i file, magari file di testo. I tool
dobbiamo imparare a modificare i file, magari file di testo. I tool
-
che ci servono sono diversi, prima di tutto <code>[[touch(1)]]</code> per creare un
+
che ci servono sono diversi, prima di tutto [[touch(1)]] per creare un
-
file vuoto, <code>[[cat(1)]]</code> che serve per stampare l'output di un file, <code>[[vi(1)]]</code>
+
file vuoto, [[cat(1)]] che serve per stampare l'output di un file, [[vi(1)]]
l'editor installato di default su NetBSD, un editor quindi da
l'editor installato di default su NetBSD, un editor quindi da
conoscere, almeno le basi, non voglio aggiungere molto su Vi perché
conoscere, almeno le basi, non voglio aggiungere molto su Vi perché
-
su [[Guida di NetBSD]] c'è un ottima sezione sull'editor <code>Vi</code> e
+
su [[Guida di NetBSD]] c'è un ottima sezione sull'editor ''Vi'' e
-
sull'editing di base di <code>Vi</code>. Se vi colpisce <code>Vi</code>, consiglio di provare
+
sull'editing di base con ''Vi''. Se vi colpisce ''Vi'', consiglio di provare
-
<code>nVi</code> e <code>Vim</code>, sono dei cloni di <code>Vi</code>
+
''nVi'' e ''Vim'', sono dei cloni di ''Vi'' con diverse funzionalità (''Vi'' è un
-
con diverse funzionalità (<code>Vi</code> è un
+
editor di base minimale ma ha molte funzioni, ''nVi'' e ''Vim</code> hanno varie
-
editor di base minimale ma ha molte funzioni, <code>nVi</code> e <code>Vim</code> hanno varie
+
caratteristiche e sono ancora più potenti dell'editor ''Vi''). Un altro
-
caratteristiche e sono ancora più potenti dell'editor <code>Vi</code>). Un altro
+
editor sicuramente da provare è ''GNU Emacs'' scritto da Richard Stallman
-
editor sicuramente da provare è <code>GNU Emacs</code> scritto da Richard Stallman
+
(RMS continua ancora con lo sviluppo di ''Emacs'' ma ci sono un sacco di
-
(RMS continua ancora con lo sviluppo di <code>Emacs</code> ma ci sono un sacco di
+
contributi da parte di altri developer e user).
contributi da parte di altri developer e user).
-
Altro tool utile che ci serve oltre all'editor <code>Vi</code> è <code>[[file(1)]]</code> che serve a
+
Altro tool utile che ci serve oltre all'editor ''Vi' è [[file(1)]] che serve a
determinare il tipo di file (per esempio un file di testo o anche un
determinare il tipo di file (per esempio un file di testo o anche un
video, un immagine...).<br>
video, un immagine...).<br>
-
Un altro tool simile a <code>[[cat(1)]]</code> che useremo sarà <code>[[head(1)]]</code> che stampa le
+
Un altro tool simile a [[cat(1)]] che useremo sarà [[head(1)]] che stampa le
-
prime righe di un file, simile a <code>[[tail(1)]]</code> che invece stampa le righe
+
prime righe di un file, simile a [[tail(1)]] che invece stampa le righe
partendo dalla fine.<br>
partendo dalla fine.<br>
-
Useremo anche <code>[[echo(1)]]</code> per scrivere del testo.
+
Useremo anche [[echo(1)]] per scrivere del testo.
-
<pre>
+
 
leot@brucaliffo$ touch dmesgfile.txt
leot@brucaliffo$ touch dmesgfile.txt
leot@brucaliffo$ ls
leot@brucaliffo$ ls
Riga 532: Riga 534:
dmesgfile.txt: empty
dmesgfile.txt: empty
leot@brucaliffo$ vi dmesgfile.txt
leot@brucaliffo$ vi dmesgfile.txt
-
</pre>
+
[...]
 +
 
''(premiamo ora "i" per andare in modalità  inserimento)''
''(premiamo ora "i" per andare in modalità  inserimento)''
-
<pre>
+
 
Of course it runs NetBSD.
Of course it runs NetBSD.
-
</pre>
+
[...]
 +
 
''(premiamo ora "ESC" per uscire dalla modalità  inserimento)''<br>
''(premiamo ora "ESC" per uscire dalla modalità  inserimento)''<br>
''(scriviamo :wq per salvare (w) e uscire (q))''
''(scriviamo :wq per salvare (w) e uscire (q))''
-
<pre>
+
 
leot@brucaliffo$ cat dmesgfile.txt
leot@brucaliffo$ cat dmesgfile.txt
Of course it runs NetBSD.
Of course it runs NetBSD.
Riga 551: Riga 555:
wsdisplay0: screen 4 added (80x25, vt100 emulation)
wsdisplay0: screen 4 added (80x25, vt100 emulation)
NetBSD/toaster: we wish the toaster to be happy too.
NetBSD/toaster: we wish the toaster to be happy too.
-
</pre>
+
[...]
 +
 
L'esempio qui sopra è piuttosto semplice, l'unica cosa un po' strana è
L'esempio qui sopra è piuttosto semplice, l'unica cosa un po' strana è
''>'' che serve per dirigere l'output su quel file. Abbiamo usato anche
''>'' che serve per dirigere l'output su quel file. Abbiamo usato anche
''>>'', cioè ''append'', proprio per appendere del testo (infatti quando
''>>'', cioè ''append'', proprio per appendere del testo (infatti quando
-
abbiamo fatto il <code>dmesg > file</code> quello che avevamo precedentemente
+
abbiamo fatto il ''dmesg > file'' quello che avevamo precedentemente
scritto è stato sovrascritto, con l'''append'' invece se il file esiste lo
scritto è stato sovrascritto, con l'''append'' invece se il file esiste lo
"appende" alla fine).
"appende" alla fine).
Riga 561: Riga 566:
== Suggerimenti per migliorare l'articolo ==
== Suggerimenti per migliorare l'articolo ==
* Estendere e terminare la trattazione dei tool di base
* Estendere e terminare la trattazione dei tool di base
-
* Cominciare la gestione del sistema attraverso la messa a punto dei file di configurazione (con particolare enfasi sul file <code>[[rc.conf(5)]]</code>)
+
* Cominciare la gestione del sistema attraverso la messa a punto dei file di configurazione (con particolare enfasi sul file [[rc.conf(5)]])
* Una basilare buona introduzione al [[pkgsrc|sistema dei pacchetti]] completa il percorso ''base'' dell'utente che può quindi passare alla lettura integrale della [[Guida di NetBSD]].
* Una basilare buona introduzione al [[pkgsrc|sistema dei pacchetti]] completa il percorso ''base'' dell'utente che può quindi passare alla lettura integrale della [[Guida di NetBSD]].
[[Categoria:Tutorial]]
[[Categoria:Tutorial]]

Versione delle 09:23, 4 ago 2007

Questo articolo è solo un abbozzo, contribuisci a migliorarlo secondo le convenzioni di NetBSD-it mettendo a disposizione le tue conoscenze. La comunità te ne sarà grata!

Introduzione

In questo Howto si inizierà con un installazione base di NetBSD/i386 passo-passo. Questo Howto è consigliato a tutti quelli che vogliono iniziare ad usare questo OS o a quelli che hanno iniziato da poco. Per ampliare le conoscenze di NetBSD và sicuramente letto Guida di NetBSD. Nella prima parte cercherò di descrivere l'installazione (può quindi essere letto durante l'installazione). Nella seconda parte parlerò invece delle configurazioni base e di altre azioni utili per l'user NetBSD.


Indice

Installazione

Boot iniziale, selezione lingua e mappatura tastiera

Una volta partito il boot selezioniamo la lingua preferita, in questo modo i messaggi di sysinst saranno in quella lingua che abbiamo scelto. La lingua che preferisco tra quelle è l'Inglese, seleziono quindi l'opzione a.

Ora ci chiede il tipo di tastiera, la tastiera che ho è italiana, quindi seleziono l'opzione j.

Tipo di installazione

Ok, inizia l'installazione vera e propria... Abbiamo diverse opzioni... Vogliamo installare NetBSD quindi selezioniamo a (Install NetBSD to hard disk). Confermiamo la nostra scelta con un Sì (Yes).

Selezione del supporto dove installare NetBSD

Il messaggio che ci appare subito dopo sono gli hard disk che NetBSD trova, nel mio caso trova soltanto wd0 (ho soltanto un hard disk). Apro una piccola parentesi su come chiama gli hard disk NetBSD, gli hard disk vengono chiamati di solito wdn dove n è un numero, questo numero dipende dal canale e da master o slave se è un hard disk IDE. Quindi se abbiamo quattro hard disk wd0 sarà il primary master, wd1 sarà il primary slave, wd2 secondary master ed infine wd3 secondary slave, è semplice.
Ritornando all'installazione se si hanno più hard disk mi avrebbe fatto scegliere in quale hard disk installare NetBSD. Premiamo quindi invio una volta selezionato l'hard disk.

Selezionare il software (i distribution sets)

Ora possiamo scegliere i distribution sets, sono tutti software più o meno di vitale importanza, siccome siamo dei curiosi selezioniamo b (Custom installation) in modo tale da vedere tutti i sets. Da come si può vedere possiamo selezionare il tipo di kernel (a..g), ed i vari sets (h..o). L'elaboratore in cui sto installando NetBSD non ha un ruolo ben preciso, sò soltanto che ci accederò via SSH, quindi niente X. Selezioniamo quindi o (X11 sets), e poi g (Deselect all the above sets). Quando abbiamo scelto tutti i vari sets che vogliamo possiamo confermare il tutto selezionando x (Install selected sets).

Impostazioni hard disk e partizionamento (fdisk e disklabel)

Una volta selezionati i sets ci chiede la geometria dell'hard disk che abbiamo selezionato all'inizio... Nella maggior parte dei casi il BIOS ha ragione e quindi non dobbiamo modificare nulla, però questa domanda è utile nei casi in cui il BIOS non ha ragione. Per i più curiosi i vari valori cylinders/head/sectors sono di norma scritti sull'etichetta sopra l'hard disk.
Selezionamo a (This is the correct geometry).

Ottimo, è arrivata l'ora di partizionare l'hard disk... Ci chiede quindi se vogliamo usare l'intero disco o no. Ho appena acquistato l'hard disk e voglio accertarmi che l'hard disk sia vergine, quindi seleziono a (Edit the MBR partition table).
Questa opzione è utilissima se in quell'hard disk ci sono anche altri OS e non vogliamo perderli. Apro anche qui una parentesi che interesserà a tutti gli user provenienti da OS quali GNU/Linux, Windows o altri. Nei *BSD (e quindi anche in NetBSD) dobbiamo fare soltanto una partizione. In sistemi come ad esempio GNU/Linux dobbiamo fare una partizione per ogni gerarchia, quindi per esempio / (root), swap, /home e così via.
Nei *BSD ci sono gli slices (tradotto in italiano "fette", infatti possiamo immaginare benissimo l'hard disk in cui installeremo NetBSD proprio come una torta, con tante fette). Bene, selezioniamo quindi la partizione, io scelgo a, infatti tutte sono unused (inutilizzate) come previsto. Una volta selezionata la partizione ci dice il tipo (kind), dobbiamo installarci NetBSD quindi selezioniamo c (NetBSD). Ricordo che si può rimuovere la partizione selezionando b (Delete partition) sul tipo.
In automatico mi prende tutto lo spazio possibile. Seleziono anche install. Una volta fatto proseguiamo...

Ora ci chiede se installare il bootcode e quindi sovrascrivere il MBR (Master Boot Record). Può essere fastidioso soltanto se abbiamo dei boot loader (ad esempio GRUB) e vogliamo utilizzarli anche per NetBSD. Io scelgo a (Yes). Abbiamo fatto la partizione... però ancora non ci sono gli slices, con disklabel creiamoli selezionando a (Set sizes of NetBSD partitions).

Da come si può leggere un installazione completa senza X occupa almeno 288Mb, mentre con X almeno 338Mb (questa dimensione dipende dai vari set che abbiamo selezionato in precedenza). Di default NetBSD fa una swap e poi una grossa root (/). Non ci sta bene tutto questo, quindi cambiamolo. Creo una /usr di circa 20Gb (sono molti!), una /var di 3Gb, per la / gli do 4Gb. Tutto il resto è per /home (quindi metto un bel +). Ci chiede di confermare se tutto va bene... Da questa richiesta si possono vedere benissimo tutti gli slices, selezioniamo x (Partition sizes ok) una volta controllati tutti gli slices.

Ci chiede ora il nome dell'hard disk... Possiamo lasciare benissimo quello di default (di solito corrisponde al nome dell'hard disk vero e proprio, anche questa informazione dovrebbe trovarsi sull'etichetta dell'hard disk).

Può sembrare strano ma ancora non abbiamo scritto (e quindi eliminato nulla) se si hanno dati importanti è questo il momento giusto per abbandonare Sysinst per i più sbadati, altrimenti b (Yes). Con newfs ci crea tutti i vari slices, dobbiamo solo attendere qualche secondo.

Ultime impostazioni

FIXME: Ottimo, scegliamo a (Use the BIOS console) perché vogliamo usare tastiera e monitor (bootblocks).

Sysinst ora ci chiede in che modo deve stampare i messaggi dell'installazione dei distribution sets. Lasciamo benissimo a (Progress bar).
Ora selezioniamo il supporto in cui prendere i sets, il CD-ROM va benissimo, quindi selezioniamo a (CD-ROM / DVD). Anche la directory di default dobrebbe andare bene, quindi confermiamo. Ora vediamo questa progress bar e la percentuale del set che può essere letto in alto (il set è qualche cosa del tipo <set>.tgz dove l'estensione .tgz sta per tar gzipped). La procedura di installazione dei sets è completata (cavolo, ci sono voluti solo 2-3 minuti! :-)), confermiamo con un bel Return.

Benissimo, ora possiamo selezionare il timezone, di solito la data sul BIOS deve essere impostata su UTC. Stiamo in Italia, quindi selezioniamo Europe/Rome (ci sono anche San Marino e Vaticano).

Ormai è arrivato il momento dei vari setting, si inizia con il password cipher, la maggior parte delle distro GNU/Linux usa MD5, OpenBSD (e forsi altri OS) dovrebbero usare Blowfish, io scelgo c (Blowfish 2^7 round). Comunque è consigliabile usare MD5 o Blowfish, evitate DES.

Vogliamo una password di root, selezioniamo quindi a (Yes) e scegliamoci una bella password. Ora ci chiede la shell che dovrà usare il superutente root. Scelgo ksh (Korn Shell) perchè tra sh e csh è la mia preferita (volendo possiamo anche installare bash, zsh e molte altre shell in un secondo momento).

Installazione completata e riavvio

Ok, ora l'installazione è finita... Come ci consiglia sysinst al prossimo boot dobbiamo leggerci il manpage afterboot(8) con un bel man afterboot ed editare rc.conf per finire a configurare i vari demoni da avviare o disattivare (l'rc.conf è piuttosto minimale inizialmente, quindi i demoni avviati di default sono pochi).

Ok, ora ci accoglie di nuovo la schermata iniziale... Selezioniamo d (Reboot the computer) per riavviare il nostro elaboratore.

Configurazione e altro

Primo boot e primo login

NetBSD partirà correttamente (speriamo :-P). Si può notare che i messaggi del kernel sono tutti verdi, questi messaggi possono essere anche letti con dmesg(8). Il tool dmesg è utilissimo, infatti è anche consigliabile che al primo boot facciamo un breve esame di quest'output in modo da osservare se NetBSD ha trovato correttamente le varie periferiche, quindi siamo interessati alla scheda di rete nel PC, nel mio caso una Realtek 8139, al controller SATA PCI Adaptec (basato su chipset Silicon Image), all'hard disk SATA e volendo anche alla scheda video e scheda audio. Una volta finito il boot dobbiamo vedere qualche cosa del genere:

Tue Jul 24 10:29:21 CEST 2007

NetBSD/i386 (brucaliffo) (conole)

login: _ [...]

Questa è la schermata di login, abbiamo a disposizione 4 terminali virtuali accessibili con la combinazione dei tasti C-M-Fn (C sta per Control, M sta per Alt ed Fn per... F1, F2, F3, F4). Gli user che hanno già usato un sistema operativo Unix-like troveranno questo ambiente familiare, questo vale anche per gli user che non hanno mai usato un OS Unix-like, basta soltanto ambientarsi. Esploriamoli premendo questa combinazione dei tasti, per esempio se premiamo C-M-F3, possiamo vedere:

NetBSD/i386 (brucaliffo) (ttyE2)

login: _ [...]

Da come si può osservare la schermata è quasi uguale, cambia ttyE2, infatti ogni terminale ha un nome, ed ogni terminale può essere di diverso tipo, per ora non ci interessa il tipo, dico soltanto che di default dovremmo avere un vt100 su console e vt220 su ttyE1, ttyE2, ttyE3.

NetBSD (come qualsiasi altro OS Unix-like che si rispetti) è multiutente, cioè ad un PC possono accedere più utenti e può avere più utenti. Come abbiamo visto inizialmente possiamo loggarci soltanto con il superutente root. Si chiama proprio superutente perché l'utente root può fare qualunque cosa, per esempio eseguire tutti i programmi, accedere a tutte le directory e così via. L'utente root non ha limiti.
Per questo è da incoscienti usarlo per fare le operazioni di tutti i giorni, come per esempio navigare in internet, leggere news, mandare mail o giocare semplicemente a tetris o rogue.
L'utente root va quindi usato con moderazione, fare tutto da root è un male.
Logghiamoci da root, scriviamo root, premiamo Return e scriviamo la nostra password di root (che non verrà visualizzata su schermo) e confermiamola sempre con il tasto Return.

login: root Password: Jul 24 11:02:02 brucaliffo login: ROOT LOGIN (root) ON conosole Last login: Tue Jul 24 08:20:47 2007 on conosole Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005

   The NetBSD Foundation, Inc. All rights reserved.

Copyright (c) 1982, 1986, 1989, 1991, 1993

   The Regents of the University of California. All rights reserved.

NetBSD 3.1 (LEOT) #0: Mon Jul 23 15:08:50 CEST 2007

Welcome to NetBSD!

Terminal type is wsvt25. We recommend creating a non-root account and using su(1) for root access. brucaliffo# _ [...]

Abbiamo quindi appreso che ogni comando si conforma con Invio. Alla fine dell'installazione sysinst ci ha consigliato di leggere il man page afterboot sezione 8, facciamolo subito:

brucaliffo# man afterboot [...]

Il comando man(1) è utilissimo per ogni user e amministratore di sistema, infatti grazie a man possiamo leggere manuali in linea di tutto il software installato. Le pagine di manuale esistono anche per il software aggiuntivo quindi di norma ogni software ha la sua pagina di manuale

Il man page afterboot che stiamo leggendo è un semplice file di testo e lo vediamo grazie ad un pager chiamato less, possiamo spostarci su e giù con le frecce o k e j.
Una volta letto il man page si può uscire premendo il tasto q. Ora abbiamo di nuovo la nostra cara shell.

Come detto all'inizio vogliamo accertarci che tutte le periferiche sono state rilevate correttamente, non arrabbiatevi se la periferica non è riconosciuta, probabilmente si può risolvere ricompilando il kernel abilitando il supporto per quella determinata scheda/periferica. Esaminiamo quindi l'output di dmesg:

brucaliffo# dmesg [...]

Cosa, non riuscite a leggere quello che c'è in alto ma leggete soltanto le ultime 24 righe? Non vi preoccupate, esistono i pager e le pipe (non quelle che si fumano :-)) per risolvere questo problema:

brucaliffo# dmesg | less [...]

Benissimo, ora possiamo vedere e muoverci sull'output di dmesg come se stessimo leggendo un man page, infatti usiamo lo stesso pager (less) e l'approccio è quindi uguale.

Non trovate che è piuttosto noioso esaminare l'output in questo modo? Sì, lo è, greppiamolo quindi! grep è un tool GNU che serve per cercare una determinata stringa o meglio regular expression, tutto ciò che combacia grep ce lo stampa a video.
Proviamolo subito esaminando le varie periferiche,

  • scheda di rete:

brucaliffo# dmesg | grep -i realtek rtk0 at pci0 dev 16 function 0: Realtek 8139 10/100BaseTX [...]

  • controller SATA PCI:

brucaliffo# dmesg | grep -i adaptec satalink0: Adaptec AAR-1210SA serial ATA RAID controller (rev. 0x02) [...]

  • scheda video:

brucaliffo# dmesg | grep -i nvidia vga1 at pci1 dev 0 function 0: NVIDIA RIVA TNT (rev. 0x04) [...]

  • scheda audio:

brucaliffo# dmesg | grep -i ensoniq eap0 at pci0 dev 18 function 0: Ensoniq AudioPCI (rev. 0x01) [...]

  • hard disk:

brucaliffo# dmesg | grep -E "^wd0 " wd0 at atabus2 drive 0: <MAXTOR STM3160211AS> [...]

Ottimo, tutto l'hardware è stato rilevato correttamente.

L'opzione -i che abbiamo dato a grep significa ignore-case quindi ignora maiuscole e minuscole. Di default infatti grep rispetta maiuscole e minuscole (case-sensitive).

L'opzione -E serve per le regexp (regular expression), infatti quella tra doppi apici è una regexp, il "coppo" (^) significa che quello che cerchiamo deve stare all'inizio della riga, lo spazio invece significa che dopo wd0 che si deve trovare all'inizio della riga ci deve essere uno spazio. Non vi preoccupate se non avete capito questa regexp, sono un po' ostiche all'inizio, per maggiori informazioni digitate un bel info grep.

Per leggere documentazione infatti non esiste soltanto man; man di solito è piuttosto scarno, descrive le varie opzioni del programma, ne dà una breve descrizione ma nulla in più. Con info(1) infatti possiamo leggere tutta la documentazione nel formato Info (vedere texinfo(5) se si è ancora più curiosi). Anche usare info non è difficile, però lo proveremo dopo quando ci siamo fatti uno user.

Nuovo utente

Non aspettiamo allora e creiamo subito uno user! (Sostituire <shell> con una shell, per esempio /bin/ksh, <"Nome e Cognome" dell'utente> con il vostro Nome e Cognome, <utente> con il nuovo nome dell'utente, per esempio leot, o claudio, o quello che volete.

brucaliffo# useradd -m -G wheel -s <shell> -c <"Nome e Cognome" dell'utente> <utente> [...]

Scegliamo ora una buona password per quest'utente con:

brucaliffo# passwd <utente> [...]

Descrivo un brevemente questi due comandi utilissimi che di norma vanno fatti subito dopo ogni installazione di NetBSD. Allora il comando passwd(1) (passwd non password!) si commenta da solo, cambia la password di quell'utente dato come argomento (omettendo l'argomento cambia la password del nostro utente, in questo caso l'utente root).

Per quanto riguarda useradd(8) crea l'utente. L'opzione -m sta per creami una /home; la /home è la directory in cui stanno tutti i file di quell'utente e quindi tutti i vari documenti, le varie configurazione che riguardano quell'utente. È la directory (cartella) personale dell'user, vedremo più tardi come manipolare file e cartelle. L'opzione -G invece significa aggiungi questo utente a questo/questi gruppo/gruppi, sotto Unix infatti esistono i gruppi, un file ha sempre un propietario (l'utente) ed un gruppo. In NetBSD il gruppo di default per tutti gli utenti si chiama users. Possiamo ad esempio permettere a tutti gli utenti del gruppo users di vedere un nostro file solo in lettura.
Il gruppo wheel invece esiste in tutti i sistemi *BSD, è molto utile, infatti certi software, come ad esempio su(1) (tool che serve per cambiare utente, lo vedremo in seguito) non possono essere eseguiti se non si fa parte del gruppo wheel. L'opzione -s è il tipo di shell di quell'utente, le shell installate di default sono ksh, sh e csh, quindi queste sono sempre valide. Se installate si possono impostare anche altre shell, ce ne sono moltissime.
L'opzione -c è il commento per quell'utente, di norma Nome e Cognome, può far comodo ad alcuni software ma di certo non è indispensabile, omettetelo tranquillamente se non avete voglia di commentare quello user. L'ultimo argomento ed anche il più importante è il nome dell'utente.

Primo login con il nuovo utente

Ok, ora abbiamo un utente, lasciamo la shell root così come è e spostiamoci in un altro terminale con C-M-F2 (Control + Alt + F2), facciamo la stessa procedura che abbiamo fatto con l'utente root. quindi:

NetBSD/i386 (brucaliffo) (ttyE1)

login: leot Password: Last login: Tue Jul 24 10:48:57 2007 on ttyE2 Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005

   The NetBSD Foundation, Inc. All rights reserved.

Copyright (c) 1982, 1986, 1989, 1991, 1993

   The Regents of the University of California. All rights reserved.

NetBSD 3.1 (LEOT) #0: Mon Jul 23 15:08:50 CEST 2007

Welcome to NetBSD!

Terminal type is wsvt25. leot@brucaliffo$ _ [...]

Benissimo, siamo riusciti a loggarci con successo, spostiamoci ora sul primo terminale (C-M-F1) per fare il logout dell'utente root:

brucaliffo# exit [...]

Con exit abbiamo fatto il logout, un ottima alternativa ad exit leggermente più rapida in ksh (e altre shell) è C-d (Ctrl + d).

Siccome non siamo sicuri che ci siamo loggati con il nostro utente vogliamo una conferma con who(1):

leot@brucaliffo$ who am i leot ttyE1 Jul 24 12:48 [...]

Possiamo anche vedere tutti gli utenti loggati semplicemente con un who, in questo caso abbiamo root loggato sul primo terminale e leot loggato sul quarto terminale:

leot@brucaliffo$ who root console Jul 24 13:00 leot ttyE3 Jul 24 12:51 [...]

Un altro comando simile a who ma non uguale è w(1):

leot@brucaliffo$ w

2:11PM  up 15 mins, 2 users, load avarages: 0.47, 0.24, 0.17

USER TTY FROM LOGIN@ IDLE WHAT leot console - 1:59PM 0 w leot ttyp0 192.168.1.4 2:10PM 1 emacs [...]

Da come si può osservare con w possiamo anche vedere quello che sta facendo l'utente, nell'esempio l'utente leot (che sta sulla macchina fisicamente) sta sul primo terminale e sta eseguendo w, il secondo utente è sempre leot, solo che proviene da bianconiglio (192.168.1.4) e sta eseguendo emacs.

Sappiamo le basi, giusto per un login e logout, impariamo ora a manipolare file e directory.
Creiamo una directory, il comando per creare una directory è mkdir(1), per vedere invece il contenuto di una directory esiste il comando ls(1), invece per capire il percorso in cui siamo posizionati il tool di cui abbiamo bisogno è pwd(1):

leot@brucaliffo$ mkdir data leot@brucaliffo$ ls data leot@brucaliffo$ pwd /home/leot [...]

Impariamo ora a muoverci tra le cartelle:

leot@brucaliffo$ cd data leot@brucaliffo$ pwd /home/leot/data leot@brucaliffo$ cd . leot@brucaliffo$ pwd /home/leot/data leot@brucaliffo$ mkdir documenti && mkdir work && mkdir documenti/personali leot@brucaliffo$ ls documenti work leot@brucaliffo$ ls .. data leot@brucaliffo$ cd .. leot@brucaliffo$ ls data leot@brucaliffo$ cd data/documenti leot@brucaliffo$ ls personali leot@brucaliffo$ cd ../.. leot@brucaliffo$ ls data leot@brucaliffo$ pwd /home/leot leot@brucaliffo$ cd .. leot@brucaliffo$ ls leot leot@brucaliffo$ cd / leot@brucaliffo$ pwd / leot@brucaliffo$ cd leot@brucaliffo$ pwd /home/leot [...]

Possiamo vedere che non è difficile spostarsi tra le directory, può essere utilissimo l'uso del tasto TAB che autocompleta le directory e volendo anche i programmi in certe shell. ksh supporta l'autocompletamento.

Impariamo ora a rimuovere le directory che avevamo creato, il comando per rimuovere una cartella vuota si chiama rmdir(1):

leot@brucaliffo$ cd $HOME/data leot@brucaliffo$ ls -1 documenti work leot@brucaliffo$ rmdir work leot@brucaliffo$ ls documenti [...]

Le cartelle fanno molto comodo per tenere ordinati i nostri file, ma dobbiamo imparare a modificare i file, magari file di testo. I tool che ci servono sono diversi, prima di tutto touch(1) per creare un file vuoto, cat(1) che serve per stampare l'output di un file, vi(1) l'editor installato di default su NetBSD, un editor quindi da conoscere, almeno le basi, non voglio aggiungere molto su Vi perché su Guida di NetBSD c'è un ottima sezione sull'editor Vi e sull'editing di base con Vi. Se vi colpisce Vi, consiglio di provare nVi e Vim, sono dei cloni di Vi con diverse funzionalità (Vi è un editor di base minimale ma ha molte funzioni, nVi e Vim</code> hanno varie caratteristiche e sono ancora più potenti dell'editor Vi). Un altro editor sicuramente da provare è GNU Emacs scritto da Richard Stallman (RMS continua ancora con lo sviluppo di Emacs ma ci sono un sacco di contributi da parte di altri developer e user).

Altro tool utile che ci serve oltre all'editor Vi' è file(1) che serve a determinare il tipo di file (per esempio un file di testo o anche un video, un immagine...).
Un altro tool simile a cat(1) che useremo sarà head(1) che stampa le prime righe di un file, simile a tail(1) che invece stampa le righe partendo dalla fine.
Useremo anche echo(1) per scrivere del testo.

leot@brucaliffo$ touch dmesgfile.txt leot@brucaliffo$ ls dmesgfile.txt leot@brucaliffo$ file dmesgfile.txt dmesgfile.txt: empty leot@brucaliffo$ vi dmesgfile.txt [...]

(premiamo ora "i" per andare in modalità inserimento)

Of course it runs NetBSD. [...]

(premiamo ora "ESC" per uscire dalla modalità inserimento)
(scriviamo :wq per salvare (w) e uscire (q))

leot@brucaliffo$ cat dmesgfile.txt Of course it runs NetBSD. leot@brucaliffo$ dmesg > dmesgfile.txt leot@brucaliffo$ head -n 1 dmesgfile.txt NetBSD 3.1 (LEOT) #0: Mon Jul 23 15:08:50 CEST 2007 leot@brucaliffo$ echo "NetBSD/toaster: we wish the toaster to be happy too." NetBSD/toaster: we wish the toaster to be happy too. leot@brucaliffo$ echo "NetBSD/toaster: we wish the toaster to be happy too." >> dmesgfile.txt leot@brucaliffo$ tail -n 2 dmesgfile.txt wsdisplay0: screen 4 added (80x25, vt100 emulation) NetBSD/toaster: we wish the toaster to be happy too. [...]

L'esempio qui sopra è piuttosto semplice, l'unica cosa un po' strana è > che serve per dirigere l'output su quel file. Abbiamo usato anche >>, cioè append, proprio per appendere del testo (infatti quando abbiamo fatto il dmesg > file quello che avevamo precedentemente scritto è stato sovrascritto, con l'append invece se il file esiste lo "appende" alla fine).

Suggerimenti per migliorare l'articolo

  • Estendere e terminare la trattazione dei tool di base
  • Cominciare la gestione del sistema attraverso la messa a punto dei file di configurazione (con particolare enfasi sul file rc.conf(5))
  • Una basilare buona introduzione al sistema dei pacchetti completa il percorso base dell'utente che può quindi passare alla lettura integrale della Guida di NetBSD.
Strumenti personali