l’essenza di unix - apogeonline.com · capitolo 1 l’essenza di unix dominion consulting è una...

29
CAPITOLO 1 L’essenza di UNIX Dominion Consulting è una società specializzata in sistemi di gestione per grandi alberghi e strutture turistiche. I suoi fondatori, Eli Addison e Carmen Scott, a un certo punto si rendono conto che sarebbe necessario un sistema informatico interno che per- metta ai dipendenti di svolgere il lavoro come gruppo. UNIX è un sistema operativo concepito per lo sviluppo di software in collaborazione e per consentire ai vari utenti di lavorare insieme e condividere informazioni in modo controllato. Dominion vi ha chiesto di imparare a utilizzare il sistema UNIX, cercando in particolare di apprendere le nozioni di base relative ai sistemi operativi in generale e di UNIX in modo più specifico. Essi quindi vi chiedono di accedere a UNIX e di imparare a utilizzare alcuni comandi fondamentali. Caso Cap01d.p65 15/12/00, 9.55 1

Upload: hoangnhu

Post on 03-May-2018

222 views

Category:

Documents


2 download

TRANSCRIPT

CAPITOLO 1

L’essenzadi UNIX

Dominion Consulting è una società specializzata in sistemi digestione per grandi alberghi e strutture turistiche. I suoi fondatori,Eli Addison e Carmen Scott, a un certo punto si rendono contoche sarebbe necessario un sistema informatico interno che per-metta ai dipendenti di svolgere il lavoro come gruppo. UNIX èun sistema operativo concepito per lo sviluppo di software incollaborazione e per consentire ai vari utenti di lavorare insiemee condividere informazioni in modo controllato. Dominion viha chiesto di imparare a utilizzare il sistema UNIX, cercando inparticolare di apprendere le nozioni di base relative ai sistemioperativi in generale e di UNIX in modo più specifico. Essi quindivi chiedono di accedere a UNIX e di imparare a utilizzare alcunicomandi fondamentali.

Caso

Cap01d.p65 15/12/00, 9.551

2 CAPITOLO 1

SEZIONE A

Primi passi

Obiettivi

• Definizione dei sistemi operativi in generale e di UNIX in particolare• Descrizione di Linux e del suo rapporto con UNIX• Spiegazione della funzione della shell di UNIX• Descrizione delle opzioni per la connessione a un sistema UNIX• Definizione della sintassi usata per l’immissione di comandi UNIX• Uso dei comandi date, cal, who, man, whatis e clear• Esecuzione di alcune operazioni di base di editing sulla linea di comando• Immissione di più comandi sulla stessa linea di comando• Richiamo di un comando dalla cronologia dei comandi• Connessione e disconnessione da UNIX

Questo capitolo offre un’introduzione a UNIX e ad alcuni suoi comandi di base, spiegan-do inoltre come utilizzare Linux per imparare UNIX. Linux è una variante di UNIX che èpossibile eseguire su PC con processore Intel e che utilizza il medesimo file system e glistessi comandi di UNIX, che in genere viene eseguito su una rete.

Dopo aver analizzato le informazioni di fondo essenziali di questo capitolo, inizieretea lavorare con UNIX; se avete già una certa dimestichezza con i sistemi operativi in gene-rale, parte di questo discorso introduttivo allora potrebbe rappresentare un’occasione dirivedere quanto già conoscete. Questo capitolo offre anche molte opportunità di fare pra-tica sul campo con i comandi UNIX, principalmente nel contesto del caso descritto inapertura, che rispecchia una situazione realistica per le attività di questo capitolo. Impare-rete pertanto a utilizzare diversi comandi di base in modo da raggiungere gli obiettivirichiesti in questo caso di studio.

Introduzione ai sistemi operativiUn sistema operativo (SO) è il programma più importante che viene eseguito su un com-puter. I sistemi operativi permettono di memorizzare informazioni, elaborare dati grezzi,utilizzare software applicativo, compilare programmi e accedere all’hardware collegato alcomputer, come una stampante o la tastiera. In breve il sistema operativo è il programmapiù importante ed essenziale del computer, in quanto ne controlla tutte le risorse e forniscela base sulla quale è possibile eseguire programmi applicativi o scriverne di propri. LaFigura 1.1 mostra un modello di sistema operativo.

Cap01d.p65 15/12/00, 9.552

L’ESSENZA DI UNIX 3

Diversi sistemi di computer possono avere diversi sistemi operativi. Per esempio, isistemi operativi più noti per i personal computer sono DOS, OS/2 e Windows, mentre imainframe possono utilizzare il sistema operativo VAX di Digital Equipment o il System370 di IBM. Anche per le reti esistono sistemi operativi specifici, come Linux e WindowsNT. UNIX è il sistema operativo più importante per workstation, ossia potenti computermonoutente interconnessi attraverso una rete locale.

Sistemi operativi per PCUn personal computer o PC è in genere una macchina indipendente, come un computerdesktop o portatile. Il sistema operativo del PC quindi svolge tutte le operazioni di input,output, elaborazione e memorizzazione su un singolo computer. La Figura 1.2 identificaalcuni dei più noti sistemi operativi per PC.

Sistemi operativi per mainframeUn sistema operativo per mainframe controlla un sistema mainframe, ossia un grandesistema con più processori che svolgono operazioni di input, output, elaborazione ememorizzazione per molti utenti. Storicamente i mainframe sono sempre stati diffusi nellegrandi aziende e per l’elaborazione a livello industriale. La Figura 1.3 mostra alcuni dei piùdiffusi sistemi operativi per mainframe.

Sistemi operativi di reteUn rete di computer combina la praticità e la familiarità dei personal computer con lapotenza di elaborazione dei mainframe; una rete infatti permette a più utenti di condivide-re risorse e file. Un sistema operativo di rete controlla le operazioni di un computer server,a volte chiamato anche computer host, che accetta richieste dai programmi degli utenti in

Hardware

monitor tastiera mouse stampante disco

Sistema operativo

programmatori programmi applicativi utenti

Figura 1.1 Modello di sistema operativo.

Cap01d.p65 15/12/00, 9.553

4 CAPITOLO 1

esecuzione su altre macchine, chiamate client. La Figura 1.4 illustra il rapporto esistentetra server e client di una rete.

In un approccio centralizzato tutti i dati e le applicazioni degli utenti si trovano sulserver, pertanto questa rete prende il nome di rete con server. L’amministratore del sistemaprotegge tutte le informazioni della rete proteggendo il server e può eseguire facilmente leoperazioni di manutenzione delle applicazioni degli utenti e il backup agendo direttamen-te sul server. Se però il server si guasta, tutta la rete è bloccata.

Le reti peer-to-peer, più adatte alle reti di piccole dimensioni, sono più distribuiterispetto alle reti con server. In una configurazione peer-to-peer ogni sistema della rete sicomporta sia come server sia come client e i dati e le applicazioni non sono poste suun’unità centrale, bensì sono dislocate sui singoli sistemi della rete. Gli aggiornamenti delsoftware e le operazioni di backup devono avvenire localmente su ciascun computer. La

Figura 1.2 Alcuni dei più noti sistemi operativi per PC.

Figura 1.3 Sistemi operativi per mainframe.

Cap01d.p65 15/12/00, 9.554

L’ESSENZA DI UNIX 5

protezione viene implementata su ciascun computer e pertanto non è uniforme, perchéogni utente della rete è in una certa misura responsabile dell’amministrazione del propriosistema. Nonostante gli svantaggi che una rete peer-to-peer rappresenta per l’amministra-tore del sistema, i singoli utenti non dipendono da un server centrale, quindi se un compu-ter della rete si guasta, gli altri sistemi continuano a funzionare senza problemi.

Introduzione al sistema operativo UNIXUNIX è un sistema operativo multiutente e multitasking con funzioni di rete integrate epuò essere utilizzato su sistemi che hanno diverse funzioni.• Come server dedicati in una rete con server.• Come workstation client collegate a una rete con server.• Come workstation client/server collegate a una rete peer-to-peer.• Come workstation indipendenti non collegate a una rete.

UNIX è un sistema multiutente che permette a più persone di accederecontemporaneamente e condividere le risorse di un server. Gli utenti devono connettersidigitando il loro nome utente e una password prima di poter usare un sistema multiutente;questa procedura di convalida protegge la riservatezza di ogni utente e salvaguarda il sistemadagli usi non autorizzati. Nel caso di UNIX si parla anche di sistema multitasking perchéconsente di eseguire più di un programma allo stesso tempo; per esempio, è possibileaggiornare i record di un database mentre la stampa del documento avviene in background.

UNIX è anche un sistema operativo portabile, il che significa che può essere utilizzatosu diversi ambienti di elaborazione. UNIX viene infatti eseguito con una varietà di computermaggiore rispetto alle possibilità offerte da altri sistemi operativi. Viene anche eseguito suInternet per regolare programmi molti diffusi come File Transfer Protocol (FTP), unprotocollo Internet utilizzato per l’invio di file, e Telnet, un programma Internet di emulazionedi terminale. Dominion Consulting ha scelto UNIX come sistema operativo per il propriosistema informatico perché molti dei suoi dipendenti devono lavorare su più computerche svolgono contemporaneamente attività diverse.

Figura 1.4 Rapporto tra server e client su una rete.

Cap01d.p65 15/12/00, 9.555

6 CAPITOLO 1

Breve storia di UNIXLo sviluppo originale di UNIX all’inizio degli anni Settanta si deve a un gruppo di pro-grammatori dei Bell Labs, che distribuirono il sistema operativo sotto forma di codicesorgente in modo che chiunque utilizzasse UNIX potesse personalizzarlo in base alle pro-prie esigenze. Attratte dalla sua portabilità e dal basso costo, le università iniziarono amodificare il codice di UNIX per farlo funzionare su computer diversi, il che alla fineportò a due versioni standard del sistema: AT&T produsse il System V mentre la Universityof California di Berkeley sviluppò il BSD. Dato che sfrutta caratteristiche di entrambe leversioni, Linux può essere considerato una versione più integrata di UNIX rispetto ai suoipredecessori. Attualmente il progetto POSIX, uno sforzo combinato di esperti del mondodell’industria, dell’ambiente accademico e del governo, sta lavorando alla standardizzazio-ne di UNIX.

Concetti di UNIXUNIX è stato un pioniere nella diffusione di concetti che poi sono stati applicati ad altrisistemi operativi. Per esempio, i sistemi DOS e Windows di Microsoft hanno adottatodei concetti del progetto originale di UNIX, come l’idea di shell, un’interfaccia tra l’utentee il sistema operativo, e la struttura gerarchica di directory e sottodirectory.

Anche il concetto di componenti stratificati che costituiscono un sistema operativo haavuto origine con UNIX. Gli strati di software circondano il nucleo interno del computerper proteggere i suoi componenti hardware e software vitali e per isolare il nucleo delsistema dai suoi utenti. La Figura 1.5 illustra la struttura piramidale formata dagli strati delsistema UNIX.

Alla base della piramide troviamo l’hardware, al vertice gli utenti; gli strati fornisconoisolamento, garantendo la sicurezza del sistema e la riservatezza dell’utente. Il kernel è il

Figura 1.5 Strati di un sistema UNIX.

Hardware

Sistema operativo UNIX (kernel)

Shell

Utentiaccessoin modalitàutente

accesso inmodalità kernel

Cap01d.p65 15/12/00, 9.556

L’ESSENZA DI UNIX 7

sistema operativo di base, che interagisce direttamente con l’hardware e fornisce servizi aiprogrammi degli utenti: è accessibile solo tramite la modalità kernel, che è riservata al-l’amministratore di sistema. Ciò impedisce a comandi non autorizzati di passare allo stratodi fondazione o all’hardware che sostiene l’intera struttura di UNIX. La modalità utentefornice l’accesso agli strati superiori, nei quali si trova tutto il software applicativo.

Questo approccio stratificato, come tutte le altre caratteristiche di UNIX, è stato con-cepito da programmatori in modo che i programmatori lo utilizzassero nello sviluppo disoftware complesso. Dato che UNIX è stato scritto nel linguaggio di programmazione C,esso può essere installato su qualunque computer che disponga di un compilatore C. Lasua portabilità, flessibilità e potenza fanno di UNIX una scelta logica per i sistemi operati-vi di rete. E grazie all’emergere di una nuova versione per PC chiamata Linux, la popolaritàdi UNIX è in aumento.

Linux e UNIXLinux è un sistema operativo di tipo UNIX che venne rilasciato al pubblico gratuitamentenel 1991 da parte di Linus Torvalds, il suo ideatore originale. Attualmente invece esistonomolte società che distribuiscono versioni professionali di Linux.

Linux offre tutta la complessità di UNIX a costo zero: è abbastanza robusto da gestireattività impegnative con tutte le funzionalità di rete delle versioni commerciali di UNIX.Potete installare Linux su un PC, dove può coesistere con altri sistemi operativi, e metterealla prova la vostra capacità di utilizzare UNIX. Tutte queste caratteristiche rendono Linuxun modo eccellente per imparare UNIX, anche quando si ha accesso ad altri computer cheeseguono UNIX.

Introduzione alle shell di UNIXLa shell è un programma UNIX che interpreta i comandi immessi dalla tastiera. UNIXoffre diverse shell, tra le quali citiamo la shell Bourne, la shell Korn e la shell C. Fu SteveBourne agli AT&T Bell Laboratories a sviluppare la shell Bourne come primo elaboratoredi comandi per UNIX. Un altro dipendente dei Bell Labs, David Korn, sviluppò invece lashell Korn: quest’ultima, compatibile con la shell Bourne, include molte estensioni, comeuna funzione cronologica che permette di utilizzare una combinazione rapida di tasti perrieseguire comandi immessi in precedenza. La shell C invece è concepita per i programma-tori C. Linux utilizza la shell Bash freeware come interprete dei comandi predefinito; ilsuo nome è l’acronimo di “Bourne Again Shell” e include le caratteristiche migliori delleshell Korn e Bourne. Indipendentemente dalla shell utilizzata, la vostra comunicazionecon UNIX avverrà sempre tramite l’interprete shell. La Figura 1.6 mostra il ruolo dellashell nel sistema operativo UNIX.

Scelta della shellPrima di lavorare con un sistema UNIX dovete determinare quale shell utilizzerete comeinterprete dei comandi. Le shell fanno molto di più che interpretare comandi: ciascuna diesse è dotata di una serie completa di comandi integrati che in pratica la trasformano in unlinguaggio di programmazione di prima classe (questo argomento verrà trattato in modoapprofondito nei Capitoli 6 e 7). La scelta della shell avviene quando l’amministratore delsistema configura l’account utente. La maggior parte degli utenti sceglie la shell Bash,sebbene sia possibile scegliere una delle seguenti:

Cap01d.p65 15/12/00, 9.557

8 CAPITOLO 1

• Bourne• Korn• Shell C• Bash• tcsh (una shell freeware derivata dalla shell C)• zsh (una shell freeware derivata dalla shell Korn)

Passaggio da una shell all’altraDopo aver scelto la shell, l’amministratore del sistema memorizza la vostra scelta nel re-cord del vostro account ed essa diventa la shell a voi assegnata: UNIX la utilizzerà ognivolta che accedete al sistema. Tuttavia potete passare da una shell a un’altra digitando ilnome della shell (come tcsh, bash o zsh) sulla linea di comando e continuando a lavorarein essa fino al prossimo accesso o fin quando digitate un altro nome di shell sulla linea dicomando. Molti utenti usano una shell per la realizzazione degli script di shell (program-mi) e un’altra per interagire con i programmi.

Scelta di nome utente e passwordPrima di poter lavorare con UNIX e i suoi programmi è necessario accedere al sistemafornendo un nome utente e una password unici. Dovete pertanto decidere un nome chedesiderate utilizzare per identificarvi al sistema UNIX, come per esempio “aquinn”. Que-sto è il lo stesso nome che gli altri utenti del sistema UNIX useranno per inviarvi posta

Figura 1.6 Rapporto della shell con l’utente e l’hardware.

utenti

Shell

Sistema operativoUNIX

input

output

Cap01d.p65 15/12/00, 9.558

L’ESSENZA DI UNIX 9

elettronica. UNIX riconosce solo i primi otto caratteri di un nome utente, pertanto occor-re scegliere un nome che rientri in questa lunghezza massima.

Dovete anche scegliere una password, che deve contenere un minimo di cinque carat-teri e deve risultare facile da ricordare per voi ma difficile per gli altri da indovinare, comela vostra data di nascita scritta in un misto di lettere maiuscole e minuscole, cifre e trattini.La password può contenere lettere, numeri, simboli di punteggiatura ma non caratteri dicontrollo.

Potete accedere a qualunque sistema UNIX o Linux a patto di disporre di un accountutente e di una password sul computer host (server). L’amministratore di un sistema UNIXcrea il vostro account aggiungendo il vostro nome utente (chiamato anche nome di login ouser id) e la password. Per utilizzare questo libro e le esercitazioni pratiche, dovete connet-tervi e stabilire un account su un sistema UNIX o Linux utilizzando uno dei metodi se-guenti:• Tramite una connessione Telnet a un computer remoto.• Come client su una rete UNIX client/server.• Come peer su una rete locale peer-to-peer in cui ogni computer utilizza il sistema

operativo Linux.• Su un PC indipendente che utilizza il sistema operativo Linux.• Tramite un terminale di accesso, come un terminale Wyse, collegato a una porta di

comunicazione di un host UNIX.I passi da compiere per connettersi a un sistema UNIX variano in relazione al tipo di

connessione utilizzata. La più semplice è quella di un terminale utente che presenta ilprompt di accesso non appena lo si accende. Potete anche accedere a Internet tramite unprovider di accesso (ISP, Internet Service Provider) e connettervi a un host UNIX remoto.

Connessione a UNIX con TelnetTelnet è un programma di emulazione terminale per Internet che viene eseguito sul pro-prio computer e connette il PC a un server, o host, UNIX sulla rete, al quale è possibileaccedere per iniziare a lavorare con UNIX.

Ogni computer su Internet ha un indirizzo Internet Protocol (IP), un set di quattronumeri separati da punti, come 172.16.1.61. La maggior parte dei sistemi su Internet haanche un nome di dominio, come Lunar.campus.edu. Sia l’indirizzo IP sia il nome didominio identificano un sistema sulla rete e i programmi come Telnet utilizzano entrambele informazioni per accedere a sistemi remoti.

Accesso a un host UNIX tramite Telnet

1 Trovate l’indirizzo IP o il nome di dominio dell’host remoto.2 Connettetevi a Internet, se necessario. Se utilizzate una connessione PPP per l’ac-

cesso a un ISP, stabilite la connessione. Se invece al lavoro o a scuola disponete diuna connessione a Internet permanente, ignorate questo passaggio.

3 Avviate il programma Telnet e connettetevi al sistema UNIX.

(continua)

Cap01d.p65 15/12/00, 9.559

10 CAPITOLO 1

Seguite le istruzioni del programma Telnet per connettervi a un host remoto. Ingenere occorre fornire il nome dell’host per connettersi a un sistema UNIX. Peresempio, è possibile digitare il comando seguente dopo il prompt di una finestraMS-DOS di Windows 95/98 per accedere al sistema Lunar.campus.edu.

telnet Lunar.campus.edu

Accesso a UNIXUna volta connessi a un sistema UNIX, è necessario accedere fornendo il nome utente e lapassword. Apparirà un prompt che richiede il login o il nome utente e la password; permotivi di sicurezza quest’ultima non è visibile su schermo mentre la digitate. Non potreteaccedere senza un account utente autorizzato, se la password non è valida o se aspettatetroppo prima di immettere il nome e la password. In tal caso contattate l’amministratoredel sistema per ottenere aiuto.

Una volta avvenuto l’accesso, siete pronti per iniziare a usare il sistema.

Inserimento di comandiPer interagire con UNIX si inserisce un comando, ossia del testo digitato dopo il promptdei comandi e seguito dalla pressione del testo Invio. UNIX è un sistema case-sensitive,ossia distingue tra lettere maiuscole e minuscole, pertanto John è diverso da john: la mag-gior parte dei comandi UNIX è in minuscolo. I comandi sono suddivisi in due categorie:comandi di livello utente digitati per svolgere un’operazione, come il recupero di informa-zioni o la comunicazione con altri utenti, e comandi di amministrazione del sistema, uti-lizzati dall’amministratore per la gestione del sistema.

Dovete conoscere la sintassi di un comando per inserirlo correttamente, ossia il for-mato e le parole che contiene, così come gli argomenti e le opzioni utilizzabili per estende-re e modificare le sue funzioni. La maggior parte dei comandi è costituito da una solaparola, come clear. Se inserite un comando con la sintassi corretta, UNIX lo esegue,altrimenti ricevete un messaggio che indica che il sistema non è in grado di interpretarlo.

○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

L’Appendice B presenta l’elenco alfabetico di tutti i comandi di questo libro e indica come

○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

inserirli e utilizzare le loro diverse opzioni.

Il punto dello schermo in cui digitate il comando prende il nome di linea di comando.Ecco la sintassi generale dei comandi:

Sintassi nome_comandonome_comandonome_comandonome_comandonome_comando [-opzioni] [argomenti]

Analisi • nome_comandonome_comandonome_comandonome_comandonome_comando specifica quale operazione eseguire. Nelle illustrazioni di sintassidi questo libro il nome dei comandi appare in grassetto.

• Le opzioniopzioniopzioniopzioniopzioni sono modi per richiedere a UNIX di eseguire un comando inuno stile o secondo una variante specifici. Le opzioni seguono i nomi deicomandi separati da uno spazio e iniziano sempre con un trattino (-). Anchele opzioni distinguono tra maiuscolo e minuscolo, quindi -R è diverso da –r.

Cap01d.p65 15/12/00, 9.5510

L’ESSENZA DI UNIX 11

Non è obbligatorio digitare un’opzione dopo ogni comando: alcuni perònon funzionano a meno di specificare un’opzione. Nelle illustrazioni di sintassidi questo libro le opzioni sono indicate tra parentesi quadre ([]) quando ilcomando non le richiede.

• Gli argomentiargomentiargomentiargomentiargomenti seguono le opzioni dei comandi separate da uno spazio: ingenere si tratta di nomi di file e di directory. Nelle illustrazioni di sintassi diquesto libro gli argomenti sono indicati in corsivo e sono racchiusi tra parentesiquadre se l’argomento non li richiede.

Il comando dateIl comando date dì UNIX può essere usato per visualizzare la data di sistema, mantenutadall’amministratore. Dato che la data e l’ora su un sistema multiutente sono fondamentaliper un’elaborazione il più possibile fluida, solo l’amministratore del sistema può modifica-re la data. Il vostro addestramento alla Dominion Consulting inizia con un controllo delladata di sistema.

Visualizzazione della data di sistema

1 Digitate date sulla linea di comando e premete Invio; apparirà una data come quel-la indicata sotto:

dom ott 15 17:24:09 EDT 2000

Osservate che UNIX utilizza un orologio a 24 ore.

2 Digitate Date sulla linea di comando e premete Invio; apparirà il seguente mes-saggio di errore generato dal sistema:

bash: Date: command not found

Il messaggio di errore di sistema appare perché il comando date, come la maggiorparte dei comandi UNIX, dev’essere digitato in minuscolo.

Il comando date ha un’opzione, -u, che visualizza la data del meridiano di Greenwich.

Visualizzazione della data di sistema

• Digitate date -u sulla linea di comando e premete Invio; apparirà un data comequella riportata sotto:

dom ott 15 21:29:50 UTC 2000

Il comando calIl comando cal visualizza il calendario del sistema. Il vostro manager alla DominionConsulting, Rolfe Williams, vi avverte che questo è il comando normalmente utilizzatoper pianificare attività ed eventi.

Cap01d.p65 15/12/00, 9.5511

12 CAPITOLO 1

Visualizzazione del calendario di sistema predefinito

1 Digitate cal sulla linea di comando e premete Invio; senza alcuna opzione, il co-mando cal mostra un calendario del mese corrente: supponendo che il mese cor-rente sia luglio 2000, apparirà il calendario predefinito della Figura 1.7.

Figura 1.7 Esempio di comando cal (mese corrente).

2 Digitate cal –j 2000 sulla linea di comando e premete Invio; l’opzione –j vi-sualizza il formato di data giuliano, ossia mostra i giorni numerandoli da 1 a 366,come mostrato nella Figura 1.8.

Figura 1.8 Esempio di comando cal (anno completo, date in formato giuliano).

Cap01d.p65 15/12/00, 9.5512

L’ESSENZA DI UNIX 13

3 Per determinare il giorno della settimana in cui è stata firmata la Dichiarazionedi indipendenza degli Stati Uniti, digitate cal 7 1776 sulla linea di comando e pre-mete Invio. Apparirà un calendario simile a quello della Figura 1.9. In questo casogli argomenti sulla linea di comando sono il mese e l’anno.

○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

Se digitate cal may 1998 apparirà un messaggio di errore perché dovete utilizzare i nu-

○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

meri per indicare i mesi, per esempio 5 per maggio.

cal: illegal month value: use 1-12

Figura 1.9 Esempio di comando cal (luglio 1776).

Il comando whoIn un sistema multiutente può essere utile sapere chi è connesso al sistema. Il comandowho permette di sapere chi sta utilizzando il sistema e la relativa posizione. Alla DominionConsulting who è un comando utile per conoscere i colleghi.

Uso del comando who per determinare chi è connesso al sistema

1 Digitate who sulla linea di comando e premete Invio.2 Apparirà un elenco che riporta i nomi degli utenti, i terminali che stanno usan-

do e le date e ore in cui sono avvenute le connessioni.

root tty1 Aug 12 07:56

ellen tty1 Aug 12 08:15

john tty2 Aug 12 08:15

jerry tty3 Aug 12 08:21

(continua)

Cap01d.p65 15/12/00, 9.5513

14 CAPITOLO 1

3 Per visualizzare una linea di intestazioni di colonna con l’output del comando who,digitate who –H e premete Invio. Apparirà un elenco come il seguente:

USER LINE LOGIN-TIME FROM

root tty1 Aug 12 07:56

ellen tty1 Aug 12 08:15

john tty2 Aug 12 08:15

jerry tty3 Aug 12 08:21

Se qualche utente è connesso da un host remoto, la colonna FROM mostra il nomedell’host.

4 Il tempo di inattività (idle time) è la quantità di tempo trascorsa senza alcuna at-tività in una sessione utente. Digitate who –i e premete Invio per vedere il tem-po di inattività di ogni utente. Apparirà un elenco simile al seguente:

root tty1 Aug 12 07:56 00:29

ellen tty1 Aug 12 08:15 .

john tty2 Aug 12 08:15 00:01

jerry tty3 Aug 12 08:21 old

L’output mostra che la persona connessa come root non ha eseguito alcuna attivitànegli ultimi 29 minuti e che la sessione di John è inattiva da un minuto. Il puntosulla linea corrispondente a Ellen indica che la sua sessione è stata attiva nell’ultimominuto, mentre la parola old sulla linea di Jerry segnala l’assenza di attività nelleultime 24 ore.

5 Se desiderate utilizzare più opzioni sulla stessa linea di comando, dovete digitar-le tutte dopo un solo trattino. Per esempio, digitate who –iH e premete Invio pervedere un elenco di utenti con i tempi di inattività e le intestazioni di colonna,come mostrato nell’esempio seguente:

USER LINE LOGIN-TIME IDLE FROM

root tty1 Aug 12 07:56 00:29

ellen tty1 Aug 12 08:15 .

john tty2 Aug 12 08:15 00:01

jerry tty3 Aug 12 08:21 old

6 Digitate who –q e premete Invio per visualizzare un elenco rapido degli utenti cor-renti. Appare un elenco come quello mostrato sotto, che mostra solo i nomi diaccesso e il numero totale di utenti presenti sul sistema.

root ellen john jerry

# users=4

7 Per determinare quale terminale state utilizzando o a quale ora vi siete connessi,digitate who am I sulla linea di comando e premete Invio. Apparirà una linea similealla seguente, che mostra il vostro nome utente, il terminale e la data e l’ora di con-nessione.

Cap01d.p65 15/12/00, 9.5514

L’ESSENZA DI UNIX 15

lucky.campus.edu!ellen tty1 Aug 12 08:15

Questo output mostra che siete connessi al sistema lucky.campus.edu comeutente ellen.

○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

Tutte le volte che fornite due argomenti al comando who, vedrete l’output descritto al punto7. Per esempio, potreste digitate who sono io oppure who x x per vedere le stesse infor-mazioni. Tradizionalmente però gli utenti UNIX digitano who am I per vedere informazioni

○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

che descrivono la loro sessione.

Editing sulla linea di comandoLe shell permettono l’uso di certi tasti per eseguire l’editing sulla linea di comando. Peresempio, Bash, la shell predefinita di Linux, riconosce l’uso dei tasti freccia destra e sini-stra, che spostano il cursore sulla linea di comando. Altri tasti, usati in combinazione conCtrl o Alt, possono attivare altre operazioni di editing.

○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

Le varie shell non permettono l’editing sulla linea di comando allo stesso modo. I passag-

○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

gi che seguono sono validi per la shell Bash.

Editing di un comando digitato sulla linea di comando

1 Per determinare quale shell è in uso, digitate echo $SHELL e premete Invio. Sestate utilizzando la shell Bash, apparirà l’output seguente:

/bin/bash

Se non state usando la shell Bash, digitate bash e premete Invio.2 Digitate who am I ma non premete Invio.3 Premete il tasto freccia sinistra per spostare il cursore sulla lettera a della parola

am.4 Premete Alt+D per cancellare la parola “am”.5 Premete Ctrl+K per cancellare la linea di comando dalla posizione corrente del

cursore.6 Premete Ctrl+A per spostare il cursore all’inizio della linea di comando.7 Premete nuovamente Ctrl+K per cancellare la linea di comando .8 Digitate nuovamente who am I ma non premete Invio.9 Premete Alt+B tre volte. Osservate il cursore spostarsi al primo carattere della parola

precedente a ogni pressione della combinazione di tasti. Il cursore dovrebbe po-sizionarsi all’inizio della linea.

10 Premete Alt+F tre volte. Ogni volta il cursore si sposta alla posizione appena pre-cedente al primo carattere della parola successiva.

11 Premete Ctrl+A e poi Ctrl+K per cancellare la linea di comando.

Cap01d.p65 15/12/00, 9.5515

16 CAPITOLO 1

Inserimento di più comandiÈ possibile digitare più di un comando sulla linea di comando utilizzando il punto evirgola (;) come separatore. Quando premete Invio, UNIX esegue i comandi nell’ordine diinserimento.

Inserimento di più comandi sulla linea di comando

• Digitate date ; who –iH e premete Invio. Appariranno delle informazioni si-mili a quelle riportate sotto:

lun apr 20 21:35:09 EDT 2000

USER LINE LOGIN-TIME IDLE FROM

root tty1 Apr 20 07:56 00:29

ellen tty1 Apr 20 08:15 .

john tty2 Apr 20 08:15 00:01

jerry tty3 Apr 18 08:21 old

Il comando date produce la prima linea dell’output, mentre il resto è il risulta-to del comando who.

Il comando clearContinuando a inserire comandi uno dopo l’altro, lo schermo diventa sempre più affolla-to. A meno che non abbiate bisogno di fare riferimento ai comandi immessi in precedenzae al loro output, potete utilizzare il comando clear, che non ha né opzioni né argomenti,per cancellare lo schermo. È sufficiente digitare clear sulla linea di comando e premereInvio per fare in modo che il prompt dei comandi si posizioni nell’angolo superiore sini-stro dello schermo.

Cronologia della linea di comandoSpesso ci si ritrova a inserire lo stesso comando diverse volte in un breve lasso di tempo. Lamaggior parte delle shell mantiene un elenco dei comandi più recenti e permette di richia-mare un comando senza digitarlo nuovamente. L’accesso alla cronologia dei comandi av-viene con i tasti freccia su e freccia giù. Premendo il tasto freccia su una volta si richiamal’ultimo comando usato, premendolo due volte richiamate il penultimo e così via. Con iltasto freccia giù invece lo spostamento nella cronologia avviene in senso inverso. Una voltaindividuato il comando da eseguire, è sufficiente premere Invio.

Uso della cronologia sulla linea di comando

1 Digitate date e premete Invio.2 Digitate who e premete Invio.3 Digitate who -iH e premete Invio.4 Digitate clear e premete Invio.

Cap01d.p65 15/12/00, 9.5516

L’ESSENZA DI UNIX 17

5 Premete il tasto freccia su quattro volte; viene richiamato il comando date sullalinea di comando. Non premete Invio.

6 Premete il tasto freccia giù due volte; viene richiamato il comando who -iH sul-la linea di comando. Premete Invio per eseguirlo.

Il comando manCome riferimento UNIX include un manuale in linea che contiene tutti i comandi contanto di opzioni e argomenti. Il programma man di UNIX visualizza questo manuale inlinea, che prende il nome di pagine di manuale, per offrire una sorta di assistenza sullalinea di comando. Anche se le pagine di manuale di alcuni comandi contengano più infor-mazioni di altre, la maggior parte di esse elenca gli elementi seguenti.• Name: il nome del comando e una breve frase di descrizione del suo scopo.• Synopsis: un diagramma sintattico che mostra l’uso del comando.• Description: una descrizione del comando più dettagliata rispetto a quella fornita con

il nome.• Options: un elenco delle opzioni del comando e della loro finalità.• See Also: altri comandi o pagine di manuale che offrono informazioni correlate.• Bugs: un elenco degli errori noti del comando.

Visualizzazione della guida in linea per i comandi

1 Digitate man who sulla linea di comando e premete Invio. Apparirà la spiegazio-ne del comando who illustrata nella Figura 1.10.

Figura 1.10 Pagina di manuale.(continua)

Cap01d.p65 15/12/00, 9.5517

18 CAPITOLO 1

2 Digitate q per uscire dal programma man.3 Digitate man man e premete Invio. Apparirà la pagina di manuale di descrizione

del comando man.4 Digitate q per uscire dal programma man.

Il comando whatisA volte potreste accorgervi che le pagine di manuale contengono più informazioni di quel-le che vi occorrono. Per visualizzare un breve riepilogo di un comando, utilizzate il coman-do whatis, che mostra solo il nome e la breve descrizione che appare in testa alla pagina dimanuale del comando in questione.

Visualizzazione di una breve descrizione di un comando con whatis

1 Digitate whatis who e premete Invio.2 Apparirà un riepilogo del comando who, come mostrato qui sotto.

who (1) - show who is logged on

3 Digitate q per uscire dal programma man.

○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

Il comando whatis si affida a informazioni memorizzate in un database. L’amministratoredel sistema deve eseguire il comando makewhatis per creare il database prima che il co-mando whatis funzioni correttamente. Se il comando whatis non visualizza le informazioniriepilogative sui comandi, è probabile che l’amministratore del sistema non abbia esegui-

○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

to il comando makewhatis.

Disconnessione da UNIXAl termine della giornata di lavoro o quando lasciate il terminale per qualche ragione,dovete disconnettervi dal sistema UNIX. La disconnessione termina il vostro processocorrente e indica a UNIX che avete finito. Le modalità di disconnessione dipendono dallashell in uso. Nel caso delle shell Bourne, Korn e Bash, digitate exit sulla linea di comandoo premete Ctrl+D. Con la shell C invece dovete digitare logout.

Disconnessione da UNIX

• Sulla linea di comando digitate exit e premete Invio.

Cap01d.p65 15/12/00, 9.5518

L’ESSENZA DI UNIX 19

SEZIONE B

Ruoli dell’amministratoredi sistema e degli utenti normali

Obiettivi

• Analisi del ruolo dell’amministratore di sistema• Identificazione del prompt dei comandi dell’amministratore

e degli utenti normali• Modifica della password personale• Visualizzazione dei file sullo schermo con i comandi cat, more, less,

head e tail• Reindirizzamento dell’output a un file

Introduzione al ruolo dell’amministratoredi sistema di UNIXEsistono due tipi di utenti su un sistema UNIX: l’amministratore di sistema e gli utentinormali. Come si può intuire dal nome, l’amministratore di sistema gestisce il sistemaaggiungendo nuovi utenti, eliminando vecchi account e garantendo che il sistema svolga iservizi per tutti gli utenti in modo efficiente. Con utenti normali invece si intendono tuttigli altri utenti. L’amministratore di sistema prende anche il nome di superutente perchédispone di autorizzazioni illimitate per alterare il sistema. UNIX assegna questa autorizza-zione al momento dell’installazione iniziale del sistema, mentre l’amministratore assegnaprivilegi e autorizzazioni agli utenti normali.

L’amministratore di sistema ha un nome utente unico, root, del quale è proprietario:ciò significa che questo nome non può essere assegnato a nessun altro. La password dell’accountroot è riservata e in quanto tale è nota solo all’amministratore e ad una persona sostitutiva;se questa password viene persa o dimenticata, l’amministratore di sistema deve ricorrere auna procedura di emergenza per reimpostarla.

La linea di comando dell’amministratore di sistemaMentre gli utenti normali digitano i comandi al prompt dei comandi rappresentato dalsimbolo del dollaro ($), il prompt dell’amministratore è il simbolo del cancelletto, o diesis(#). Il sistema UNIX genera un’impostazione predefinita per il prompt dei comandi del-l’amministratore nel formato seguente:

[root@nomehost]#

dove nomehost è il nome del computer cui l’amministratore di sistema è connesso.

Cap01d.p65 15/12/00, 9.5519

20 CAPITOLO 1

La linea di comando degli utenti normaliIl segno del dollaro $ viene tradizionalmente associato agli utenti normali. Il sistema UNIXgenera un’impostazione predefinita per il prompt dei comandi degli utenti normali nelformato seguente:

[nome utente@nomehost]$

dove nome utente è il nome di accesso dell’utente, come jean, e nomehost è il nome delcomputer cui l’utente è connesso.

Modifica delle passwordIl nome utente vi identifica al sistema e potete sceglierlo e comunicarlo all’amministratore,che vi aggiungerà come nuovo utente. Come abbiamo accennato in precedenza, UNIXriconosce al massimo otto caratteri in un nome utente, che in genere è formato dal proprionome proprio o dal soprannome. Il nome utente è unico, ma non riservato, e può esserecomunicato ad altri utenti; la password invece è riservata e proteggere il vostro lavoro sulsistema. Se necessario, potete cambiare la password ricorrendo al comando passwd, chepermette anche di crearne una se non l’avete ancora.

UNIX permette di cambiare la password solo se la nuova è diversa da quella preceden-te per almeno tre caratteri, se contiene più di cinque caratteri, che comprendono almenodue lettere e un numero, e se è diversa dal nome utente.

La password che avete scelto per il sistema della Dominion, Gscott956, è troppo simi-le a un’altra password già in uso nel sistema, pertanto l’amministratore di sistema vi chiededi cambiarla.

Modifica della password

1 Digitate passwd al prompt dei comandi e premete Invio.2 Digitate la nuova password e premete Invio: la password non appare sullo schermo

durante la digitazione.3 Digitate nuovamente la password e premete Invio in modo che UNIX possa con-

fermarla.

○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

Se la password che digitate per conferma non corrisponde alla nuova password UNIX, ilsistema chiede di inserirla nuovamente. UNIX potrebbe anche chiedervi di scegliere un’altra

○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

password perché ne avete scelta una troppo breve o troppo facilmente individuabile.

Dopo aver modificato la password, dovete disconnettervi e connettervi nuovamenteper essere certi che UNIX riconosca la nuova password.

Cap01d.p65 15/12/00, 9.5520

L’ESSENZA DI UNIX 21

○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

Scrivete la password e conservatela in un posto sicuro: ne avrete bisogno ogni volta che

○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

vi connettete a UNIX.

Visualizzazione dei filecon i comandi cat, more, less, head e tailSono tre i comandi UNIX che permettono di visualizzazione il contenuto dei file: cat,more e less. Gli ultimi due visualizzano un file una schermata alla volta, mentre il comandocat mostra l’intero file in una sola volta. Esistono poi altri due comandi, head e tail, checonsentono di visualizzare le prime o le ultime linee di un file.

Il nome del comando cat deriva dalla parola concatenate, che significa collegare.Potete visualizzare più file inserendone il nome dopo il comando cat e separandoli conuno spazio. A questo punto UNIX visualizza il loro contenuto nell’ordine di inserimento.

L’amministratore di sistema della Dominion accenna al fatto che potete utilizzare catper visualizzare un file chiamato shells situato nella directory /etc, che contiene unelenco dei programmi shell validi presenti nel sistema.

Visualizzazione del file shells

1 Digitate cat /etc/shells al prompt dei comandi e premete Invio.Dovete utilizzare la barra trasversale (/) per indicare un cambio di directory o dicartella. Apparirà un elenco delle shell disponibili, tra cui /bin/bash, /bin/sh,/bin/bsh, /bin/tcsh, /bin/csh e /bin/zsh.A volte è utile vedere visualizzato il contenuto di un file con i numeri di linea. L’op-zione –n fa sì che il comando cat visualizzi un numero all’inizio di ogni linea dioutput.

2 Digitate cat –n /etc/shells e premete Invio. Apparirà lo stesso elenco di shelldi prima, tuttavia questa volta all’inizio di ogni linea compare un numero.

Potete anche visualizzare un altro file presente nella stessa directory /etc chiamatotermcap: questo file a più pagine contiene molte specifiche relative ai terminali ricono-sciuti dal sistema Linux. Il comando cat non è pratico per la visualizzazione di questo file,che è più lungo di una schermata (23 linee), tuttavia potete usare i comandi more e lessper leggerlo una schermata alla volta.

Visualizzazione su schermo dei file lunghi con il comando more

1 Digitate more /etc/termcap al prompt dei comandi e premete Invio.2 Premete la barra spaziatrice per passare alla schermata successiva. Non è possibi-

le usare il comando more per tornare a una schermata visualizzata in precedenza.3 Terminate la visualizzazione digitando q (per quit).

Cap01d.p65 15/12/00, 9.5521

22 CAPITOLO 1

Visualizzazione su schermo dei file lunghi con il comando less

1 Digitate less /etc/termcap al prompt dei comandi e premete Invio. Appari-rà un lungo file di testo sullo schermo.

2 Premete la freccia giù diverse volte per scorrere in avanti nel file una riga alla volta.3 Premete la freccia su diverse volte per scorrere indietro nel file una riga alla vol-

ta.4 Premete PgGiù¸Spazio, z o f per scorrere in avanti di una schermata.5 Premete PgSu o b per tornare a una schermata precedente.,6 Terminate la visualizzazione digitando q (per quit) quando appare un due punti

(:) in fondo a una schermata.

A volte occorre soltanto vedere una parte del contenuto di un file per determinare ciòche è visualizzato al suo interno. Il comando head mostra le prime linee di un file, perdefault le prime dieci.

Visualizzazione delle prime o ultime linee di un file

1 Digitate head /etc/termcap e premete Invio per vedere le prime dieci linee delfile /etc/termcap.

2 L’opzione –n permette di specificare il numero di linee visualizzate dal comandohead: digitate head –5 /etc/termcap e premete Invio. Appariranno le primecinque linee del file /etc/termcap.

3 Il comando tail visualizza le ultime linee di un file, per default dieci come nelcaso del comando head. Digitate tail /etc/termcap e premete Invio per ve-dere le ultime dieci linee del file /etc/termcap.

4 L’opzione –n permette di specificare il numero di linee visualizzate dal comandotail: digitate tail –5 /etc/termcap e premete Invio. Appariranno le ultimecinque linee del file /etc/termcap.

Reindirizzamento dell’outputIn UNIX il segno di maggiore (>) prende il nome di simbolo di reindirizzamento, utiliz-zabile per creare un nuovo file o per sovrascrivere un file esistente allegandolo a un coman-do che produce output. In realtà in questo modo “reindirizzate” l’output a un file su discoinvece che al monitor. Avete già utilizzato il comando who per scoprire chi è connesso alsistema della Dominion. Ora potete usare lo stesso comando con il simbolo direindirizzamento per salvare queste informazioni in un file di testo.

Salvataggio in un file che elenca gli utenti connessi al sistema

1 Digitate who > current_users al prompt dei comandi e premete Invio. L’ou-tput del comando who non appare sullo schermo, bensì viene reindirizzato in unnuovo file su disco chiamato current_users. UNIX colloca il file di testo nel-

Cap01d.p65 15/12/00, 9.5522

L’ESSENZA DI UNIX 23

la directory attiva, ossia la cartella del disco dalla quale state attualmente utiliz-zando il sistema.

2 Digitate cat > current_users al prompt dei comandi e premete Invio per vedereun elenco simile al seguente che visualizza gli utenti che attualmente stanno usandoil sistema:

jean tty Feb 7 07:15

joseph tty Feb 7 07:15

beckytty Feb 7 08:05

Potete anche utilizzare il simbolo di reindirizzamento con il comando cal per salvareun calendario in un file di testo. Per esempio, dato che alla Dominion sarete coinvolti inun progetto di sviluppo con una data di scadenza prevista nell’anno 2001, potete salvare ilcalendario in un file di testo.

Salvataggio del calendario dell’anno 2001 in un file

1 Digitate cal 2001 > anno_2001 al prompt dei comandi e premete Invio per creareun file di testo chiamato anno_2001.

2 Digitate less anno_2001 e premete Invio per visualizzare il calendario creato dalcomando precedente. Utilizzate i tasti freccia, PgGiù e PgSu e gli altri tasti perspostarvi nel file.

3 Terminate la visualizzazione digitando q (per quit).

Potete anche usare il comando cat per creare file con le informazioni che digitate sullatastiera. Digitate cat > nomefile al prompt dei comandi, dove nomefile è il nome delfile che state creando. Poi premete Ctrl+D per terminare l’introduzione di dati dalla tastiera.

Utilizzate il simbolo di reindirizzamento > per inviare l’output a un file già esistentesolo se desiderate sovrascrivere il file indicato. Se invece desiderate aggiungere l’output aun file, utilizzate due simboli di reindirizzamento (>>): in tal modo le informazioni vengo-no aggiunte alla fine del file esistente senza sovrascriverlo.

Mentre lavorate con UNIX, vi ricordate che Rolfe Williams, il vostro supervisore, viha chiesto di completare alcune attività entro la fine della settimana. Decidete pertanto dicreare un file note contenente dei promemoria sulle attività.

Creazione di un nuovo file

1 Digitate cat > note al prompt dei comandi e premete Invio.2 Digitate Ricordarsi di ordinare un nuovo CD-ROM e inviare il rap-

porto entro martedì e premete Invio.3 Premete Ctrl+D.4 Per rivedere il file appena creato, digitate cat note al prompt dei comandi e pre-

mete Invio. La frase digitata nel passaggio 2 appare sullo schermo.(continua)

Cap01d.p65 15/12/00, 9.5523

24 CAPITOLO 1

Dopo aver creato il file note, vi ricordate che Rolfe Williams vi ha chiesto di fareun’altra cosa. In questo caso volete aggiungere il promemoria al file esistente, includendonel file anche il calendario mensile appropriato come riferimento.

Aggiunta di informazioni a un file esistente

1 Digitate cat >> note al prompt dei comandi e premete Invio.2 Digitate Ricordarsi anche di fare le prenotazioni per il congres-

so di settembre e premete Invio.3 Premete Ctrl+D.4 Per aggiungere il calendario al file dei promemoria digitate cal 9 2000 >> note.5 Digitate less note per rivedere il file.

Riepilogo• Il sistema operativo è il programma più importante di un computer. Esso controlla tutte le ri-

sorse del computer e offre la base sulla quale è possibile utilizzare o scrivere i programmi applicativi.• Una rete con server è centralizzata; tutti i dati degli utenti e le applicazioni si trovano sul ser-

ver, che è protetto, riceve una manutenzione ed è sottoposto a backup da parte dell’ammini-stratore del sistema. Ogni computer in una rete con server si affida a quest’ultimo. Tutti i sistemidi una rete peer-to-peer invece funzionano sia come server sia come client e la sicurezza e la ma-nutenzione della rete sono distribuite a ogni sistema. Se uno dei sistemi della rete peer-to-peersi guasta, gli altri continuano a funzionare.

• Il sistema operativo UNIX è un sistema multiutente che permette a molte persone di accede-re e condividere contemporaneamente il computer; è anche un sistema operativo multitaskingin quanto può eseguire più operazioni alla volta.

• I sistemi UNIX possono essere configurati come server dedicati in una rete con server, work-station client in una rete basata su server, workstation client/server in una rete peer-to-peer oworkstation indipendenti non connesse ad alcuna rete.

• Il concetto dei componenti stratificati che costituiscono un sistema operativo ha avuto origi-ne con UNIX. Gli strati di software che circondano il nucleo centrale del computer proteggo-no i componenti hardware e software vitali e isolano il nucleo centrale dagli utenti.

• Linux è un sistema operativo tipo UNIX che è possibile installare sul PC e può coesistere conaltri sistemi operativi come Windows o MS-DOS.

• In UNIX potete comunicare con i programmi del sistema operativo tramite un interprete chia-mato shell, che interpreta i comandi immessi dalla tastiera. UNIX fornisce diversi programmishell, tra cui le shell Bourne, Korn e C. La shell Bash, che è quella più diffusa sui sistemi Linux,offre le caratteristiche avanzate delle shell Borne e Korn.

• In UNIX l’amministratore di sistema imposta gli account per gli utenti normali. Per imposta-re gli account e proteggere la riservatezza e la sicurezza del sistema, selezionate e comunicate ilnome utente e la password all’amministratore del sistema. Potete connettervi a qualunque si-stema UNIX o Linux ovunque si trovi, a patto di avere un nome utente e una password validisul computer host (server). Potete anche usare il programma Telnet di Microsoft Windows peraccedere a un sistema UNIX remoto.

• I comandi che digitate per lavorare con UNIX hanno una sintassi rigida che potete impararefacendo riferimento al manuale in linea, chiamato pagine di manuale. Utilizzate il programmaman per visualizzare le regole di sintassi di un comando. Utilizzate il comando whatis per ve-dere una breve descrizione di un comando. Usate il comando who per visualizzare un elenco degliutenti connessi e vedere da che terminale sono collegati. Utilizzate il comando cal per visua-

Cap01d.p65 15/12/00, 9.5524

L’ESSENZA DI UNIX 25

lizzare il calendario di sistema per tutti i mesi o solo di quelli selezionati. Per disconnettervi quandodecidete di smettere di usare UNIX, utilizzate i comandi exit o logout.

• La maggior parte delle shell fornisce capacità di base di editing sulla linea di comando e man-tiene una cronologia dei comandi utilizzati più di recente. Usate i tasti freccia su e giù per spostarviin avanti o indietro nell’elenco dei comandi recenti. Potete inserire più comandi un una solalinea di comando, a patto che li separiate con un punto e virgola. UNIX esegue i comandi nel-l’ordine in cui li inserite.

• Potete utilizzare i comandi di visualizzazione per vedere il contenuto dei file. Utilizzate il co-mando cat per creare un file digitando informazioni dalla tastiera. Usate i comandi more e lessper visualizzare documenti a più pagine. Usate head e tail per visualizzare le prime o le ulti-me linee di un file.

Riepilogo dei comandi

Comando Scopo Opzioni trattate in questo capitolo

cal Mostra il calendario di sistema -j visualizza il formato di data giulianocat Visualizza più file -n visualizza i numeri di lineaclear Pulisce lo schermodate Visualizza la data di sistema -u visualizza l’ora secondo il Greenwich

Mean Timeexit o logout Disconnette da UNIXhead Visualizza le prime linee di un file -n visualizza le prime n linee del file

specificatoless Visualizza un file lungo

una schermata alla voltae scorre in avanti e indietro

man Visualizza il manuale in lineaper il comando specificato

more Visualizza un file lungouna schermata alla voltae scorre in avanti

passwd Cambia la password di UNIXtail Visualizza le ultime linee di un file -n visualizza le ultime n linee del file

specificatowhatis Visualizza una breve descrizione

di un comandowho Visualizza chi è connesso a UNIX -H visualizza le intestazioni di colonna

-i visualizza i tempi di inattività dellesessioniq visualizza un elenco rapido degli utenti

Domande1. I comandi di UNIX distinguono tra maiuscolo e minuscolo: come devono essere digitati?

a. Tutti maiuscolib. Tutti minuscolic. Con la prima lettera maiuscola e le altre minuscoled. Con qualunque combinazione di maiuscolo e minuscolo

Cap01d.p65 15/12/00, 9.5525

26 CAPITOLO 1

2. In quale ordine vengono impartiti i comandi UNIX?a. nome, argomenti, opzionib. nome, opzioni, argomentic. opzioni, nome, argomentid. argomenti, opzioni, nome

3. Quale di queste affermazioni è falsa?a. Linux è compatibile con UNIXb. Gli utenti normali non possono cambiare la data di sistema.c. Il sistema operativo UNIX è chiamato kerneld. Non è possibile cambiare la shell dopo averla selezionata

4. In una rete __________ tutti i dati degli utenti sono collocati centralmente su un sistema.a. peer-to-peerb. con serverc. indipendented. workstation

5. UNIX può essere configurato per essere eseguito come __________.a. server in una rete con serverb. workstation client in una rete con serverc. workstation client/server in una rete peer-to-peerd. tutte le opzioni precedenti

6. Cosa è necessario per accedere al sistema?a. Un nome utente e una passwordb. Solo una passwordc. Un kerneld. Una shell

7. Il comando date di UNIX serve per __________.a. visualizzare il calendario di sistemab. visualizzare qualunque data nel futuroc. ripristinare la data di sistemad. visualizzare la data di sistema

8. Il programma man fornisce __________.a. una guida alla programmazioneb. un riferimento in linea per la sintassi dei comandic. un modello di filed. una versione del sistema operativo

9. Il comando whatis fornisce __________.a. una breve descrizione di un comandob. una descrizione di un comando più dettagliata rispetto a quella fornita da manc. una descrizione di un dispositivo hardware collegato al sistemad. un’esercitazione in linea sul sistema operativo UNIX

10. Per default il comando cal visualizza __________.a. la data di sistema correnteb. un elenco delle shellc. il mese e l’anno correntid. il contenuto del file cal

Cap01d.p65 15/12/00, 9.5526

L’ESSENZA DI UNIX 27

11. Qual è la definizione migliore per UNIX come sistema operativo?a. Sistema operativo multiutente e multitaskingb. Un sistema operativo che conduce tutte le sue operazioni su un PC indipendentec. Un sistema operativo con interfaccia utente graficad. Uno sistema operativo monoutente portabile

12. Perché il sistema UNIX è progettato a strati?a. Per migliorare la velocitàb. Per permettere la connessione in retec. Per consentire agli altri sistemi operativi di comunicare con essod. Per isolare il nucleo del sistema dall’ambiente degli utenti

13. Quando visualizzate un file con il comando cat, potete __________.a. modificare il fileb. solo visualizzare il filec. eseguire il controllo ortografico sul filed. cancellare il file

14. Dopo aver creato un file con il comando cat > nomefile, se utilizzate nuovamente il comandocon lo stesso nome di file, __________.a. aggiungete le nuove informazioni al fileb. sovrascrivete il filec. create un nuovo filed. cancellate il file

15. Il comando less risolve le limitazioni di scorrimento del comando __________.a. cat

b. more

c. clear

d. date

16. UNIX riconosce i primi __________ caratteri in un nome utente.a. quattrob. seic. ottod. dodici

17. L’opzione –i utilizzata con il comando who visualizza __________.a. il proprio nome utenteb. le intestazioni di colonna.c. informazioni sul tempo di inattività degli utentid. il numero di utenti attualmente connessi

18. La password non deve contenere __________.a. numerib. lettere maiuscolec. caratteri di controllod. il carattere di sottolineatura

19. Il simbolo > può essere combinato __________ per creare output.a. solo con il comando catb. con qualunque comando che produca outputc. solo con il comando whod. solo con il comando cal

Cap01d.p65 15/12/00, 9.5527

28 CAPITOLO 1

20. I comandi __________ visualizzano solo le prime o le ultime linee di un file.a. first e lastb. cat-first e cat-lastc. viewhead e viewtaild. head e tail

21. Se inserite più comandi sulla linea di comando, dovete separarli con __________.a. uno spaziob. un punto e virgola (;)c. i due punti (:)d. una virgola (,)

22. Una delle principali differenze tra l’amministratore di sistema e gli utenti normali è che__________.a. l’amministratore di sistema ha autorizzazioni illimitate per alterare il sistema.b. l’amministratore di sistema non deve eseguire la procedura di accesso al sistemac. l’amministratore di sistema deve inserire i comandi in lettere maiuscole.d. gli utenti normali possono modificare alcune impostazioni del sistema, ma non tutte.

23. Il simbolo usato dagli utenti normali come prompt dei comandi è il __________.a. due punti (:)b. segno del cancelletto (#)c. carattere barra trasversale (/)d. segno del dollaro ($)

24. Vero o falso? Se dimenticate la password, potete utilizzare il comando passwd per visualizzarlasullo schermo.

25. Vero o falso? La password dev’essere diversa dal nome utente.26. La password deve contenere almeno __________ caratteri.

a. cinqueb. ottoc. dodicid. uno

27. Il comando passwd chiede di digitare la password ____________ volte.a. unab. duec. tred. zero

28. Quando utilizzate il comando cat > nomefile, dovete inserire __________ per interrompe-re l’input da tastiera.a. *b. Ctrl+Dc. q

d. exit

29. Il simbolo ______________ indirizza l’output di un comando a un file.a. *b. $c. >d. <

Cap01d.p65 15/12/00, 9.5528

L’ESSENZA DI UNIX 29

Esercizi1. Utilizzate il comando cal per determinare in quale giorno della settimana siete nati.2. Utilizzate il comando cal per scoprire in quale giorno della settimana è stata firmata la Dichia-

razione di indipendenza degli Stati Uniti.3. Utilizzate il comando cal per scoprire cos’ha di insolito l’anno 1752.4. Pulite lo schermo e visualizzate il manuale in linea del comando cal. Qual è la spiegazione per

l’anno 1752?5. Create un file chiamato oggi contenente la data odierna.6. Create un file chiamato manuale_per_date contenente il manuale in linea del comando date.7. Utilizzate il comando who per aggiungere un elenco rapido di utenti al file date.8. Visualizzate i file oggi e manuale_per_date:

a. singolarmenteb. in sequenza

9. Visualizzate i file oggi e manuale_per_date in sequenza utilizzando:a. il comando lessb. il comando more

10. Create un file contenente il calendario dell’anno prossimo e utilizzate il comando more per vi-sualizzare il file e spostarvi in esso.

11. Utilizzate il comando less per visualizzare il file creato nell’esercizio 10 e farlo scorrere all’in-dietro.

12. Utilizzate il comando tail per visualizzare le ultime dieci linee del file creato nell’esercizio 10.13. Create un file che elenchi i promemoria di due attività.14. Aggiungete un’altra attività all’elenco del file creato nell’esercizio 11.

Esercizi di approfondimento1. Utilizzate il comando who per determinare quanti utenti sono connessi al sistema.2. Utilizzate l’opzione del comando who che visualizza un’intestazione per le informazioni visua-

lizzate.3. Combinate i comandi cat e cal per creare un file contenente un promemoria relativo a un me-

eting per l’analisi di un nuovo programma gestionale per alberghi. Allegate un calendario di no-vembre 2000 al promemoria e ricordate ai destinatari le date del meeting per mercoledì, giovedìe venerdì della terza settimana del mese.

4. Utilizzate il comando head per visualizzare le prime sei linee del file creato al punto 3.5. Ripetete il comando usato al punto precedente reindirizzando l’output a un altro file. Cosa con-

tiene il file creato?6. Il vostro amministratore di sistema alla Dominion accenna alla possibilità di specificare il nu-

mero di byte che si desidera visualizzare con i comandi head e tail. Utilizzate il comando manper scoprire come fare, poi immettete il comando corretto per visualizzare i primi e gli ultimidieci caratteri del file creato al punto 3.

Cap01d.p65 15/12/00, 9.5529