Vai al contenuto
eLearner.app
Modulo 3 · Lezione 1 di 26/11 nel corso~15 min
Lezioni del modulo (1/2)

Output e reindirizzamenti (echo, cat, >)

In Linux, quasi tutti i comandi leggono i dati da un canale di input e scrivono i risultati su un canale di output. Questi canali sono chiamati flussi standard (streams):

  • Standard Input (stdin): Il canale da cui il comando legge l'input (di default la tastiera).
  • Standard Output (stdout): Il canale su cui il comando scrive l'output di successo (di default lo schermo del terminale).
  • Standard Error (stderr): Il canale su cui il comando scrive i messaggi di errore (di default lo schermo).

Grazie alla riga di comando, possiamo deviare questi flussi per salvare i risultati all'interno di file.


Stampare testo: echo

Il comando echo scrive semplicemente i parametri che gli passi sul suo standard output (lo schermo):

Bash
echo "Ciao a tutti"

Reindirizzare l'output (Sovrascrivere): >

Se vuoi salvare l'output di un comando in un file invece di vederlo sullo schermo, puoi usare l'operatore di reindirizzamento maggiore >:

Bash
echo "Ciao a tutti" > saluti.txt

Questo comando esegue echo e reindirizza il suo output nel file saluti.txt.

[!IMPORTANT] Se il file saluti.txt non esiste, viene creato. Se esiste già, il suo contenuto viene completamente cancellato e sovrascritto con il nuovo output.


Leggere il contenuto: cat

Per visualizzare al volo il contenuto di uno o più file di testo, si usa il comando cat (abbreviazione di concatenate):

Bash
cat saluti.txt

Aggiungere output (Appendere): >>

Se invece di sovrascrivere un file vuoi aggiungere nuove righe alla fine del contenuto esistente, devi utilizzare l'operatore di aggiunta >>:

Bash
echo "Nuova riga di testo" >> saluti.txt

Ora, leggendo il file con cat saluti.txt, vedrai sia la prima riga sia la seconda riga.


Esempi d'Uso ed Errori Comuni

Puoi passare a cat più file contemporaneamente per visualizzarli in sequenza (concatenati):

Bash
cat notes.txt info.txt
# Output:
# Keep learning Linux!
# Linux is awesome.

Puoi reindirizzare l'output combinato in un terzo file usando l'operatore >:

Bash
cat notes.txt info.txt > combined.txt

Se tenti di leggere un file che non esiste, cat scriverà un messaggio di errore:

Bash
cat file_inesistente.txt
# Output:
# cat: file_inesistente.txt: No such file or directory

Prova tu

Esercizio 1: Crea un file con un saluto

Esercizio#linux.m3.l1.e1
Tentativi: 0Caricamento…

Crea un file chiamato 'hello.txt' contenente esattamente la scritta 'Hello World' usando il comando echo e l'operatore >.

Caricamento editor…
Mostra suggerimento

Usa echo seguito dalla stringa racchiusa tra virgolette, l'operatore > e hello.txt.

Soluzione disponibile dopo 3 tentativi

Esercizio 2: Aggiungi note ad un file

Esercizio#linux.m3.l1.e2
Tentativi: 0Caricamento…

Aggiungi la riga 'Linux is fun' alla fine del file esistente 'notes.txt' senza cancellare il suo contenuto attuale.

Caricamento editor…
Mostra suggerimento

Usa l'operatore >> per appendere testo al file notes.txt.

Soluzione disponibile dopo 3 tentativi

Esercizio 3: Concatena file

Esercizio#linux.m3.l1.e3
Tentativi: 0Caricamento…

Concatena i contenuti dei file 'notes.txt' e 'info.txt' e salva il risultato combinato in un nuovo file chiamato 'combined.txt'.

Caricamento editor…
Mostra suggerimento

Usa cat seguito dai nomi dei due file sorgente e reindirizza l'output con > nel file di destinazione.

Soluzione disponibile dopo 3 tentativi