11.07.2015 Views

Amministrare GNU/Linux - Cia

Amministrare GNU/Linux - Cia

Amministrare GNU/Linux - Cia

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

52 CAPITOLO 2. LA SHELL E I COMANDIe comunque specifiche allo scopo del comando, e sono descritte dettagliatamente nella relativapagina di manuale.Il passo successivo fu quello di costruire anche un meccanismo che permettesse di combinareinsieme i vari programmi, cosicché divenisse possibile eseguire, con una opportuna combinazione,anche dei compiti che nessuno di essi era in grado di fare da solo. Questo aveva il grandevantaggio, rispetto all’approccio del programma universale, di non dover attendere che l’autoredello stesso si decidesse a programmare la funzione in più che serviva e che non era stata previstaall’inizio.Questo è il ruolo della shell, cioè del programma che implementa l’interfaccia a riga dicomando; è attraverso di essa che, concatenando vari comandi, si può costruire l’equivalente diuna catena di montaggio, in cui il risultato di un comando viene inviato al successivo, riuscendoa compiere compiti complessi con grande velocità e flessibilità, e spesso fare anche cose che gliautori dei singoli programmi neanche si sarebbero immaginati.2.1.2 Le principali shellLa modalità tradizionale con cui si utilizza l’interfaccia a riga di comando è, come accennatoin sez. 1.3.4 quando un utente, una volta completata la procedura di autenticazione, inizia unasessione di lavoro su un terminale. Questo significa semplicemente che il programma loginconclude il suo compito lanciando la shell assegnata all’utente (che come vedremo in sez. 4.3.3è specificata dall’ultimo campo di /etc/passwd). Oggi con le interfacce grafiche si hanno moltealtre modalità di accesso ad un terminale (ad esempio attraverso una finestra che contiene unterminale virtuale), in ogni caso, una volta predisposta l’opportuna interfaccia di accesso, verràcomunque lanciata una shell.Si ricordi comunque che per il kernel, secondo la filosofia fondamentale di Unix illustrata insez. 1.1.1, la shell resta un programma come tutti gli altri; essa ha però un compito fondamentale,che è quello di fornire l’interfaccia che permette di lanciare altri programmi. Inoltre è sempre lashell che permette di usufruire di tutta una serie di ulteriori funzionalità messe a disposizionedal kernel, come il controllo di sessione visto in sez. 1.3.4.Dato che la shell è un programma come gli altri, essa può essere realizzata in diversi modi,ed in effetti nel tempo sono state realizzate diverse shell. Anche in questo caso ci sono stati duefiloni di sviluppo, il primo deriva dalla prima shell creata, la Bourne shell, chiamata così dalnome del suo creatore. La Bourne shell è la shell più antica e le sue funzionalità sono anche statestandardizzate dallo standard POSIX.2. Il secondo filone deriva da un’altra shell, realizzata conuna sintassi alternativa, più simile a quella del linguaggio C, e chiamata per questo C shell.<strong>Cia</strong>scuno di questi due filoni ha dato vita a varie versioni con funzionalità più o menoavanzate; un breve elenco delle varie shell disponibili anche su <strong>GNU</strong>/<strong>Linux</strong> è il seguente:• Bourne shell e derivate.– La Bourne shell. La prima shell di Unix, in genere utilizzata semplicemente con ilcomando sh. Non viene praticamente più usata. In <strong>GNU</strong>/<strong>Linux</strong> è sostituita da bash 2o da ash. Sugli altri sistemi che rispettano lo standard POSIX, è di norma sostituitada ksh.– La Bourne-Again SHell. La bash è la shell di riferimento del progetto <strong>GNU</strong>. Ilsuo nome è un gioco di parole sul nome della Bourne shell, in sostanza una shellrinata. Viene utilizzata con il comando bash. Incorpora molte funzionalità avanzate,come la storia dei comandi (detta history), l’auto-completamento dell’input sulla lineadi comando (per comandi, nomi di file e qualunque altra cosa, date le opportune2 che quando viene invocata come sh fornisce esclusivamente le funzionalità previste dallo standard POSIX.2,disabilitando le varie estensioni di cui è dotata.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!