Pagine

venerdì 19 dicembre 2008

Bash, script e comandi da shell su linux

Premessa

Chi ha già utilizzato un computer e si avvicina a Linux per la prima volta, prova un terrore atavico verso la riga di comando ovvero la possibilità di manovrare il computer tramite comandi scritti e non con un click del mouse. Questo avviene perchè si pensa a linux come un sistema rigido e poco supportato dalla grafica e non c'è nulla di più sbagliato come si può vedere nel filmato di seguito. L'obbiezione più ricorrente è: "Ma se devo digitare comandi per fare questa o quella cosa invece di fare doppio click.... questo sistema non fa per me...".


Il completo rifiuto di alcuni sistemi operativi di questo strumento fa perdere molte potenzialità all'utente il quale non immagina nemmeno di poter fare alcune operazioni semplici ma che ai suoi occhi rasentano l'impossibile per la mancanza di strumenti grafici. Lo spegnimento del computer automatico ad una determinata ora, il backup o l'invio di una mail al verificarsi di un determinato evento in automatico... Tutte operazioni estremamente semplici ma che diventano altrettanto complesse
con un sistema a finestre in maniera automatizzata. Il costo da pagare per godere di questa flessibilità e potenza nella gestione della propria macchina è conoscere un minimo di concetti di programmazione (sapere come funziona un if-else o un ciclo for)...

I sistemi a finestre nascondono questa possibilità.

Linux, al contrario, sebbene abbia ottimi gestori di finestre, sfrutta molto la possibilità di scrivere comandi da riga di comando. La riga di comando viene anche chiamata shell e ciascun comando viene interpretato da un interprete che se reputa corretto, lo esegue.
E' anche possibile riunire uno o più comandi all'interno di uno "script".
Uno script è un file di testo che può essere lanciato dall'utente o ad un determinato orario.
Quest'ultima funzionalità è estremamente utile perchè permette di programmare azioni di manutenzione della macchina o di controllo su un server in maniere estremamente semplice.

Con uno script è possibile spegnere il computer ad una determinata ora, fare il backup del sistema e spedirlo via ftp su un disco remoto, aggiornare la rubrica con l'ultima versione disponibile e mille altre cose.

Su linux ci sono due modi per accedere alla riga di comando. La prima è uscire dalla modalità grafica premendo la combinazione di tasti CTRL+ALT+F1. In questo modo ci si troverà in un ambiente completamente testuale nel quale è possibile digitare i propri comandi e dal quale si
può tornare all'ambiente grafico con CTRL+ALT+F7; il secondo metodo consiste nell'aprire una finestra detta shell. Questa si trova, solitamente nel menù iniziale sotto la voce "terminale".

Le shell

Come detto in precedenza, esistono diversi interpreti. Quando si apre una shell e si digita un comando si può decidere l'interprete che si vuole utilizzare.
Scegliere un interprete o un altro decreta il modo di inserire i comandi.
Tra gli interpreti più conosciuti troviamo:
  • bash (Bourne Again Shell) Ideata dalla Free Software
    Foundation come shell di pubblico dominio è la più utilizzata su linux ed in ambienti accademici.
  • csh (C shell), Scritta all'universita' di
    Berkley, California. Come indica il nome, il suo linguaggio di
    programmazione è molto simile al C.
  • sh (Bourne Shell) E' la shell originale di UNIX,
    scritta da Steve Bourn presso i Bell Labs. Essa è disponibile su tutti i sistemi
    UNIX ma non possiede le agevolazioni interattive fornite da shell piu'
    recenti come C e Korn. La Bourne shell fornisce un semplice linguaggio
    per la sua programmazione.
  • ksh (Korne Shell) E' stata scritta da David Korn presso i
    Bell labs. E' la shell di default nei sistemi UNIX attuali. Fornisce
    le stesse prestazioni della C e TC shell unitamente a un linguaggio di
    programmazione simile a quello della Bourne shell.
Dato che senza ombra di dubbio, la bash è la più utilizzate nei sistemi linux e per questo futuro riferimento per i miei post.

Nessun commento:

Posta un commento