Una shell è un software che fornisce un'interfaccia per gli utenti. Oggigiorno il termine shell viene usato soprattutto per le shell con interfaccia a riga di comando (CLI). (Le persone tendono ad usare il termine ambiente desktop piuttosto che "shell grafica").
Una shell è un software che fornisce un'interfaccia per gli utenti. is a piece of software that provides an interface for users. Oggigiorno il termine shell viene usato soprattutto per le shell con interfaccia a riga di comando. Al contrario shell grafica è un'espressione raramente usata per un ambiente desktop.
Shell interattiva
Una shell interattiva viene usata da un utente in una console virtuale o in un emulatore di terminale.
Debian usa Bash come shell interattiva predefinita per i normali account utente (quelli con UID ⩾ 1000). La shell interattiva predefinita assegnata agli utenti di nuova creazione può essere cambiata in qualsiasi momento modificando il file /etc/adduser.conf.
Per cambiare la shell interattiva predefinita per l'utente corrente:
controllare quali shell sono attualmente installate: cat /etc/shells
impostare la nuova shell predefinita: chsh
Shell non interattiva
Una shell non interattiva viene usata per eseguire scripts. Non è pensata per essere usata in modo interattivo da un utente, per esempio, in un emulatore di terminale, ma piuttosto si focalizza su velocità e compatibilità con gli standard.
La shell non interattiva predefinita in ambienti POSIX è un eseguibile posizionato nel file system in /bin/sh, che è un collegamento simbolico alla shell predefinita. La maggior parte degli script di sistema usa questa, attraverso il shebang #!/bin/sh. Cambiare la shell non interattiva predefinita di sistema è semplicemente una questione di cambiare tale collegamento simbolico in modo che abbia come obiettivo un eseguibile diverso.
In tutti i rilasci fino a Debian Lenny incluso, Bash era la shell non interattiva predefinita. A partire da Debian Squeeze, Debian usa Dash (la shell Debian Almquist) come destinazione del collegamento simbolico /bin/sh. Dash manca di molte delle funzionalità che ci si attendono da una shell interattiva, il che gli permette anche di essere più veloce e più efficiente di Bash.
Da Debian Squeeze a Debian Bullseye era possibile selezionare Bash come destinazione del collegamento simbolico /bin/sh eseguendo dpkg-reconfigure dash. Tuttavia, in Debian Bookworm ciò non è più supportato.
Altre shell
Debian fornisce molte shell differenti. Alcune delle shell degne di nota sono:
Bash - una shell molto potente con un'interfaccia interattiva ottima
Dash - una shell veloce, conforme con la Debian Policy § 10.4 e la Single UNIX Specification
mksh - Una shell Korn veloce, similmente conforme con la Debian Policy §10.4 e la specifica Single UNIX, nei collegamenti alla voce soprastante. Contiene anche mksh-static, che potrebbe persino essere una scelta /bin/sh migliore.
zsh - un'altra shell potente (vedere la documentazione ufficiale).
fish - un'altra shell interattiva amichevole
tcsh - una versione migliorata di csh di Berkeley
busybox - una shell piccolissima, utilizzata in initrd e nell'installatore Debian.
csh e tcsh dovrebbero essere evitate come linguaggi di scripting; vedere "Why shouldn't I program in csh?" di Tom Christiansen, pubblicato il 28 settembre 1995. (archiviato nella the Wayback Machine)
ash superata da Dash in Debian a partire da Debian Sarge.
ksh - la versione AT&T della shell Korn.
rc - implementazione della shell AT&T Plan 9
rush - shell utente ristretta
Vedere anche
Un confronto delle shell dei comandi in Wikipedia inglese
L'articolo Command-line shell nel wiki di Arch Linux
"UNIX shell differences and how to change your shell" di Brian Blackmore, circa dicembre 1998 (archiviato nella Wayback Machine)
CategoryCommandLineInterface | CategorySoftware | CategorySystemAdministration
