5.7 Visualizzazione del contenuto di un file

Il contenuto di un file di testo può essere visualizzato sia con il comando cat (man page cat(1)) che per mezzo di appositi programmi, i text viewer (visualizzatori di testo), i quali suppongono che il file sia in formato testo, ovvero che non abbia alcun tipo di formattazione.

____________________________________________________________________

Comando: cat
Path: /bin/cat

SINTASSI  
$ cat [option] [file]  
DESCRIZIONE

Se non viene specificato nessun file o file è costituito dal carattere ‘-’, viene considerato lo standard input._______________________________________________________________________________________________

Ad esempio, il seguente comando

 
$ cat ~/.bashrc  
visualizza il contenuto del file ~/.bashrc, che può essere, ad esempio, quello riportato di seguito.

# .bashrc
# User specific aliases and functions
# Source global definitions
if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi
Anche i comandi head (man page head(1)) e tail (man page tail(1)) permettono di visualizzare le prime o ultime n righe di un file.

____________________________________________________________________

Comando: head
Path: /usr/bin/head

SINTASSI  
$ head [option] [file]  
DESCRIZIONE

____________________________________________________________________

___________________________________________________________________________________________________________

Comando: tail
Path: /usr/bin/tail

SINTASSI  
$ tail [option] [file]  
DESCRIZIONE

________________________________________________________________________

I text viewer più utilizzati sui sistemi Unix-like sono more e less. Questi permettono la visualizzazione di file in formato testo, e forniscono all’utente gli strumenti per poter scrorrere il contenuto del file e soffermarsi sulla parte che interessa.

__________________________________________________________________________________________________________

Comando: more
Path: /bin/more

SINTASSI  
$ more [option] file  
DESCRIZIONE

_____________

Il comando more è dotato anche di comandi interattivi che vengono impartiti per mezzo dell’ultima riga dello schermo che non viene utilizzata per visualizzare il testo del file specificato. I comandi interattivi si basano su quelli di vi (v. più avanti) e sono riportati nella tab. 5.5.


Comando------|Descrizione-----------------------------------------|
H||-?-|-----|visualizza l’elenco dei comandi interattivi (help)-----------|
[n]|Spacebar|    |visualizza le successive n righe del file (per default n `e il numero di
||-|----    |righe dello schermo)                                   |
[n]-Z-        |visualizza le successive n righe del file ed n diventa il nuovo default
||---|      |(per default n `e il numero di righe dello schermo)         |
[n]-Return-      |v(piseural dizezfaau llet s nu `ecc 1e)ssive n righe del file ed n diventa il nuovo default
[n]|D|        |visualizza le successive n righe del file ed n diventa il nuovo default
||--    |-| |(per default n `e 11)                                |
Q|||Shift--Q- |esce da more                                       |
[n]S-|        |visualizza le successive n righe del file (per default n `e 1)|
[n]F-|        |visualizza l’n-esima schermata successiva del file (per default n `e 1)
[n]-B-        |visualizza l’n-esima schermata precedente del file (per default n `e 1)
’|          |visualizza la posizione a cui`e iniziata l’ultima ricerca nel testo
=-          |visualizza il numero della riga corrente                  |
[n]/pattern     |ricerca    l’n-esima    occorrenza   dell’espressione    rego- |
|           |   le espressioni regolari saranno trattate nel cap. ??.   |
|           |lainrde1icata da pattern (per default n `e 1)                 |
[n]|N|        |ricerca la prossima  n- esima occorrenza dell’espressione regolare |
|---        |indicata dal precedente comando /pattern (per default n `e 1)
!cmd  |:!cmd  |esegue il comando cmd in una subshell (shell lanciata come processo
||          |figlio)                                              |
V-          |laitnocria dianelasnecciuazreion`ee supneceidfiitcaotro ( nve.ll pai`u vaavraianbtiil)ea dllia alimnbeaiencotrer VenItSeUA(Ll’e,d s-e
|           |non esiste viene lanciato quello specificato nella variabie di ambiente
|           |EDITOR e se anche questo non esiste viene lanciato vi)      |
:[n]n         |visualizza il successivo n-esimo file (per default n `e 1)    |
:[n:f]p         |vvisisuualalizizzzaa i ill p nreomceedednetel filne- e es limao linfielea ( cpoerrre dntefiault n `e 1)    |
.           |ripete il comando precedente                           |
----------------------------------------------------------------

Tabella 5.5: Comandi di more.

Ad esempio, il comando

 
$ more ~/.bashrc  
visualizzerà una schermata analoga a quella seguente

# .bashrc
# User specific aliases and functions
# Source global definitions
if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi
BLACK="\[\033[0;30m\]"
RED="\[\033[0;31m\]"
GREEN="\[\033[0;32m\]"
BROWN="\[\033[0;33m\]"
BLUE="\[\033[0;34m\]"
PURPLE="\[\033[0;35m\]"
CYAN="\[\033[0;36m\]"
LIGHTGRAY="\[\033[0;37m\]"
DARKGRAY="\[\033[1;30m\]"
LIGHTRED="\[\033[1;31m\]"
LIGHTGREEN="\[\033[1;32m\]"
YELLOW="\[\033[1;33m\]"
--More--(62%)
in cui è visualizzato il contenuto del file .bashrc presente nella home directory di ogni utente.

Il file .bashrc qui presentato è stato opportunamente modificato per aumentarne il numero di righe in modo tale da oltrepassare il numero di righe dello schermo, altrimenti more terminerebbe subito dopo averlo visualizzato (e non apparirebbe nessuna indicazione della percentuale di visualizzazione del file).

Per uscire da more si può premere il tasto .

Il comando less (man page less(1)) nasce come contrapposizione a more e ne estende notevolmente le funzionalità.

____________________________________________________________________

Comando: less
Path: /usr/bin/less

SINTASSI  
$ less [option] file  
DESCRIZIONE

__________________

Come more, anche less è dotato di comandi interattivi che vengono impartiti per mezzo dell’ultima riga dello schermo che non viene utilizzata per visualizzare il testo del file specificato. I comandi interattivi si basano su quelli di vi (v. più avanti) e sono riportati nella tab. 5.6.


Comando-----------|Descrizione--------------------------------------------|
H|---------------|visualizza-l’elenco dei comandi interattivi (help)---------------|
[n]{|Spacebar-|||F-}   |scorre in avanti n righe (per default n `e il numero di righe dello schermo)|
[n]|Z|----- ---    |come |Spacebar-, ma se n `e specificato diviene la nuova dimensione della
|---             |finestra visibile                                          |
[n]{ Return|||E|||J} |visualizza le successive n righe del file (per default n `e 1)     |
[n]|D|--- ---  --- |scorre in avanti n righe (per default n `e la met`a del numero di righe dello
||-|             |schermo). Se n `e specificato, diventa il nuovo valore di default  |
[n]|B-|            |scorre indietro n righe (per default n `e il numero di righe della finestra)
[n]-W-| |--|       |come-B-, ma se specificato n diventa la nuova dimensione della finestra
[n]{Y|-|-K-}       |scorre indietro n righe (per default n `e 1)                  |
[n]-U-             |scorre indietro n righe (per default n `e la met`a del numero di righe dello
||--||  |--|     |schermo). Se n `e specificato, diventa il nuovo valore di default  |
[n]Esc-)-| --->--     |sccoorlornen vee drseoll doe sschtrearmdio)n colonne (per default n `e la met`a del numero di
[n] Esc-(|||<---|     |scorre verso sinistra di n colonne (per default n `e la met`a del numero di
------  ----     |colonne dello schermo)                                   |
R-|--|           |aggiorna la visualizzazione dello schermo                       |
Shift|R|            |aggiornalavisualizzazionedelloschermo scartandoidatipresentinelbuffer |
Shift-F-            |scorrein avantiriprovandoa leggereilfileanchese`estataraggiunta lafine |
[n]-G-|--|         |visualizza la riga n (per default n `e 1)                     |
[n]-Shift|G|--|       |visualizza la riga n (per default n `e l’ultima riga del file)      |
[n]{P--|-%- }      |visualizza la porzione del file che corrisponde alla percentuale n% (n deve
||-|             |essere compreso tra 0 e 100)                             |
[n] {-             |se il carattere ‘{’ appare nella prima riga visualizzata sullo schermo, visu-
|                |apliiz`uza calaratritegrai c ‘{o’,n vteineneneteco lnas rideelaratitvoa l ‘’n}’- e.s Simeo sulla prima riga sono presenti
[n]}-|             |seilcarattere‘}’apparenell’ultima rigavisualizzata sullo schermo, visual-|
|---             |izza la riga contenente la relativa ‘{’. Se sull’ultima riga sono presenti pi`u
||-|             |caratteri ‘}’, viene considerato l’n-esimo                       |
[n] (|             |come|{-, ma applicato al simbolo ‘(’                      |
[n] )|             |come|}-, ma applicato al simbolo ‘)’                      |
[n] [              |come|{ , ma applicato al simbolo ‘[’                      |
[n]]|              |come|}-, ma applicato al simbolo ‘]’                      |
[n] Esc-Ctrl F|x y   |come|{|,ma utilizza lacoppiadicaratterix ey comedelimitatorediinizio|
|---------       |e fine---                                               |
[n] Esc-Ctrl B|x y   |come|}|,ma utilizza lacoppiadicaratterix ey comedelimitatorediinizio|
|---------       |e fine---                                               |
M|x              |marca la posizione corrente con la letetera minuscola x        |
’x               |ritorna alla posizione precedentemente marcata con la lettera x (se x `e ^o $
------------------viene visualizzato rispettivamente-l’inizio o la fine del file)------

Tabella 5.6: Comandi di less (I parte).


Comando-----|Descrizione--------------------------------------------------|
[n]/pattern----|ricerca nel file-l’n- esima-occorrenza del pattern-(per-default n-`e 1).-La ricerca
|          |avviene dalla seconda riga visualizzata sullo schermo (in avanti) (v. tab.5.8)
[n]?pattern    |ricerca nel file l’n- esima occorrenza del pattern (per default n `e 1). La ricerca
|          |avviene dalla riga precedente alla prima visualizzata sullo schermo (indietro) (v.
[n]|N|       |taribp.e 5te.8 l)a ricerca precedente trovando l’ n- esima successiva occorrenza del pattern
[n]|Shift|N-|   |ripete la ricerca precedente trovando l’n-esima precedente occorrenza del pattern
[n] Esc-N|    |ripete la ricerca precedente trovando l’n- esima successiva occorrenza del pattern|
|------|--||estendendo la ricerca all’elenco di tutti i file specificati nella riga di comando
[n] Esc-Shift-N |ripete la ricerca precedente trovando l’n- esima precedente occorrenza del pattern
|-|-|      |estendendo la ricerca all’elenco di tutti i file specificati nella riga di comando
Esc-U---------annulla-l’evidenziazione delle occorrenze del pattern-------------------

Tabella 5.7: Comandi di less (II parte).


Carattere-|Significato------------------------------------------|
!-------|ricerca le righe che non-contengono il pattern-specificato-di seguito
*       |ricerca il pattern in tutti i file elencati nella riga di comando
@       |ricerca il pattern a partire dalla prima riga del primo file (o ultima
|-|-|   |riga dell’ultimo file) dell’elenco fornito nella riga di comando  |
Ctrl-K-   |edveidle filnzei vais leuastlirzzinagthae s culhloe sscodhdeirmsfoano il pattern, contenute nella parte
Ctrl|R|   |non interpreta le espressioni regolari (v. cap. ??)         |
------------------------------------------------------------

Tabella 5.8: Caratteri particolari all’inizio del pattern di ricerca.

Una volta lanciato less, viene visualizzato il contenuto del file specificato. L’ultima riga dello schermo viene utilizzata per impartire i comandi e l’utente può utilizzare su questa le combinazioni di tasti riportate nella tab. 5.9.
Combinazione------------|-Significato---------------------------------------|
<---||Esc||H|------------|-muove-il cursore-di una-posizione-verso-sinistra------------|
-->-||Esc||L|            | muove il cursore di una posizione verso destra             |
Ctrl|<---|||Esc|B-||Esc|<----|| muove il cursore di una parola verso sinistra              |
Ctrl|-->-|||Esc|W-|||Esc|-->-|| muove il cursore di una parola verso destra               |
Home||Esc||0|--  -------| muove il cursore all’inizio della riga                   |
End||Esc||$|-           | muove il cursore alla fine della riga                      |
Backspace| ---            | cancella il carattere alla sinistra del cursore            |
Del||Esc|X-|            | cancella il carattere sulla posizione del cursore           |
Ctrl-Backspace-|-Esc|-Backspace- | cancella la parola alla sinistra del cursore             |
Ctrl-Del||Esc--X-|-Esc-Del| | cancella la parola sulla posizione del cursore           |
 |^ ||-Esc-K|            | richiama il comando precedente                       |
 |, |||Esc|J             | richiama il comando successivo                       |
Tab-------             | completailnome delfileallasinistra delcursore (ciclandosututti |
|-||--||--||--|       | i nomi|degli eventuali file che lo completano)           |
Shift|-Tab|-Esc -Tab-       | come Tab-ma cicla in ordine inverso                    |
Ctrl-L-                 | completa il nome del file alla sinistra del cursore (riportando
|                     | sucolmlp rilgetaa dnio c)omando tutti i nomi dei file che eventualmente lo
Ctrl|U-||Esc|            | cancella l’intera linea di comando                     |
------------------------------------------------------------------------

Tabella 5.9: Combinazioni dei tasti sulla riga di comando di less.

Ad esempio, il comando

 
$ less ~/.bashrc  
visualizzerà una schermata analoga a quella seguente

# .bashrc
# User specific aliases and functions
# Source global definitions
if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi
/home/daniele/.bashrc (END)
in cui è visualizzato il contenuto del file .bashrc (standard) presente nella home directory di ogni utente. Per uscire da less si può premere il tasto .

Per una spiegazione più dettagliata si consiglia comunque di consultare la relativa man page.

Un file non testo (binario) può essere visualizzato con i comandi od (man page od(1)) e hexdump (man page hexdump(1)) ed un altro comando utile per visualizzare i caratteri testuali contenuti in un file binario è strings (man page strings(1)).

____________________________________________________________________

Comando: od
Path: /usr/bin/od

SINTASSI  
$ od [option] file
$ od --traditional file [[+]offset [[+]label]]  
DESCRIZIONE

I valori che si riferiscono a numeri di byte possono essere preceduti da 0x che indica un valore esadecimale, o seguiti da lettere che fungono da moltiplicatori: b (512), k (1 024), m (1 048 576). ______________________________________________________

___________________________________________________________________________________________________________

Comando: hexdump
Path: /usr/bin/hexdump

SINTASSI  
$ hexdump [option] file  
DESCRIZIONE

______________________________________

Il contenuto dei file oggetto4 (il risultato della compilazione di un file) può essere visualizzato con il comandi nm (man page nm(1)) e objdump (man page objdump(1)).