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 permetta 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.
Cap01d.p65
1
Caso
15/12/00, 9.55
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, spiegando 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 gli
stessi comandi di UNIX, che in genere viene eseguito su una rete.
Dopo aver analizzato le informazioni di fondo essenziali di questo capitolo, inizierete
a lavorare con UNIX; se avete già una certa dimestichezza con i sistemi operativi in generale, parte di questo discorso introduttivo allora potrebbe rappresentare un’occasione di
rivedere quanto già conoscete. Questo capitolo offre anche molte opportunità di fare pratica sul campo con i comandi UNIX, principalmente nel contesto del caso descritto in
apertura, che rispecchia una situazione realistica per le attività di questo capitolo. Imparerete pertanto a utilizzare diversi comandi di base in modo da raggiungere gli obiettivi
richiesti in questo caso di studio.
Introduzione ai sistemi operativi
Un sistema operativo (SO) è il programma più importante che viene eseguito su un computer. I sistemi operativi permettono di memorizzare informazioni, elaborare dati grezzi,
utilizzare software applicativo, compilare programmi e accedere all’hardware collegato al
computer, come una stampante o la tastiera. In breve il sistema operativo è il programma
più importante ed essenziale del computer, in quanto ne controlla tutte le risorse e fornisce
la base sulla quale è possibile eseguire programmi applicativi o scriverne di propri. La
Figura 1.1 mostra un modello di sistema operativo.
Cap01d.p65
2
15/12/00, 9.55
3
L’ESSENZA DI UNIX
programmatori
programmi applicativi
utenti
Sistema operativo
monitor
tastiera
mouse
stampante
disco
Hardware
Figura 1.1
Modello di sistema operativo.
Diversi sistemi di computer possono avere diversi sistemi operativi. Per esempio, i
sistemi operativi più noti per i personal computer sono DOS, OS/2 e Windows, mentre i
mainframe possono utilizzare il sistema operativo VAX di Digital Equipment o il System
370 di IBM. Anche per le reti esistono sistemi operativi specifici, come Linux e Windows
NT. UNIX è il sistema operativo più importante per workstation, ossia potenti computer
monoutente interconnessi attraverso una rete locale.
Sistemi operativi per PC
Un personal computer o PC è in genere una macchina indipendente, come un computer
desktop 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 identifica
alcuni dei più noti sistemi operativi per PC.
Sistemi operativi per mainframe
Un sistema operativo per mainframe controlla un sistema mainframe, ossia un grande
sistema con più processori che svolgono operazioni di input, output, elaborazione e
memorizzazione per molti utenti. Storicamente i mainframe sono sempre stati diffusi nelle
grandi aziende e per l’elaborazione a livello industriale. La Figura 1.3 mostra alcuni dei più
diffusi sistemi operativi per mainframe.
Sistemi operativi di rete
Un rete di computer combina la praticità e la familiarità dei personal computer con la
potenza di elaborazione dei mainframe; una rete infatti permette a più utenti di condividere 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
Cap01d.p65
3
15/12/00, 9.55
4
CAPITOLO 1
Figura 1.2
Alcuni dei più noti sistemi operativi per PC.
Figura 1.3
Sistemi operativi per mainframe.
esecuzione su altre macchine, chiamate client. La Figura 1.4 illustra il rapporto esistente
tra server e client di una rete.
In un approccio centralizzato tutti i dati e le applicazioni degli utenti si trovano sul
server, pertanto questa rete prende il nome di rete con server. L’amministratore del sistema
protegge tutte le informazioni della rete proteggendo il server e può eseguire facilmente le
operazioni di manutenzione delle applicazioni degli utenti e il backup agendo direttamente 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ù distribuite
rispetto alle reti con server. In una configurazione peer-to-peer ogni sistema della rete si
comporta sia come server sia come client e i dati e le applicazioni non sono poste su
un’unità centrale, bensì sono dislocate sui singoli sistemi della rete. Gli aggiornamenti del
software e le operazioni di backup devono avvenire localmente su ciascun computer. La
Cap01d.p65
4
15/12/00, 9.55
L’ESSENZA DI UNIX
Figura 1.4
5
Rapporto tra server e client su una rete.
protezione viene implementata su ciascun computer e pertanto non è uniforme, perché
ogni utente della rete è in una certa misura responsabile dell’amministrazione del proprio
sistema. Nonostante gli svantaggi che una rete peer-to-peer rappresenta per l’amministratore del sistema, i singoli utenti non dipendono da un server centrale, quindi se un computer della rete si guasta, gli altri sistemi continuano a funzionare senza problemi.
Introduzione al sistema operativo UNIX
UNIX è un sistema operativo multiutente e multitasking con funzioni di rete integrate e
può 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 accedere
contemporaneamente e condividere le risorse di un server. Gli utenti devono connettersi
digitando 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 sistema
dagli 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, è possibile
aggiornare 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 utilizzato
su diversi ambienti di elaborazione. UNIX viene infatti eseguito con una varietà di computer
maggiore rispetto alle possibilità offerte da altri sistemi operativi. Viene anche eseguito su
Internet per regolare programmi molti diffusi come File Transfer Protocol (FTP), un
protocollo Internet utilizzato per l’invio di file, e Telnet, un programma Internet di emulazione
di terminale. Dominion Consulting ha scelto UNIX come sistema operativo per il proprio
sistema informatico perché molti dei suoi dipendenti devono lavorare su più computer
che svolgono contemporaneamente attività diverse.
Cap01d.p65
5
15/12/00, 9.55
6
CAPITOLO 1
Breve storia di UNIX
Lo sviluppo originale di UNIX all’inizio degli anni Settanta si deve a un gruppo di programmatori dei Bell Labs, che distribuirono il sistema operativo sotto forma di codice
sorgente in modo che chiunque utilizzasse UNIX potesse personalizzarlo in base alle proprie esigenze. Attratte dalla sua portabilità e dal basso costo, le università iniziarono a
modificare il codice di UNIX per farlo funzionare su computer diversi, il che alla fine
portò a due versioni standard del sistema: AT&T produsse il System V mentre la University
of California di Berkeley sviluppò il BSD. Dato che sfrutta caratteristiche di entrambe le
versioni, Linux può essere considerato una versione più integrata di UNIX rispetto ai suoi
predecessori. Attualmente il progetto POSIX, uno sforzo combinato di esperti del mondo
dell’industria, dell’ambiente accademico e del governo, sta lavorando alla standardizzazione di UNIX.
Concetti di UNIX
UNIX è stato un pioniere nella diffusione di concetti che poi sono stati applicati ad altri
sistemi operativi. Per esempio, i sistemi DOS e Windows di Microsoft hanno adottato
dei concetti del progetto originale di UNIX, come l’idea di shell, un’interfaccia tra l’utente
e il sistema operativo, e la struttura gerarchica di directory e sottodirectory.
Anche il concetto di componenti stratificati che costituiscono un sistema operativo ha
avuto origine con UNIX. Gli strati di software circondano il nucleo interno del computer
per proteggere i suoi componenti hardware e software vitali e per isolare il nucleo del
sistema dai suoi utenti. La Figura 1.5 illustra la struttura piramidale formata dagli strati del
sistema UNIX.
Alla base della piramide troviamo l’hardware, al vertice gli utenti; gli strati forniscono
isolamento, garantendo la sicurezza del sistema e la riservatezza dell’utente. Il kernel è il
Utenti
accesso
in modalità
utente
Shell
accesso in
modalità kernel
Sistema operativo UNIX (kernel)
Hardware
Figura 1.5
Cap01d.p65
Strati di un sistema UNIX.
6
15/12/00, 9.55
L’ESSENZA DI UNIX
7
sistema operativo di base, che interagisce direttamente con l’hardware e fornisce servizi ai
programmi degli utenti: è accessibile solo tramite la modalità kernel, che è riservata all’amministratore di sistema. Ciò impedisce a comandi non autorizzati di passare allo strato
di fondazione o all’hardware che sostiene l’intera struttura di UNIX. La modalità utente
fornice l’accesso agli strati superiori, nei quali si trova tutto il software applicativo.
Questo approccio stratificato, come tutte le altre caratteristiche di UNIX, è stato concepito da programmatori in modo che i programmatori lo utilizzassero nello sviluppo di
software complesso. Dato che UNIX è stato scritto nel linguaggio di programmazione C,
esso può essere installato su qualunque computer che disponga di un compilatore C. La
sua portabilità, flessibilità e potenza fanno di UNIX una scelta logica per i sistemi operativi di rete. E grazie all’emergere di una nuova versione per PC chiamata Linux, la popolarità
di UNIX è in aumento.
Linux e UNIX
Linux è un sistema operativo di tipo UNIX che venne rilasciato al pubblico gratuitamente
nel 1991 da parte di Linus Torvalds, il suo ideatore originale. Attualmente invece esistono
molte società che distribuiscono versioni professionali di Linux.
Linux offre tutta la complessità di UNIX a costo zero: è abbastanza robusto da gestire
attività 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 mettere
alla prova la vostra capacità di utilizzare UNIX. Tutte queste caratteristiche rendono Linux
un modo eccellente per imparare UNIX, anche quando si ha accesso ad altri computer che
eseguono UNIX.
Introduzione alle shell di UNIX
La shell è un programma UNIX che interpreta i comandi immessi dalla tastiera. UNIX
offre diverse shell, tra le quali citiamo la shell Bourne, la shell Korn e la shell C. Fu Steve
Bourne agli AT&T Bell Laboratories a sviluppare la shell Bourne come primo elaboratore
di comandi per UNIX. Un altro dipendente dei Bell Labs, David Korn, sviluppò invece la
shell Korn: quest’ultima, compatibile con la shell Bourne, include molte estensioni, come
una funzione cronologica che permette di utilizzare una combinazione rapida di tasti per
rieseguire comandi immessi in precedenza. La shell C invece è concepita per i programmatori C. Linux utilizza la shell Bash freeware come interprete dei comandi predefinito; il
suo nome è l’acronimo di “Bourne Again Shell” e include le caratteristiche migliori delle
shell Korn e Bourne. Indipendentemente dalla shell utilizzata, la vostra comunicazione
con UNIX avverrà sempre tramite l’interprete shell. La Figura 1.6 mostra il ruolo della
shell nel sistema operativo UNIX.
Scelta della shell
Prima di lavorare con un sistema UNIX dovete determinare quale shell utilizzerete come
interprete dei comandi. Le shell fanno molto di più che interpretare comandi: ciascuna di
esse è dotata di una serie completa di comandi integrati che in pratica la trasformano in un
linguaggio di programmazione di prima classe (questo argomento verrà trattato in modo
approfondito nei Capitoli 6 e 7). La scelta della shell avviene quando l’amministratore del
sistema configura l’account utente. La maggior parte degli utenti sceglie la shell Bash,
sebbene sia possibile scegliere una delle seguenti:
Cap01d.p65
7
15/12/00, 9.55
8
CAPITOLO 1
Shell
Sistema operativo
UNIX
input
utenti
Figura 1.6
•
•
•
•
•
•
output
Rapporto della shell con l’utente e l’hardware.
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’altra
Dopo aver scelto la shell, l’amministratore del sistema memorizza la vostra scelta nel record del vostro account ed essa diventa la shell a voi assegnata: UNIX la utilizzerà ogni
volta che accedete al sistema. Tuttavia potete passare da una shell a un’altra digitando il
nome della shell (come tcsh, bash o zsh) sulla linea di comando e continuando a lavorare
in essa fino al prossimo accesso o fin quando digitate un altro nome di shell sulla linea di
comando. Molti utenti usano una shell per la realizzazione degli script di shell (programmi) e un’altra per interagire con i programmi.
Scelta di nome utente e password
Prima di poter lavorare con UNIX e i suoi programmi è necessario accedere al sistema
fornendo un nome utente e una password unici. Dovete pertanto decidere un nome che
desiderate utilizzare per identificarvi al sistema UNIX, come per esempio “aquinn”. Questo è il lo stesso nome che gli altri utenti del sistema UNIX useranno per inviarvi posta
Cap01d.p65
8
15/12/00, 9.55
L’ESSENZA DI UNIX
9
elettronica. UNIX riconosce solo i primi otto caratteri di un nome utente, pertanto occorre scegliere un nome che rientri in questa lunghezza massima.
Dovete anche scegliere una password, che deve contenere un minimo di cinque caratteri e deve risultare facile da ricordare per voi ma difficile per gli altri da indovinare, come
la 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 di
controllo.
Potete accedere a qualunque sistema UNIX o Linux a patto di disporre di un account
utente e di una password sul computer host (server). L’amministratore di un sistema UNIX
crea il vostro account aggiungendo il vostro nome utente (chiamato anche nome di login o
user id) e la password. Per utilizzare questo libro e le esercitazioni pratiche, dovete connettervi e stabilire un account su un sistema UNIX o Linux utilizzando uno dei metodi seguenti:
• 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 il
prompt di accesso non appena lo si accende. Potete anche accedere a Internet tramite un
provider di accesso (ISP, Internet Service Provider) e connettervi a un host UNIX remoto.
Connessione a UNIX con Telnet
Telnet è un programma di emulazione terminale per Internet che viene eseguito sul proprio computer e connette il PC a un server, o host, UNIX sulla rete, al quale è possibile
accedere per iniziare a lavorare con UNIX.
Ogni computer su Internet ha un indirizzo Internet Protocol (IP), un set di quattro
numeri separati da punti, come 172.16.1.61. La maggior parte dei sistemi su Internet ha
anche un nome di dominio, come Lunar.campus.edu. Sia l’indirizzo IP sia il nome di
dominio identificano un sistema sulla rete e i programmi come Telnet utilizzano entrambe
le 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’accesso a un ISP, stabilite la connessione. Se invece al lavoro o a scuola disponete di
una connessione a Internet permanente, ignorate questo passaggio.
3 Avviate il programma Telnet e connettetevi al sistema UNIX.
(continua)
Cap01d.p65
9
15/12/00, 9.55
10
CAPITOLO 1
Seguite le istruzioni del programma Telnet per connettervi a un host remoto. In
genere occorre fornire il nome dell’host per connettersi a un sistema UNIX. Per
esempio, è possibile digitare il comando seguente dopo il prompt di una finestra
MS-DOS di Windows 95/98 per accedere al sistema Lunar.campus.edu.
telnet Lunar.campus.edu
Accesso a UNIX
Una volta connessi a un sistema UNIX, è necessario accedere fornendo il nome utente e la
password. Apparirà un prompt che richiede il login o il nome utente e la password; per
motivi di sicurezza quest’ultima non è visibile su schermo mentre la digitate. Non potrete
accedere senza un account utente autorizzato, se la password non è valida o se aspettate
troppo prima di immettere il nome e la password. In tal caso contattate l’amministratore
del sistema per ottenere aiuto.
Una volta avvenuto l’accesso, siete pronti per iniziare a usare il sistema.
Inserimento di comandi
Per interagire con UNIX si inserisce un comando, ossia del testo digitato dopo il prompt
dei 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 maggior 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 informazioni o la comunicazione con altri utenti, e comandi di amministrazione del sistema, utilizzati dall’amministratore per la gestione del sistema.
Dovete conoscere la sintassi di un comando per inserirlo correttamente, ossia il formato e le parole che contiene, così come gli argomenti e le opzioni utilizzabili per estendere e modificare le sue funzioni. La maggior parte dei comandi è costituito da una sola
parola, 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_comando [-opzioni] [argomenti]
Analisi
•
•
Cap01d.p65
10
nome_comando specifica quale operazione eseguire. Nelle illustrazioni di sintassi
di questo libro il nome dei comandi appare in grassetto.
Le opzioni sono modi per richiedere a UNIX di eseguire un comando in
uno stile o secondo una variante specifici. Le opzioni seguono i nomi dei
comandi separati da uno spazio e iniziano sempre con un trattino (-). Anche
le opzioni distinguono tra maiuscolo e minuscolo, quindi -R è diverso da –r.
15/12/00, 9.55
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 sintassi
di questo libro le opzioni sono indicate tra parentesi quadre ([]) quando il
comando non le richiede.
Gli argomenti seguono le opzioni dei comandi separate da uno spazio: in
genere si tratta di nomi di file e di directory. Nelle illustrazioni di sintassi di
questo libro gli argomenti sono indicati in corsivo e sono racchiusi tra parentesi
quadre se l’argomento non li richiede.
Il comando date
Il comando date dì UNIX può essere usato per visualizzare la data di sistema, mantenuta
dall’amministratore. Dato che la data e l’ora su un sistema multiutente sono fondamentali
per un’elaborazione il più possibile fluida, solo l’amministratore del sistema può modificare la data. Il vostro addestramento alla Dominion Consulting inizia con un controllo della
data di sistema.
Visualizzazione della data di sistema
1 Digitate date sulla linea di comando e premete Invio; apparirà una data come quella 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 messaggio di errore generato dal sistema:
bash: Date: command not found
Il messaggio di errore di sistema appare perché il comando date, come la maggior
parte 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 come
quella riportata sotto:
dom ott 15 21:29:50 UTC 2000
Il comando cal
Il comando cal visualizza il calendario del sistema. Il vostro manager alla Dominion
Consulting, Rolfe Williams, vi avverte che questo è il comando normalmente utilizzato
per pianificare attività ed eventi.
Cap01d.p65
11
15/12/00, 9.55
12
CAPITOLO 1
Visualizzazione del calendario di sistema predefinito
1 Digitate cal sulla linea di comando e premete Invio; senza alcuna opzione, il comando cal mostra un calendario del mese corrente: supponendo che il mese corrente 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 visualizza il formato di data giuliano, ossia mostra i giorni numerandoli da 1 a 366,
come mostrato nella Figura 1.8.
Figura 1.8
Cap01d.p65
12
Esempio di comando cal (anno completo, date in formato giuliano).
15/12/00, 9.55
13
L’ESSENZA DI UNIX
3 Per determinare il giorno della settimana in cui è stata firmata la Dichiarazione
di indipendenza degli Stati Uniti, digitate cal 7 1776 sulla linea di comando e premete Invio. Apparirà un calendario simile a quello della Figura 1.9. In questo caso
gli 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 numeri per indicare i mesi, per esempio 5 per maggio.
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
cal: illegal month value: use
Figura 1.9
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
1-12
Esempio di comando cal (luglio 1776).
Il comando who
In un sistema multiutente può essere utile sapere chi è connesso al sistema. Il comando
who permette di sapere chi sta utilizzando il sistema e la relativa posizione. Alla Dominion
Consulting 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 usando 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
13
15/12/00, 9.55
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
root
tty1
Aug 12 07:56
ellen
tty1
Aug 12 08:15
john
tty2
Aug 12 08:15
jerry
tty3
Aug 12 08:21
FROM
Se qualche utente è connesso da un host remoto, la colonna FROM mostra il nome
dell’host.
4 Il tempo di inattività (idle time) è la quantità di tempo trascorsa senza alcuna attività in una sessione utente. Digitate who –i e premete Invio per vedere il tempo 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 punto
sulla linea corrispondente a Ellen indica che la sua sessione è stata attiva nell’ultimo
minuto, mentre la parola old sulla linea di Jerry segnala l’assenza di attività nelle
ultime 24 ore.
5 Se desiderate utilizzare più opzioni sulla stessa linea di comando, dovete digitarle tutte dopo un solo trattino. Per esempio, digitate who –iH e premete Invio per
vedere un elenco di utenti con i tempi di inattività e le intestazioni di colonna,
come mostrato nell’esempio seguente:
USER
LINE
LOGIN-TIME
IDLE
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
FROM
6 Digitate who –q e premete Invio per visualizzare un elenco rapido degli utenti correnti. Appare un elenco come quello mostrato sotto, che mostra solo i nomi di
accesso 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 simile
alla seguente, che mostra il vostro nome utente, il terminale e la data e l’ora di connessione.
Cap01d.p65
14
15/12/00, 9.55
15
L’ESSENZA DI UNIX
lucky.campus.edu!ellen
tty1
Aug 12 08:15
Questo output mostra che siete connessi al sistema lucky.campus.edu come
utente ellen.
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
Tutte le volte che fornite due argomenti al comando who, vedrete l’output descritto al punto
7. Per esempio, potreste digitate who sono io oppure who x x per vedere le stesse informazioni. Tradizionalmente però gli utenti UNIX digitano who am I per vedere informazioni
che descrivono la loro sessione.
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
Editing sulla linea di comando
Le shell permettono l’uso di certi tasti per eseguire l’editing sulla linea di comando. Per
esempio, Bash, la shell predefinita di Linux, riconosce l’uso dei tasti freccia destra e sinistra, che spostano il cursore sulla linea di comando. Altri tasti, usati in combinazione con
Ctrl o Alt, possono attivare altre operazioni di editing.
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
Le varie shell non permettono l’editing sulla linea di comando allo stesso modo. I passaggi 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. Se
state utilizzando la shell Bash, apparirà l’output seguente:
/bin/bash
2
3
4
5
6
7
8
9
10
11
Cap01d.p65
Se non state usando la shell Bash, digitate bash e premete Invio.
Digitate who am I ma non premete Invio.
Premete il tasto freccia sinistra per spostare il cursore sulla lettera a della parola
am.
Premete Alt+D per cancellare la parola “am”.
Premete Ctrl+K per cancellare la linea di comando dalla posizione corrente del
cursore.
Premete Ctrl+A per spostare il cursore all’inizio della linea di comando.
Premete nuovamente Ctrl+K per cancellare la linea di comando .
Digitate nuovamente who am I ma non premete Invio.
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 posizionarsi all’inizio della linea.
Premete Alt+F tre volte. Ogni volta il cursore si sposta alla posizione appena precedente al primo carattere della parola successiva.
Premete Ctrl+A e poi Ctrl+K per cancellare la linea di comando.
15
15/12/00, 9.55
○
○
16
CAPITOLO 1
Inserimento di più comandi
È possibile digitare più di un comando sulla linea di comando utilizzando il punto e
virgola (;) come separatore. Quando premete Invio, UNIX esegue i comandi nell’ordine di
inserimento.
Inserimento di più comandi sulla linea di comando
• Digitate date ; who –iH e premete Invio. Appariranno delle informazioni simili a quelle riportate sotto:
lun apr 20 21:35:09 EDT 2000
USER
LINE
LOGIN-TIME
IDLE
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
FROM
Il comando date produce la prima linea dell’output, mentre il resto è il risultato del comando who.
Il comando clear
Continuando a inserire comandi uno dopo l’altro, lo schermo diventa sempre più affollato. A meno che non abbiate bisogno di fare riferimento ai comandi immessi in precedenza
e 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 premere
Invio per fare in modo che il prompt dei comandi si posizioni nell’angolo superiore sinistro dello schermo.
Cronologia della linea di comando
Spesso ci si ritrova a inserire lo stesso comando diverse volte in un breve lasso di tempo. La
maggior parte delle shell mantiene un elenco dei comandi più recenti e permette di richiamare un comando senza digitarlo nuovamente. L’accesso alla cronologia dei comandi avviene con i tasti freccia su e freccia giù. Premendo il tasto freccia su una volta si richiama
l’ultimo comando usato, premendolo due volte richiamate il penultimo e così via. Con il
tasto freccia giù invece lo spostamento nella cronologia avviene in senso inverso. Una volta
individuato il comando da eseguire, è sufficiente premere Invio.
Uso della cronologia sulla linea di comando
1
2
3
4
Cap01d.p65
Digitate date e premete Invio.
Digitate who e premete Invio.
Digitate who -iH e premete Invio.
Digitate clear e premete Invio.
16
15/12/00, 9.55
L’ESSENZA DI UNIX
17
5 Premete il tasto freccia su quattro volte; viene richiamato il comando date sulla
linea di comando. Non premete Invio.
6 Premete il tasto freccia giù due volte; viene richiamato il comando who -iH sulla linea di comando. Premete Invio per eseguirlo.
Il comando man
Come riferimento UNIX include un manuale in linea che contiene tutti i comandi con
tanto di opzioni e argomenti. Il programma man di UNIX visualizza questo manuale in
linea, che prende il nome di pagine di manuale, per offrire una sorta di assistenza sulla
linea di comando. Anche se le pagine di manuale di alcuni comandi contengano più informazioni 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 spiegazione del comando who illustrata nella Figura 1.10.
Figura 1.10 Pagina di manuale.
(continua)
Cap01d.p65
17
15/12/00, 9.55
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 whatis
A volte potreste accorgervi che le pagine di manuale contengono più informazioni di quelle che vi occorrono. Per visualizzare un breve riepilogo di un comando, utilizzate il comando whatis, che mostra solo il nome e la breve descrizione che appare in testa alla pagina di
manuale 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’amministratore
del sistema deve eseguire il comando makewhatis per creare il database prima che il comando whatis funzioni correttamente. Se il comando whatis non visualizza le informazioni
riepilogative sui comandi, è probabile che l’amministratore del sistema non abbia eseguito il comando makewhatis.
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
Disconnessione da UNIX
Al termine della giornata di lavoro o quando lasciate il terminale per qualche ragione,
dovete disconnettervi dal sistema UNIX. La disconnessione termina il vostro processo
corrente e indica a UNIX che avete finito. Le modalità di disconnessione dipendono dalla
shell in uso. Nel caso delle shell Bourne, Korn e Bash, digitate exit sulla linea di comando
o 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
18
15/12/00, 9.55
L’ESSENZA DI UNIX
19
SEZIONE B
Ruoli dell’amministratore
di 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’amministratore
di sistema di UNIX
Esistono due tipi di utenti su un sistema UNIX: l’amministratore di sistema e gli utenti
normali. Come si può intuire dal nome, l’amministratore di sistema gestisce il sistema
aggiungendo nuovi utenti, eliminando vecchi account e garantendo che il sistema svolga i
servizi per tutti gli utenti in modo efficiente. Con utenti normali invece si intendono tutti
gli altri utenti. L’amministratore di sistema prende anche il nome di superutente perché
dispone di autorizzazioni illimitate per alterare il sistema. UNIX assegna questa autorizzazione al momento dell’installazione iniziale del sistema, mentre l’amministratore assegna
privilegi 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’account
root è 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 a
una procedura di emergenza per reimpostarla.
La linea di comando dell’amministratore di sistema
Mentre gli utenti normali digitano i comandi al prompt dei comandi rappresentato dal
simbolo del dollaro ($), il prompt dell’amministratore è il simbolo del cancelletto, o diesis
(#). Il sistema UNIX genera un’impostazione predefinita per il prompt dei comandi dell’amministratore nel formato seguente:
[root@nomehost]#
dove nomehost è il nome del computer cui l’amministratore di sistema è connesso.
Cap01d.p65
19
15/12/00, 9.55
20
CAPITOLO 1
La linea di comando degli utenti normali
Il segno del dollaro $ viene tradizionalmente associato agli utenti normali. Il sistema UNIX
genera un’impostazione predefinita per il prompt dei comandi degli utenti normali nel
formato seguente:
[nome utente@nomehost]$
dove nome utente è il nome di accesso dell’utente, come jean, e nomehost è il nome del
computer cui l’utente è connesso.
Modifica delle password
Il nome utente vi identifica al sistema e potete sceglierlo e comunicarlo all’amministratore,
che vi aggiungerà come nuovo utente. Come abbiamo accennato in precedenza, UNIX
riconosce al massimo otto caratteri in un nome utente, che in genere è formato dal proprio
nome proprio o dal soprannome. Il nome utente è unico, ma non riservato, e può essere
comunicato ad altri utenti; la password invece è riservata e proteggere il vostro lavoro sul
sistema. Se necessario, potete cambiare la password ricorrendo al comando passwd, che
permette anche di crearne una se non l’avete ancora.
UNIX permette di cambiare la password solo se la nuova è diversa da quella precedente per almeno tre caratteri, se contiene più di cinque caratteri, che comprendono almeno
due lettere e un numero, e se è diversa dal nome utente.
La password che avete scelto per il sistema della Dominion, Gscott956, è troppo simile a un’altra password già in uso nel sistema, pertanto l’amministratore di sistema vi chiede
di 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 confermarla.
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
Se la password che digitate per conferma non corrisponde alla nuova password UNIX, il
sistema 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 nuovamente
per essere certi che UNIX riconosca la nuova password.
Cap01d.p65
20
15/12/00, 9.55
21
L’ESSENZA DI UNIX
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
Scrivete la password e conservatela in un posto sicuro: ne avrete bisogno ogni volta che
vi connettete a UNIX.
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
Visualizzazione dei file
con i comandi cat, more, less, head e tail
Sono 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 comando
cat mostra l’intero file in una sola volta. Esistono poi altri due comandi, head e tail, che
consentono 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 con
uno 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 cat
per visualizzare un file chiamato shells situato nella directory /etc, che contiene un
elenco 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 di
cartella. 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’opzione –n fa sì che il comando cat visualizzi un numero all’inizio di ogni linea di
output.
2 Digitate cat –n /etc/shells e premete Invio. Apparirà lo stesso elenco di shell
di prima, tuttavia questa volta all’inizio di ogni linea compare un numero.
Potete anche visualizzare un altro file presente nella stessa directory /etc chiamato
questo file a più pagine contiene molte specifiche relative ai terminali riconosciuti 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 less
per leggerlo una schermata alla volta.
termcap:
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 è possibile usare il comando more per tornare a una schermata visualizzata in precedenza.
3 Terminate la visualizzazione digitando q (per quit).
Cap01d.p65
21
15/12/00, 9.55
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. Apparirà 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 volta.
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, per
default 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 del
file /etc/termcap.
2 L’opzione –n permette di specificare il numero di linee visualizzate dal comando
head: digitate head –5 /etc/termcap e premete Invio. Appariranno le prime
cinque linee del file /etc/termcap.
3 Il comando tail visualizza le ultime linee di un file, per default dieci come nel
caso del comando head. Digitate tail /etc/termcap e premete Invio per vedere le ultime dieci linee del file /etc/termcap.
4 L’opzione –n permette di specificare il numero di linee visualizzate dal comando
tail: digitate tail –5 /etc/termcap e premete Invio. Appariranno le ultime
cinque linee del file /etc/termcap.
Reindirizzamento dell’output
In UNIX il segno di maggiore (>) prende il nome di simbolo di reindirizzamento, utilizzabile per creare un nuovo file o per sovrascrivere un file esistente allegandolo a un comando che produce output. In realtà in questo modo “reindirizzate” l’output a un file su disco
invece che al monitor. Avete già utilizzato il comando who per scoprire chi è connesso al
sistema della Dominion. Ora potete usare lo stesso comando con il simbolo di
reindirizzamento 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’output del comando who non appare sullo schermo, bensì viene reindirizzato in un
nuovo file su disco chiamato current_users. UNIX colloca il file di testo nel-
Cap01d.p65
22
15/12/00, 9.55
L’ESSENZA DI UNIX
23
la directory attiva, ossia la cartella del disco dalla quale state attualmente utilizzando il sistema.
2 Digitate cat > current_users al prompt dei comandi e premete Invio per vedere
un elenco simile al seguente che visualizza gli utenti che attualmente stanno usando
il sistema:
jean tty Feb 7
07:15
joseph tty Feb 7
beckytty Feb 7
07:15
08:05
Potete anche utilizzare il simbolo di reindirizzamento con il comando cal per salvare
un calendario in un file di testo. Per esempio, dato che alla Dominion sarete coinvolti in
un progetto di sviluppo con una data di scadenza prevista nell’anno 2001, potete salvare il
calendario 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 creare
un file di testo chiamato anno_2001.
2 Digitate less anno_2001 e premete Invio per visualizzare il calendario creato dal
comando precedente. Utilizzate i tasti freccia, PgGiù e PgSu e gli altri tasti per
spostarvi nel file.
3 Terminate la visualizzazione digitando q (per quit).
Potete anche usare il comando cat per creare file con le informazioni che digitate sulla
tastiera. Digitate cat > nomefile al prompt dei comandi, dove nomefile è il nome del
file 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à esistente
solo se desiderate sovrascrivere il file indicato. Se invece desiderate aggiungere l’output a
un file, utilizzate due simboli di reindirizzamento (>>): in tal modo le informazioni vengono aggiunte alla fine del file esistente senza sovrascriverlo.
Mentre lavorate con UNIX, vi ricordate che Rolfe Williams, il vostro supervisore, vi
ha chiesto di completare alcune attività entro la fine della settimana. Decidete pertanto di
creare 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 rapporto entro martedì e premete Invio.
3 Premete Ctrl+D.
4 Per rivedere il file appena creato, digitate cat note al prompt dei comandi e premete Invio. La frase digitata nel passaggio 2 appare sullo schermo.
(continua)
Cap01d.p65
23
15/12/00, 9.55
24
CAPITOLO 1
Dopo aver creato il file note, vi ricordate che Rolfe Williams vi ha chiesto di fare
un’altra cosa. In questo caso volete aggiungere il promemoria al file esistente, includendo
nel 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 congresso 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
•
•
•
•
•
•
•
•
•
Cap01d.p65
Il sistema operativo è il programma più importante di un computer. Esso controlla tutte le risorse 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 server, che è protetto, riceve una manutenzione ed è sottoposto a backup da parte dell’amministratore del sistema. Ogni computer in una rete con server si affida a quest’ultimo. Tutti i sistemi
di una rete peer-to-peer invece funzionano sia come server sia come client e la sicurezza e la manutenzione della rete sono distribuite a ogni sistema. Se uno dei sistemi della rete peer-to-peer
si guasta, gli altri continuano a funzionare.
Il sistema operativo UNIX è un sistema multiutente che permette a molte persone di accedere e condividere contemporaneamente il computer; è anche un sistema operativo multitasking
in quanto può eseguire più operazioni alla volta.
I sistemi UNIX possono essere configurati come server dedicati in una rete con server, workstation client in una rete basata su server, workstation client/server in una rete peer-to-peer o
workstation indipendenti non connesse ad alcuna rete.
Il concetto dei componenti stratificati che costituiscono un sistema operativo ha avuto origine con UNIX. Gli strati di software che circondano il nucleo centrale del computer proteggono 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 con
altri sistemi operativi come Windows o MS-DOS.
In UNIX potete comunicare con i programmi del sistema operativo tramite un interprete chiamato shell, che interpreta i comandi immessi dalla tastiera. UNIX fornisce diversi programmi
shell, 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 impostare gli account e proteggere la riservatezza e la sicurezza del sistema, selezionate e comunicate il
nome utente e la password all’amministratore del sistema. Potete connettervi a qualunque sistema UNIX o Linux ovunque si trovi, a patto di avere un nome utente e una password validi
sul computer host (server). Potete anche usare il programma Telnet di Microsoft Windows per
accedere a un sistema UNIX remoto.
I comandi che digitate per lavorare con UNIX hanno una sintassi rigida che potete imparare
facendo riferimento al manuale in linea, chiamato pagine di manuale. Utilizzate il programma
man per visualizzare le regole di sintassi di un comando. Utilizzate il comando whatis per vedere una breve descrizione di un comando. Usate il comando who per visualizzare un elenco degli
utenti connessi e vedere da che terminale sono collegati. Utilizzate il comando cal per visua-
24
15/12/00, 9.55
L’ESSENZA DI UNIX
•
•
25
lizzare il calendario di sistema per tutti i mesi o solo di quelli selezionati. Per disconnettervi quando
decidete 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 mantiene una cronologia dei comandi utilizzati più di recente. Usate i tasti freccia su e giù per spostarvi
in avanti o indietro nell’elenco dei comandi recenti. Potete inserire più comandi un una sola
linea di comando, a patto che li separiate con un punto e virgola. UNIX esegue i comandi nell’ordine in cui li inserite.
Potete utilizzare i comandi di visualizzazione per vedere il contenuto dei file. Utilizzate il comando cat per creare un file digitando informazioni dalla tastiera. Usate i comandi more e less
per visualizzare documenti a più pagine. Usate head e tail per visualizzare le prime o le ultime linee di un file.
Riepilogo dei comandi
Comando
Scopo
Opzioni trattate in questo capitolo
cal
cat
clear
date
Mostra il calendario di sistema
Visualizza più file
Pulisce lo schermo
Visualizza la data di sistema
-j visualizza il formato di data giuliano
-n visualizza i numeri di linea
exit o logout
head
Disconnette da UNIX
Visualizza le prime linee di un file
less
Visualizza un file lungo
una schermata alla volta
e scorre in avanti e indietro
Visualizza il manuale in linea
per il comando specificato
Visualizza un file lungo
una schermata alla volta
e scorre in avanti
Cambia la password di UNIX
Visualizza le ultime linee di un file
man
more
passwd
tail
whatis
who
Visualizza una breve descrizione
di un comando
Visualizza chi è connesso a UNIX
-u visualizza l’ora secondo il Greenwich
Mean Time
-n visualizza le prime n linee del file
specificato
-n visualizza le ultime n linee del file
specificato
-H visualizza le intestazioni di colonna
-i visualizza i tempi di inattività delle
sessioni
q visualizza un elenco rapido degli utenti
Domande
1. I comandi di UNIX distinguono tra maiuscolo e minuscolo: come devono essere digitati?
a. Tutti maiuscoli
b. Tutti minuscoli
c. Con la prima lettera maiuscola e le altre minuscole
d. Con qualunque combinazione di maiuscolo e minuscolo
Cap01d.p65
25
15/12/00, 9.55
26
CAPITOLO 1
2. In quale ordine vengono impartiti i comandi UNIX?
a. nome, argomenti, opzioni
b. nome, opzioni, argomenti
c. opzioni, nome, argomenti
d. argomenti, opzioni, nome
3. Quale di queste affermazioni è falsa?
a. Linux è compatibile con UNIX
b. Gli utenti normali non possono cambiare la data di sistema.
c. Il sistema operativo UNIX è chiamato kernel
d. 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-peer
b. con server
c. indipendente
d. workstation
5. UNIX può essere configurato per essere eseguito come __________.
a. server in una rete con server
b. workstation client in una rete con server
c. workstation client/server in una rete peer-to-peer
d. tutte le opzioni precedenti
6. Cosa è necessario per accedere al sistema?
a. Un nome utente e una password
b. Solo una password
c. Un kernel
d. Una shell
7. Il comando date di UNIX serve per __________.
a. visualizzare il calendario di sistema
b. visualizzare qualunque data nel futuro
c. ripristinare la data di sistema
d. visualizzare la data di sistema
8. Il programma man fornisce __________.
a. una guida alla programmazione
b. un riferimento in linea per la sintassi dei comandi
c. un modello di file
d. una versione del sistema operativo
9. Il comando whatis fornisce __________.
a. una breve descrizione di un comando
b. una descrizione di un comando più dettagliata rispetto a quella fornita da man
c. una descrizione di un dispositivo hardware collegato al sistema
d. un’esercitazione in linea sul sistema operativo UNIX
10. Per default il comando cal visualizza __________.
a. la data di sistema corrente
b. un elenco delle shell
c. il mese e l’anno correnti
d. il contenuto del file cal
Cap01d.p65
26
15/12/00, 9.55
L’ESSENZA DI UNIX
27
11. Qual è la definizione migliore per UNIX come sistema operativo?
a. Sistema operativo multiutente e multitasking
b. Un sistema operativo che conduce tutte le sue operazioni su un PC indipendente
c. Un sistema operativo con interfaccia utente grafica
d. Uno sistema operativo monoutente portabile
12. Perché il sistema UNIX è progettato a strati?
a. Per migliorare la velocità
b. Per permettere la connessione in rete
c. Per consentire agli altri sistemi operativi di comunicare con esso
d. Per isolare il nucleo del sistema dall’ambiente degli utenti
13. Quando visualizzate un file con il comando cat, potete __________.
a. modificare il file
b. solo visualizzare il file
c. eseguire il controllo ortografico sul file
d. cancellare il file
14. Dopo aver creato un file con il comando cat > nomefile, se utilizzate nuovamente il comando
con lo stesso nome di file, __________.
a. aggiungete le nuove informazioni al file
b. sovrascrivete il file
c. create un nuovo file
d. 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. quattro
b. sei
c. otto
d. dodici
17. L’opzione –i utilizzata con il comando who visualizza __________.
a. il proprio nome utente
b. le intestazioni di colonna.
c. informazioni sul tempo di inattività degli utenti
d. il numero di utenti attualmente connessi
18. La password non deve contenere __________.
a. numeri
b. lettere maiuscole
c. caratteri di controllo
d. il carattere di sottolineatura
19. Il simbolo > può essere combinato __________ per creare output.
a. solo con il comando cat
b. con qualunque comando che produca output
c. solo con il comando who
d. solo con il comando cal
Cap01d.p65
27
15/12/00, 9.55
28
CAPITOLO 1
20. I comandi __________ visualizzano solo le prime o le ultime linee di un file.
a. first e last
b. cat-first e cat-last
c. viewhead e viewtail
d. head e tail
21. Se inserite più comandi sulla linea di comando, dovete separarli con __________.
a. uno spazio
b. 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 sistema
c. 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 visualizzarla
sullo schermo.
25. Vero o falso? La password dev’essere diversa dal nome utente.
26. La password deve contenere almeno __________ caratteri.
a. cinque
b. otto
c. dodici
d. uno
27. Il comando passwd chiede di digitare la password ____________ volte.
a. una
b. due
c. tre
d. zero
28. Quando utilizzate il comando cat > nomefile, dovete inserire __________ per interrompere l’input da tastiera.
a. *
b. Ctrl+D
c. q
d. exit
29. Il simbolo ______________ indirizza l’output di un comando a un file.
a. *
b. $
c. >
d. <
Cap01d.p65
28
15/12/00, 9.55
L’ESSENZA DI UNIX
29
Esercizi
1. 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 Dichiarazione 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. singolarmente
b. in sequenza
9. Visualizzate i file oggi e manuale_per_date in sequenza utilizzando:
a. il comando less
b. il comando more
10. Create un file contenente il calendario dell’anno prossimo e utilizzate il comando more per visualizzare il file e spostarvi in esso.
11. Utilizzate il comando less per visualizzare il file creato nell’esercizio 10 e farlo scorrere all’indietro.
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 approfondimento
1. 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 visualizzate.
3. Combinate i comandi cat e cal per creare un file contenente un promemoria relativo a un meeting per l’analisi di un nuovo programma gestionale per alberghi. Allegate un calendario di novembre 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 contiene il file creato?
6. Il vostro amministratore di sistema alla Dominion accenna alla possibilità di specificare il numero di byte che si desidera visualizzare con i comandi head e tail. Utilizzate il comando man
per scoprire come fare, poi immettete il comando corretto per visualizzare i primi e gli ultimi
dieci caratteri del file creato al punto 3.
Cap01d.p65
29
15/12/00, 9.55