La Bash (Bourne Again Shell) include quasi tutte le funzioni offerte dalle shell C e Korn e ne aggiunge ulteriori che ampliano largamente le possibilità di un utente. Un'ulteriore nota di rilievo di questa shell è la sua forma free secondo la filosofia Open Sources, che da un lato permette di ricevere i miglioramenti di una comunità di sviluppatori e dall'altro è liberamente utilizzabile per la sua natura totalmente gratuita.
Ogni comando lanciato viene memorizzato in una sequenza storica. Questa caratteristica serve a riutilizzare i comandi senza dover ridigitarli ogni volta scorrendo con i tasti direzione (le frecce per muoversi in alto, basso).
Per abbreviare la digitazione di comandi con molte opzioni è possibile utilizzare
gli alias. Questi ultimi vengono utilizzati nei file di configurazione della
shell in seguito trattati nella forma seguente:
alias ls=''ls -color''
L'esempio crea un alias del comando ls per utilizzare i colori e dev'essere inserito nel file .bashrc presente nella propria home directory.
Lo standard output, o stdout, è rappresentato da quello che vedete sul vostro monitor, risultato dei comandi digitati ed eseguiti. Nel momento stesso che voi digitate sulla vostra tastiera, utilizzate lo standard input, o stdin.
La shell permette di filtrare i messaggi di errore dallo standard output. Fanno
parte dello standard error tutti i messaggi che possono essere riportati da
applicazioni mal funzionanti o mal configurate. Per poter gestire e immagazzinare
in un file questi errori è necessario utilizzare una propria sintassi. Nell'esempio
che segue memorizziamo gli eventuali errori che possono sorgere dal lancio del
Server X:
$ X 2> errori.txt
Come potete notare il tutto si concentra nei caratteri ``2>''.
Se desideriamo redirigere il risultato di un comando dallo standard output su
un file è necessario utilizzare il carattere ``>'' come
segue:
$ ls > esempio.txt
Se il file ``esempio.txt'' esisteva precedentemente verrà
sostituito il contenuto del file esistente con il risultato del comando utilizzato.
Se volessimo aggiungere il risultato del nostro comando accodandolo al contenuto
del file esistente raddoppiamo il carattere di ridirezione:
$ ls >> esempio.txt
E' possibile invertire il percorso da standard input a standard output utilizzando
il carattere ``<'' come segue:
$ cat < /etc/passwd
Il comando digitato visualizza il contenuto del file ``/etc/passwd''.
Se decidessimo di ridirigere il risultato di un comando verso un ulteriore comando
è necessario utilizzare il pipe ``|'' come segue:
$ ls -la | more
Il comando digitato mostra il contenuto di una directory e lo passa al comando more per consultare il risultato pagina per pagina sullo standard output.
Nell'uso quotidiano dei comandi capita spesso di dover automatizzare delle procedure agendo su un numero variabile di file. A tale scopo vengono utilizzati dei ``caratteri jolly'', che permettono di agire su una lista numerosa di file. I metacaratteri supportati dalla gran parte delle shell sono:
$ rm -fr stat*
Nell'esempio che segue viene eseguito il comando per consultare il file ``esempio''
presente nella nostra directory ``home'' da una diversa posizione nel
file systema di sistema:
$ cat ~/esempio
I comandi utilizzati verranno spiegati in seguito. Per ampliare le proprie conoscenze sulla bash si consiglia di consultare il sito Internet http://www.linuxdoc.org e scaricare le seguenti guide:
Linux Facile - ver.4.0 - http://www.linuxfacile.org
autore: Daniele Medri <madrid@linux.it>