La Bash
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.
Lo storico dei comandi (history)
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).
Alias
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.
Standard Input, Standard Output
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.
Standard Error
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>".
Ridirezionamento dei comandi
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.
Wildcards
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:
* espande zero o più caratteri
? espande un unico carattere
[a-z] espande un carattere nell'intervallo a-z
[abc] espande un carattere nell'insieme (a, b, c)
^ vieta la corrispondenza successiva (ad esempio [abc])
~ rappresenta la home directory dell'utente
Per disabilitare l'uso dei metacaratteri è necessario anteporre il carattere "\". Nell'esempio che segue viene dimostrato
come utilizzare un comando della shell associandolo con il metacarattere "*" per rimuovere tutti i file che hanno "stat"
come parte iniziale del nome:
$ 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:
- Bash Prompt HOWTO
- Bash Programming HOWTO
|