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):
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 >:
echo "Ciao a tutti" > saluti.txtQuesto comando esegue echo e reindirizza il suo output nel file saluti.txt.
[!IMPORTANT] Se il file
saluti.txtnon 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):
cat saluti.txtAggiungere output (Appendere): >>
Se invece di sovrascrivere un file vuoi aggiungere nuove righe alla fine del contenuto esistente, devi utilizzare l'operatore di aggiunta >>:
echo "Nuova riga di testo" >> saluti.txtOra, 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):
cat notes.txt info.txt
# Output:
# Keep learning Linux!
# Linux is awesome.Puoi reindirizzare l'output combinato in un terzo file usando l'operatore >:
cat notes.txt info.txt > combined.txtSe tenti di leggere un file che non esiste, cat scriverà un messaggio di errore:
cat file_inesistente.txt
# Output:
# cat: file_inesistente.txt: No such file or directoryProva tu
Esercizio 1: Crea un file con un saluto
Crea un file chiamato 'hello.txt' contenente esattamente la scritta 'Hello World' usando il comando echo e l'operatore >.
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
Aggiungi la riga 'Linux is fun' alla fine del file esistente 'notes.txt' senza cancellare il suo contenuto attuale.
Mostra suggerimento
Usa l'operatore >> per appendere testo al file notes.txt.
Soluzione disponibile dopo 3 tentativi
Esercizio 3: Concatena file
Concatena i contenuti dei file 'notes.txt' e 'info.txt' e salva il risultato combinato in un nuovo file chiamato 'combined.txt'.
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