Passer au contenu principal
eLearner.app
Module 3 · Leçon 1 sur 26/11 dans le cours~15 min
Leçons du module (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

Exercice#linux.m3.l1.e1
Tentatives : 0Chargement…

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

Chargement de l'éditeur…
Afficher l'indice

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

Solution disponible après 3 tentatives

Esercizio 2: Aggiungi note ad un file

Exercice#linux.m3.l1.e2
Tentatives : 0Chargement…

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

Chargement de l'éditeur…
Afficher l'indice

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

Solution disponible après 3 tentatives

Esercizio 3: Concatena file

Exercice#linux.m3.l1.e3
Tentatives : 0Chargement…

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

Chargement de l'éditeur…
Afficher l'indice

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

Solution disponible après 3 tentatives