Red Hat Linux 7.1: Official Red Hat Linux Getting Started Guide | ||
---|---|---|
Indietro | Capitolo 10. Conoscenze di base sul prompt della shell | Avanti |
Red Hat Linux possiede diverse utility per ordinare delle liste brevi, unirle e nello stesso tempo mostrarvi una piccola parte delle potenzialità ancora nascoste del vostro sistema.
L'utility cat, abbreviazione di "concatenate", serve a unire più stringhe insieme.
Il comando cat visualizza inoltre i contenuti di un intero file sullo schermo (per esempio, digitate cat filename.txt). L'uso di cat è utile se il file è breve.
Ma cat può eseguire anche una dimostrazione veloce di due termini importanti: input standard e output standard.
L'input o l'output standard direzionano l'input e l'output (spesso abbreviati come I/O). Se un programma legge l'input standard, si tratta di defaul di quello della tastiera. Se un programma scrive con l'output standard, scrive di default i dati sullo schermo.
Eseguite cat per vedere il suo funzionamento. Al prompt della shell digitate:
cat |
Il cursore si sposta su una riga vuota. Digitate quindi:
stop by sneaker store |
e premete Invio. Sullo schermo compare:
[newuser@localhost newuser]$ cat stop by sneaker store stop by sneaker store |
Per uscire da cat, spostate il cursore su una linea bianca premendo Invio. Poi premete Ctrl-D contemporaneamente.
Sicuramente non si tratta di un esempio brillante, ma con cat abbiamo avuto la possibilità di mostrarvi i concetti di input e output standard. Il vostro input è stato letto dalla tastiera (input standard) ed è stato poi inviato al vostro terminale (output standard).
Ridirezionare significa cambiare ciò che la shell considera come input o output standard.
Abbiamo usato cat per spiegare i concetti di input e output standard. Ora, usiamo cat per visualizzare il modo in cui l'output può essere ridirezionato.
Per ridirezionare l'output standard, usiamo il simbolo >. Mettendo > dopo il comando cat (o dopo ogni programma che scriva sullo standard output), l'output viene ridirezionato nel file indicato dopo questo simbolo.
Fate una prova. In un prompt di shell digitate:
[newuser@localhost newuser]$ cat > sneakers.txt buy some sneakers then go to the coffee shop then buy some coffee |
Ora premete il tasto Invio per andare in una linea vuota e utilizzate i tasti Ctrl-D per uscire da cat.
Notate la differenza? (Vedere Figura 10-8). Non è stato visualizzato niente perché lo standard output di cat è stato ridirezionato verso il file chiamato sneakers.txt .
Troverete il file nella vostra directory di login (vi suggeriamo di utilizzare ls se volete visualizzarlo).
Potete utilizzare cat per leggere il file, digitando:
cat sneakers.txt |
al prompt.
Non sovrascrivete i file | |
---|---|
State attenti quando ridirezionate l'output standard verso un file, perché rischiate di sovrascrivere un file esistente! Assicuratevi che il nome del file che state creando non sia il nome di un file già esistente, se non volete sovrascriverlo. |
Ridirezioniamo l'output verso un altro file chiamato home.txt:
[newuser@localhost newuser]$ cat > home.txt bring the coffee home take off shoes put on sneakers make some coffee relax! |
Ora, su una linea vuota, premete i tasti Ctrl-D per uscire da cat.
Possiamo visualizzare ancora il file digitando:
cat home.txt |
al prompt.
Utilizzate cat per unire home.txt a sneakers.txt e ridirezionate l'output di entrambi i file verso un nuovo file chiamato saturday (troverete un esempio nella Figura 10-9). Digitate quanto segue:
[newuser@localhost newuser]$ cat sneakers.txt home.txt > saturday |
Controllate quello che avete appena fatto, digitando:
[newuser@localhost newuser]$ cat saturday |
Dovrebbe comparire quanto segue:
[newuser @localhost newuser]$ cat saturday buy some sneakers then go to the coffee shop then buy some coffee bring the coffee home take off shoes put on sneakers make some coffee relax! [newuser @localhost newuser]$ |
Come potete notare, cat ha aggiunto home.txt al termine del file sneakers.txt.
Unire i file con cat | |
---|---|
Creare e unire file con cat può essere una valida alternativa a un editor di testi come Pico. |
Potete usare il ridirezionamento dell'output per aggiungere nuove informazioni alla fine di un file esistente. In modo simile all'uso del simbolo >, indicate alla shell di non inviare l'informazione all'output standard.
Comunque quando usate >>, aggiungete informazioni, anziché sostituirle.
Per chiarire questo concetto vi illustriamo un esempio pratico: prendete due file già creati, per es. sneakers.txt e home.txt. Uniteli usando il simbolo di "unione" (>). Desiderate aggiungere le informazioni contenute in home.txt a quelle presenti in sneakers.txt, digitate dunque:
cat home.txt >> sneakers.txt |
Ora controllate il file, digitando:
cat sneakers.txt |
Abbiamo così aggiunto il contenuto di home.txt alla fine.
Il comando digitato ha indicato al sistema di aggiungere l'output del file home.txt al file sneakers.txt.
Aggiungendo l'output direttamente, abbiamo risparmiato uno o due passaggi (un pò di spazio sul disco) utilizzando file esistenti, piuttosto che crearne uno nuovo.
Confrontando i file sneakers.txt e saturday, noterete che sono identici. Per fare questo confronto, digitate:
cat sneakers.txt; cat saturday |
Sono visualizzati i contenuti di entrambi i file, prima sneakers.txt e poi saturday (come mostrato nella Figura 10-10).
Non sostituite quando aggiungete | |
---|---|
Ricordatevi che quando volete accodare l'output, dovete digitare i simboli >>. In caso contrario, create il file originale con quello che volevate aggiungere! |
Non solo potete ridirezionare lo standard output, ma anche lo standard input.
Quando utilizzate il simbolo < per ridirezionare l'input standard, indicate alla shell che un file deve essere utilizzato come input per un comando.
Per capire questo concetto, usate un file già creato. Digitate:
cat < sneakers.txt |
Utilizzando il simbolo < per separare il comando cat dal file, l'output di sneakers.txt viene letto da cat.