Guida avanzata a Solaris

Capitolo 2 Comandi principali di SunOS

Questo capitolo costituisce un'introduzione ai comandi principali del sistema operativo SunOS. Vengono descritte le procedure da seguire per digitare i comandi, correggere gli errori di battitura, eseguire comandi lunghi o multipli con le relative opzioni, ed altre informazioni sui comandi di SunOS.

Per eseguire i comandi, usare una Finestra di comando o una Shell, disponibili dal sottomenu Programmi dal menu Area di lavoro.

Il prompt di sistema

Dopo avere effettuato il login, lo schermo o la finestra contengono soltanto un prompt iniziale. Il tipo di prompt dipende dal tipo di shell in uso e dalla configurazione impostata dall'amministratore del sistema. Negli esempi di questo manuale verrà utilizzato il prompt di default di SunOS, il simbolo del dollaro ($).

Per informazioni su come cambiare il prompt, vedere "Modifica del prompt di sistema" in Capitolo 10.

Esecuzione dei comandi

Quando sullo schermo compare il prompt della shell, significa che il sistema è pronto per ricevere un comando dall'utente. Provare a digitare il comando date, come indicato nell'esempio (digitare date e premere il tasto Return):

$ date
lunedì, 3 febbraio 1993, 10:12:51 MET
$

Come si può osservare, questo comando visualizza la data e l'ora corrente. Si provi ora a digitare lo stesso comando con l'iniziale maiuscola:

$ Date
Date: Comando non trovato.
$

Come si può osservare, la D maiuscola non viene interpretata dal sistema allo stesso modo della d minuscola. Quasi tutti i comandi del sistema operativo SunOS devono essere digitati usando lettere minuscole.

Correzione degli errori di battitura

Se si è iniziato a digitare un comando, ad esempio Date, e ci si accorge di avere commesso un errore, è possibile correggerlo prima di premere il tasto Return. Il comando, infatti, viene inviato al sistema solo premendo il tasto Return e prima di allora non ha alcun effetto. Per correggere un errore di battitura si può procedere in due modi:

Fare una prova con entrambi i metodi per valutarne gli effetti. (Il tasto Canc/Back Space può variare a seconda dei sistemi. La combinazione Ctrl-U funziona su quasi tutti i sistemi.)

Esecuzione di comandi multipli o lunghi

Il sistema operativo SunOS permette di eseguire più comandi raggruppandoli in un'unica riga di comando. È sufficiente separare i comandi con un punto e virgola (;), come indicato nell'esempio con i comandi date e logname:

$ date; logname
lunedì, 3 febbraio 1993, 10:12:51 MET
stella
$

Come si può osservare, il sistema visualizza la data e l'ora corrente (risultato del comando date) e il nome di login dell'utente correntemente connesso al sistema (risultato del comando logname).

Se il comando da digitare è molto lungo, è possibile utilizzare una barra rovesciata (\) per continuare a scrivere sulla riga successiva. Ad esempio:

$ date; \
logname
lunedì, 3 febbraio 1993, 10:12:51 MET
stella
$

I comandi date e logname utilizzati nell'esempio, pur non essendo lunghi, dimostrano in modo semplice la possibilità di inserire una serie di comandi su più righe. Questa caratteristica risulta assai utile con un uso più avanzato del sistema, quando i comandi da inserire sono spesso più lunghi della larghezza dello schermo.


Nota -

Se si utilizza una Shell o una Finestra di comando nell'ambiente OpenWindows, per digitare i comandi su più righe non c'è bisogno di ricorrere alla barra rovesciata. Quando si raggiunge la fine di una riga, i comandi inseriti passano automaticamente alla riga successiva; l'intera sequenza viene quindi eseguita premendo il tasto Return.


Ripetizione di comandi precedenti


Nota -

La funzione di ripetizione dei comandi descritta in questo paragrafo è disponibile solo se si utilizza una C shell.


Un metodo rapido per ripetere l'ultimo comando consiste nel digitare !! e premere Return. Il sistema tiene in memoria una storia, cioè una registrazione cronologica dei comandi eseguiti ed è in grado di ripeterli. Ad esempio, se l'ultimo comando eseguito è date, digitando !! si otterrà quanto segue:

esempio% !!
date
lunedì, 3 febbraio 1993, 10:12:51 MET
esempio%

È anche possibile ripetere un qualsiasi comando già eseguito digitando !x, dove x è il numero del comando desiderato nella storia registrata dal sistema. Per visualizzare la lista dei comandi memorizzati, digitare history e premere Return. L'esempio seguente mostra un possibile output di questo comando:

esempio% history
1  pwd
2  clear
3  ls -l
4  cd /usr/home/worker
5  logname
6  date
7  history

Un altro metodo per ripetere un comando memorizzato consiste nel digitare ! seguito da un numero negativo. Ad esempio, per ripetere il penultimo comando eseguito, digitare quanto segue:

esempio% !-2
logname
stella
esempio%

In base alla registrazione cronologica, il sistema ha ripetuto il comando logname.

Un ulteriore metodo consiste nel digitare ! seguito dal primo carattere di un comando precedente. Ad esempio, se era stato inserito il comando clear per cancellare il contenuto dello schermo, lo stesso comando può essere ripetuto digitando !cl. Con questo metodo, tuttavia, occorre inserire un numero sufficiente di caratteri per rendere il comando identificabile in modo univoco. Se si inserisce una sola lettera dopo !, il sistema ripete il comando più recente che inizia con quella lettera.

Aggiunta di opzioni ai comandi

Molti comandi dispongono di opzioni che corrispondono a funzioni speciali. Ad esempio, il comando date dispone dell'opzione -u, che esprime l'ora nel fuso di Greenwich (GMT, Greenwich Mean Time) anziché nel fuso orario locale:

$ date -u
Lun, feb 3 10:12:51 GMT 1993
$

La maggior parte delle opzioni vengono espresse con un singolo carattere preceduto da un trattino (-). Non tutti i comandi dispongono di opzioni, mentre altri ne possiedono diverse. Per utilizzare più opzioni di uno stesso comando, è possibile digitarle sia separatamente (-a -b) che insieme (-ab).

Redirezione e piping dell'output di un comando

Se non specificato diversamente, i risultati (o output) dei comandi vengono visualizzati sullo schermo. Alcuni simboli speciali permettono tuttavia di redirigere l'output di un comando, ad esempio per salvarlo in un file anziché visualizzarlo sullo schermo. L'esempio seguente mostra l'uso del simbolo di redirezione (>):

$ date > file_di_prova
$ 

In questo esempio, l'output del comando date viene rediretto in un nuovo file di nome file_di_prova. Il contenuto di file_di_prova può a sua volta essere visualizzato con il comando more:

$ more file_di_prova
lunedì, 3 febbraio 1993, 10:12:51 MET
$

Come si può osservare, file_di_prova contiene l'output del comando date. (Per informazioni sul comando more, vedere Capitolo 3.)

In alcuni casi è possibile redirigere l'output di un comando perché venga utilizzato come input da un altro comando. Una serie di comandi collegati in questo modo viene detta pipeline. Il simbolo utilizzato per questo tipo di redirezione è una barra verticale (|) detta pipe.

Ad esempio, anziché salvare l'output di un comando in un file, è possibile utilizzarlo come input per un comando di stampa (lp) usando il simbolo di pipe (|). Per inviare l'output del comando date direttamente alla stampante, digitare quanto segue:

$ date | lp
$

L'output del comando date verrà stampato. (Per informazioni sull'uso del comando di stampa lp, vedere "Invio di una richiesta alla stampante di default" in Capitolo 8.)

Gli esempi di piping e redirezione illustrati finora sono piuttosto semplici, ma le potenzialilità di queste funzioni verranno ulteriormente approfondite nella descrizione di procedure più avanzate.

Esecuzione di comandi in background

In molti casi può essere comodo digitare un comando dal prompt di sistema e quindi lasciare che l'esecuzione avvenga in background. Se un comando non viene posto in background, il prompt non ricompare fino al termine della sua esecuzione. Perciò, per evitare i possibili tempi di attesa, si può rendere la finestra immediatamente disponibile per l'inserimento di altri comandi.

Per eseguire un processo in background, digitare una `e commerciale' (&) dopo il comando, come illustrato nell'esempio seguente. Il numero che compare è l'identificativo (id) del processo:

$ bigjob &
[1] 21414
$ 

Il comando bigjob verrà eseguito in background, lasciando la shell immediatamente disponibile per l'inserimento di altri comandi. Una volta completato il processo, inserendo un nuovo comando, ad esempio date, verrà visualizzato un messaggio simile al seguente:

$ date
lunedì, 3 febbraio 1993, 10:12:51 MET
[1]  + Done    bigjob
$ 

Se si desidera terminare la sessione di lavoro senza attendere il completamento di un processo in background, usare il comando nohup (no hangup) per consentirne l'esecuzione completa, come illustrato in questo esempio. In caso contrario, il processo in background verrà terminato al momento del logout:

$ nohup bigjob &
[1] 21414
$

Come ottenere informazioni sui comandi OS

In questa sezione vengono descritte alcune funzioni di guida online. Queste funzioni permettono di ottenere informazioni di riferimento direttamente dalla propria workstation o dal proprio terminale.


Nota -

Le funzioni descritte in questo paragrafo si aggiungono alle funzioni di guida di OpenWindows.


Visualizzazione delle pagine di riferimento con il comando man

Se si conosce il nome di un comando ma non si è certi degli effetti che produce, il comando man può essere d'aiuto. Per avere maggiori informazioni su questo comando, digitare:

$ man man

Questo comando visualizza l'inizio di una pagina di riferimento del manuale online di SunOS. Premere la barra spaziatrice per passare alla videata successiva, oppure premere il tasto Q per uscire e tornare al prompt di sistema. Il comando man permette di ottenere informazioni su tutte le opzioni disponibili e sulla corretta sintassi dei comandi. Spesso le pagine di riferimento contengono esempi che illustrano i possibili impieghi dei comandi.

Visualizzazione di una breve descrizione dei comandi con whatis

Per visualizzare una descrizione sintetica del funzionamento di un comando, usare il comando whatis come illustrato in questo esempio:

$ whatis date
date (1)           -display or set the date
$

Si osservi il numero tra parentesi dopo il nome del comando. Questo numero indica la sezione del manuale di riferimento online alla quale appartiene il comando. I comandi sono infatti raggruppati in diverse categorie a seconda della loro funzione. La maggior parte dei comandi utente è contenuta nella sezione 1. Per convenzione, il numero della sezione compare tra parentesi dopo il nome del comando. Nel manuale di riferimento stampato, i comandi compaiono in ordine alfabetico all'interno del gruppo di appartenenza.

Ricerca per parole chiave con apropos

Se si vuole eseguire una data operazione ma non si è certi sul comando da utilizzare, il comando apropos può essere di aiuto. Questo comando permette di individuare uno o più comandi tramite una ricerca per parole chiave. Il risultato del comando apropos è un elenco di tutti i comandi le cui descrizioni sintetiche contengono la parola chiave specificata. Se la parola chiave impostata figura in numerose descrizioni, il risultato potrà essere un lungo elenco di comandi in qualche modo correlati.

Per avere alcuni esempi dell'output del comando apropos, provare ad eseguire uno o più dei comandi seguenti:

Se la parola chiave inserita genera un elenco eccessivamente lungo, è possibile premere Ctrl-C per interrompere l'elencazione e tornare al prompt di sistema. (Premere il tasto Control e contemporaneamente il tasto "c".)