← Back to course

Leggere e Cercare nei File

Leggere e Cercare nei File

Bentornato.

Nella lezione precedente hai imparato a creare, copiare, spostare, rinominare ed eliminare file.

Ora è il momento di guardarci dentro.

Perché i file non sono decorazioni. Sono contenitori di informazioni.

A volte informazioni utili.

A volte log.

A volte un file di configurazione che sembra scritto da un mago durante un temporale.

Cosa Imparerai

In questa lezione imparerai a:

La Missione

La tua missione è semplice:

Creare alcuni file di testo, leggerli, controllarli e cercare informazioni al loro interno.

Trasformiamo il terminale in uno strumento da detective.

Non serve la lente d’ingrandimento.

Il cappello drammatico è opzionale.

Creare un File di Pratica

Prima vai nella cartella di pratica:

cd ~/terminal-practice

Se la cartella non esiste, creala:

mkdir -p ~/terminal-practice
cd ~/terminal-practice

Ora crea un file chiamato story.txt:

touch story.txt

Puoi aprirlo con un editor di testo, oppure crearlo velocemente dal terminale:

echo "Linux is powerful." > story.txt
echo "The terminal is direct." >> story.txt
echo "Practice makes everything easier." >> story.txt
echo "Errors are messages, not monsters." >> story.txt

Ora hai un file con alcune righe di testo.

Leggere un File con cat

Per stampare tutto il file nel terminale, usa:

cat story.txt

Dovresti vedere:

Linux is powerful.
The terminal is direct.
Practice makes everything easier.
Errors are messages, not monsters.

cat è utile per file piccoli.

Con file grandi può riempire il terminale come se qualcuno avesse aperto una fabbrica di pasta dentro lo schermo.

Usalo con saggezza.

Leggere File Lunghi con less

Per file più lunghi, usa:

less story.txt

Dentro less puoi muoverti così:

Sì, q significa quit.

Questo è importante.

Molte persone sono rimaste intrappolate dentro less più a lungo di quanto vogliano ammettere.

Vedere l’Inizio con head

Per vedere le prime righe di un file, usa:

head story.txt

Di default, head mostra le prime 10 righe.

Per mostrare solo le prime 2 righe:

head -n 2 story.txt

È utile quando vuoi capire velocemente di cosa parla un file.

Come leggere la prima pagina di un manuale prima di decidere di ignorarlo completamente.

Vedere la Fine con tail

Per vedere le ultime righe di un file, usa:

tail story.txt

Per mostrare solo le ultime 2 righe:

tail -n 2 story.txt

tail è molto utile per i file di log, perché le informazioni nuove di solito arrivano alla fine.

Per esempio:

tail -f app.log

L’opzione -f segue il file dal vivo.

Continua a mostrare le nuove righe mentre appaiono.

Molto utile.

Anche leggermente ipnotico.

Cercare Dentro un File con grep

Per cercare testo dentro un file, usa grep.

Cerca la parola terminal:

grep "terminal" story.txt

Dovresti vedere:

The terminal is direct.

Cerca Errors:

grep "Errors" story.txt

Dovresti vedere:

Errors are messages, not monsters.

grep è uno dei comandi più utili del terminale.

Trova testo velocemente.

Come Ctrl+F, ma con un caffè più forte.

Ricerca Senza Distinguere Maiuscole e Minuscole

Di default, grep distingue maiuscole e minuscole.

Questo significa che errors e Errors sono diversi.

Prova:

grep "errors" story.txt

Potresti non vedere nulla.

Ora prova:

grep -i "errors" story.txt

L’opzione -i ignora maiuscole e minuscole.

Molto meglio.

Linux è severo, ma a volte possiamo chiedergli di rilassarsi.

Mostrare i Numeri di Riga

Per mostrare i numeri di riga, usa:

grep -n "terminal" story.txt

Potresti vedere:

2:The terminal is direct.

Questo è utile quando vuoi trovare dove appare qualcosa.

Specialmente in file di configurazione, log o codice.

Cercare in Più File

Crea un altro file:

echo "The terminal can search many files." > notes.txt
echo "Learning Linux step by step is smart." >> notes.txt

Ora cerca in tutti i file .txt:

grep "terminal" *.txt

Potresti vedere risultati da più di un file.

Qui grep inizia a sembrare un superpotere.

Non un superpotere appariscente.

Più come un bibliotecario silenzioso che trova qualsiasi cosa in tre secondi.

Errori Comuni

Usare cat su file enormi

Questo può diventare fastidioso:

cat very-large-file.log

Se il file è enorme, il terminale può riempirsi di testo infinito.

Usa:

less very-large-file.log

oppure:

tail very-large-file.log

Sii furbo. Non combattere il drago dei log con un cucchiaio.

Dimenticare le virgolette

Questo va bene:

grep "terminal" story.txt

Per parole semplici, può funzionare anche:

grep terminal story.txt

Ma se la ricerca contiene spazi, usa le virgolette:

grep "Practice makes" story.txt

Le virgolette tengono insieme le parole.

Senza virgolette, la shell può capirti male.

La shell è potente, non telepatica.

Cercare con maiuscole/minuscole sbagliate

Se questo non trova nulla:

grep "errors" story.txt

prova:

grep -i "errors" story.txt

Le maiuscole contano, a meno che tu non dica a grep di ignorarle.

Pratica

Prova questo:

cd ~/terminal-practice
cat story.txt
less story.txt
head -n 2 story.txt
tail -n 2 story.txt
grep "terminal" story.txt
grep -i "errors" story.txt
grep -n "Practice" story.txt

Poi rispondi:

  1. Quale comando stampa tutto il file?
  2. Quale comando è migliore per file lunghi?
  3. Quale comando mostra le prime righe?
  4. Quale comando mostra le ultime righe?
  5. Quale comando cerca testo nei file?

Mini Sfida

Crea un file chiamato linux-notes.txt con queste righe:

Linux is stable.
The terminal is useful.
Commands can be combined.
Practice every day.
Do not fear errors.

Poi:

  1. Mostra tutto il file.
  2. Mostra solo le prime 2 righe.
  3. Mostra solo le ultime 2 righe.
  4. Cerca la parola terminal.
  5. Cerca la parola errors ignorando maiuscole e minuscole.
  6. Mostra il numero di riga in cui appare Practice.

Usa solo comandi del terminale.

Niente mouse.

Il mouse inizia a sentirsi disoccupato.

Riassunto

Oggi hai imparato che:

Ora puoi leggere e cercare nei file dal terminale.

Questo è un grande passo.

Perché quando sai cercare, smetti di essere perso e inizi a diventare pericoloso.

In senso buono.

Più o meno.

Prossima Lezione

Nella prossima lezione parleremo di permessi e sudo.

È lì che Linux inizia a dire:

“No.”

E noi impariamo perché.