Vediamo
ora dei comandi UNIX che ci serviranno per fare gli esempi e gli esperimenti
delle prossime pagine. Questa può essere considerata una piccola
integrazione alla breve introduzione allo UNIX costituita dalle pagine
"primo
contatto con il sistema UNIX".
Già nella pagina precedente
abbiamo visto l'uso del comando setenv,
sia per consultare le variabili d'ambiente sia per modificarne il valore
(o crearne di nuove). Quando il sistema riceve il comando "echo
stringa", risponde
con la stessa stringa. Questo può sembrare un comando un po' inutile,
ma la filosofia dello UNIX è quella di creare dei comandi che eseguono
operazioni elementari, per poi combinarli e concatenarli (vedremo come)
per eseguire compiti più complessi. Un altro uso del comando echo
è quello di mostrare il valore di una singola variabile di sistema:
è sufficiente eseguire "echo
$NOMEVARIABILE".
Il comando "more
nomefile" mostra
il file una pagina alla volta, aspettando che l'utente prema la barra spaziatrice
per passare alla prossima pagina.
Il comando "tail
+2 nomefile" prende
il file indicato, a partire dalla seconda riga dall'inizio, e lo stampa
sul display. In realtà questo comando manda l'output sullo standard
output, che appunto è il display. Per poter utilizzare più
efficacemente il comando è necessario redirezionare l'output in
maniera opportuna. Per chiarire cosa si intenda per standard
output, standard
input e redirezione,
diremo che un programma ha di default (cioè a meno di specifiche
diverse da parte dell'utente) un ingresso per gli input che viene chiamato
standard input ed una uscita per gli output che viene chiamata standard
output. Entrambe possono garantire un flusso di dati continuo, nel senso
che, quando il programma necessita di un input, consulta lo standard input
(mediante una funzione di libreria) e cattura tutto quello che c'è
prima del prossimo separatore di input (generalmente un carattere return),
quando invece produce un output lo invia allo standard output. Generalmente
lo standard input è la tastiera, mentre lo standard output è
il display. Per esempio: il comando "ls"
scrive il contenuto della directory corrente sullo standard output (display).
Il comando "more"
prende il nome di un file dallo standard input (tastiera) e mostra il file
a pagine sullo standard output (display). Nel sistema UNIX questi
flussi di dati possono essere controllati dall'utente. In particolare è
possibile deviare (redirigere) l'output di un programma in maniera che
invece di andare a finire sul display venga memorizzato in un file (redirezione
dell'output); oppure è possibile che l'output di un programma diventi
l'input di un altro programma (pipe, cioè "tubo"). Per esempio
eseguendo "ls | more"
(il simbolo "|"
si pronuncia "paip"), il sistema eseguirà il comando ls,
e manderà il suo output (la lista dei file della directory corrente)
in ingresso al comando more,
che la mostrerà una pagina dopo l'altra. Eseguendo "tail
+2 nomefile > altrofile"
il contenuto del file nomefile
privato delle sue prime
2 righe verrà memorizzato nel file altrofile.
Infine "xv"
è un'applicazione che ci servirà per vedere delle immagini
codificate in file binari, in formati grafici come il .gif o .jpg (xv
supporta tutti i formati grafici più comuni).
pagina precedente
prossima pagina