La shell è l’interprete dei comandi di un sistema operativo e serve per effettuare tutte quelle operazioni in cui l’interfaccia grafica non serve, modifica dei files di configurazione o lavorare tramite connessione protetta con SSH. Per visualizzare le informazioni attuali della shell utilizzare il comando stty -a, per disabilitare una caratteristica inserire il comando seguita dal segno meno e la caratteristica, per esempio stty -opost. Per cambiare un valore inserire il comando + il nome del valore, ad esempio per assegnare il comando erase a Ctrl+E scrivere stty erase e poi premere la combinazione di tasti voluta. Alcuni caratteri hanno dei significati particolari per la shell di Linux, noi faremo riferimento alla shell più utilizzata in questi articoli ossia la Bash.
- Invio – elabora il comando dopo la pressione del tasto.
- ; – separatore di comandi sulla stessa riga.
- & – alla fine di un comando esegue il programma in background.
- && – AND logico.
- | – collega lo standard output alla sinistra con lo standard input a destra.
- || – OR logico
- ! – serve per attivare la history list dei comandi.
- # – un commento
- \ – protegge il carattere che lo segue ed anche invio per nuova riga.
- $ – prima di una variabile della shell.
- * – carattere jolly.
- ? – jolly per solo un carattere.
Quando si avvia un programma nella shell di Linux, al programma vengono associati sempre tre file che sono:
- stdin – lo standard input ( la tastiera )
- stdout – lo standard output ( la finestra della shell )
- stderr – lo standard error
Abbiamo visto che un programma è associato inizialmente alla tastiera ed al display, ma è possibile cambiare questa associazione con alcuni caratteri speciali:
- > – redireziona l’output su un file o dispositivo.
- >> – funziona come il precedente, ma se il file esiste viene accodato.
- 2> – redireziona lo standard error su un file o dispositivo.
- < – redireziona l’input su un file o dispositivo.
- | – combina due comandi semplici per crearne uno complesso, la “pipe”.
Ad esempio per fare il log di un comando utilizziamo la redirezione dello stderr in questo modo:
cp x y 2&> err.log
in questo esempio se si verificasse un errore nella copia del file x in y l’errore andrebbe sul file err.log.
Nel prossimo articolo continueremo a parlare della shell di Linux e più precisamente dell’introduzione ai comandi.