SHELLS

Precedente
Programma
Seguente
Bastard Operator From Hell!
csh
  Per passare da una shell all'altra, basta eseguire il nome della shell. In questo caso, se per esempio si sta utilizzando la bash, si passa alla csh semplicemente digitandone il nome.
Se si scrive poi exit, si esce dalla csh per tornare alla bash.
Linux et cetera...
Default Shell
Linux Solaris Darwin
bash sh tcsh

Shell su Windows?
Il vecchio DOS e il più recente prompt dei comandi Windows, seppur simili come aspetto (testuale) e in parte come funzionalità non danno un'idea completa di cosa è possibile fare con una shell.
E' possibile sentirne l'ebbrezza con l'ottimo CYGWIN, che è molto di più di una shell, è un vero e proprio ambiente Unix, con tanto di compilatore, disponibile sotto Windows.
Tips & Tricks
Quale shell usare?
Domanda quasi religiosa, paragonabile alla scelta fra emacs o vi o a quella fra Spectrum e C64.
Come al solito la shell migliore è quella che si conosce meglio. Se si opera esclusivamente su Linux ha senso pensare di specializzarsi sulla bash, se si lavora anche su Solaris, conoscere la ksh diventa fondamentale (non è di default ma viene preinstallata).
Cosa è una shell?

Se il kernel è il nucleo, la shell è il guscio.
Per shell si intende la l'interfaccia (testuale) tramite la quale l'utente può operare sul sistema.
Il guscio esterno, accessibile all'umano, con cui è possibile interagire con le funzionalità offerte dal kernel, interprete e gestore dell'hardware.
La shell è un programma che gestisce la comunicazione fra utente e sistema operativo interpretanto ed eseguendo i comandi dell'utente (la shell viene chiamata anche command interpreter). Può avere diversi utilizzi:
- Uso interattivo, il sistema attende i comandi digitati dall'utente, che possono redirezionare input ed output;
- Configurazione della propria sessione, con cui definire variabili e parametri che vengono utilizzati in ogni interazione dell'utente con la macchina;
- Programmazione utilizzando comandi di sistema e funzionalità della shell è possibile realizzare piccoli programmi (script shell) in grado di automatizzare operazioni e reagire ad eventi.

Sulla gran parte delle distribuzioni Linux è preimpostata di default la shell bash.
La sintassi dei comandi presenti in questo corso è basata sulla bash.

Quali shell?
Esistono molteplici shell, ognuna delle quali presenta caratteristiche e peculiarità proprie.
sh Bourne shell, è disponibile su qualsiasi ambiente UNIX, quindi è la più utilizzata per creare script shell compatibili e cross-platform.
csh C shell, prende il nome dal linguaggio di programmazione, ovviamente le funzionalità di tale shell derivano in modo diretto dal C.
bash Bourne Again Shell. Una delle ultime nate, offre le stesse capacità della C shell, con l'aggiunta di alcune funzionalità come l'history dei comandi e la TABcompletion
ksh Korn shell. Largamente diffusa è compatibile con la sh sulla parte di scripting ed ha tutte le funzionalità di interazione della csh. http://www.kornshell.com/
tcsh E' un'evoluzione della csh, con cui mantiene piena compatibilità e introduce feature come command line editing e name completion.
rsh
jsh
dtksh
rksh
Rispettivamente Restricted Bourne shell (da non confondere con il "remote shell"), Bourne Shell con Job control, Desktop Korn Shell, Restricted Korn Shell. Sono variazioni e derivazioni delle shell principali.
WEB RESOURCES
http://oase-shareware.org/shell/ Shell Dorado - Info utili per shell programmers
http://www.ling.helsinki.fi/users/reriksso/unix/shell.html An introduction to Unix Shell - Scritta da Mr. Bourne in persona
http://www.softpanorama.org/Scripting/shells.shtml Softpanorama University Shell Course - Shells Webliography
http://www.leftfoot.com/freeshells.html Free Shell Provider List - Un elenco dei (rari) provider che offrono un accesso con shell.