2 minuto/i di lettura

TLDR: > <: redirigono l’output e l’input di un comando in un file e da un file.

lanciare il comando:

ls -l /etc/

a video mostra il contenuto della directory /etc (che per informazione è una directory dove linux memorizza varie configurazioni di sitema)

ora lanciate il comando:

ls -l /etc/ > risultato.txt 

a video il comando non mostra nulla,

dove è finito l’output ?

ls -l risulta*

c’è ora un file creato da pochissimo, visualizziamone il contenuto con :

cat risultato.txt

l’output del comando dato all’inizio è ora memorizzato nel file risultato.txt.

l’operatore > serve per reindirizzare lo standard output di un comando in un file

ora lancia i comandi:

ls -l > risultato.txt

Cosa conterrà il file risultato? Scopriamolo con :

cat risultato.txt

il contenuto precedente viene sovrascritto.

ora proviamo:

date >> cheoresono.txt

poi lanciatelo più volte aspettando un secondo tra un comando e l’altro.

lanciate più volte :

date >> cheoresono.txt

e poi :

    whoami >> cheoresono.txt

ora vediamo cosa contiene il file :

cat  cheoresono.txt

l’operatore >> reindirizza l’output appendendolo su un file.

Input redirection

sul sistema che state usando è installato un comando scomponi. Questo comando chiede in input una serie di numeri (maggiori di uno ) e ne stampa la sua scomposizione in fattori primi (se non sapete che cosa è chiedete alla prof.ssa di matematica ).

lanciatelo:

scomponi

Per interrompere il programma bisogna premere ctrl + d

Dopo aver preso confidenza con il comando scomponi lanciate il comando :

nano numeridascomporre.txt

e scrivete nel file :

24
68
89
128
503
31
16

salvate il file con ctrl + s

uscite da nano con ctrl + x

controllate che avete effettivamente salvato il file:

cat numeridascomporre.txt

ora lanciate il comando:

scomponi < numeridascomporre.txt

Il programma scomponi ora non si ferma a chiedere all’utente i numeri perchè li preleva dal file numeridascomporre.txt, quando incontra la fine del file ( eof ) termina.

Il reindirizzammento dell’input funziona anche con tutti i comandi interattivi, sia di sistema sia quelli creati dall’utente (come in questo caso è scomponi)

componendo i reindirizzamenti

lanciate il comando :

scomponi < numeridascomporre.txt > numeriscomposti.txt 

ora il comando preleva l’input dal file numeridascomporre.txt e non stampa più nulla a video perchè lo stampa nel file numeriscomposti.txt-

lanciate:

cat numeriscomposti.txt

esercizio sfida:

crea un file 10000scomposti.txt con la scomposizione dei numeri da 2 a 10000,

suggerimento : creare un file con i numeri da 2 a 10000 e darlo in pasto a scomponi con il reindirizzamnto dell’input. ( sai compilare un file c++ ? )

suggerimento2 : cercare un comando bash/linux che stampi i numeri da 2 a 10000 per creare il file da dare in input

suggerimento3 : evita la creazione del file da dare in input studiando da solo il piping dei comandi bash (cerca sul web)

svolgi nei tre modi suggeriti l’esercizio

esercizio sfida n.2 :

elimina dal file ottenuto nel punto precedente le righe :

inserire un numero >1 da scomporre in fattori primi, [ ctrl ] + [ d ] per uscire

suggerimento : studia (cercando sul web) il comando grep