Shell d'Unix

Una shell d'Unix és el terme usat en informàtica per a referir-se al intérpret de comandos dels sistemes operatius basats en Unix i similars, com GNU/Linux, i que és el seu interfaç d'usuari tradicional. Per mig de les instruccions que aporta l'intérpret, l'usuari pot comunicar-se en el núcleu i per extensió, eixecutar dites órdens, aixina com ferramentes que li permeten controlar el funcionament de la computadora. Per això, en anglés se li va denominar aixina, shell, que pot ser traduït com a «clafoll», perque és l'envoltura visible del sistema informàtic.
Els comandos que aporten els intérprets, poden usar-se a modo de guion si s'escriuen en fichers eixecutables denominats shell-scripts, d'esta manera, quan l'usuari necessita fer us de varis comandos o combinats de comandos en ferramentes, escriu en un ficher de text, marcat com a eixecutable, les operacions que posteriorment, llínea per llínea, l'intérpret traduirà al núcleu per a que les realise. Sense ser un script de shell estrictament un llenguage de programació, al procés de crear scripts de shell se li denomina programació shell o en anglés, shell programming o shell scripting.
En el sentit més genèric del terme, shell significa qualsevol intérpret que els usuaris usen per a escriure comandos. La seua etimologia prové de l'us natural de consoles en computadors funcionant baix unix antany, quan els usuaris conectaven al computador central, ho feyen per mig de consoles, (shells) per les quals a través d'un intérpret, feyen inici de sessió i manejaven la computadora principal. Posteriorment, en la proliferació dels computadors personals i la seua filosofia monousuario, un computador per usuari (entenga's lo contrari de la filosofia inicial d'Unix, un computador, molts usuaris conectats per terminals), es va desenrollar un software que emulara les característiques principals de les consoles físiques, a modo de poder seguir usant-les com a clients en un computador o núcleu que comprenguera la convenció estàndar usada per a configurar i portar a terme tasques d'administració d'emergència en servidors basats en Unix.
Els usuaris d'Unix i similars, poden elegir entre distints shells (programa que es deuria eixecutar quan inicien la sessió, vore GNU bash, ash, csh, Zsh, ksh, tcsh). Els interfaços d'usuari gràfiques per a Unix, com són GNOME, KDE i Xfce poden ser cridades shells visuals o shells gràfiques. Per sí mateixa, el terme shell és associat usualment en la llínea de comandos. En Unix, qualsevol programa pot ser un shell d'usuari. Els usuaris que desigen utilisar una sintaxis diferent per a redactar comandos, poden especificar un intérpret diferent com el seu shell d'usuari.
El terme shell també fa referència a un programa particular, tal com el Bourne shell, sh. El Bourne shell va ser el shell usat en les primeres versions d'Unix i es va convertir en un estàndart de facto; tots els sistemes similars a Unix tenen a lo manco un shell compatible en el Bourne shell. El programa Bourne shell es troba dins de la jerarquia d'archius d'Unix en /bin/sh. En alguns sistemes, tal com BSD, /bin/sh és un Bourne shell o un equivalent, pero en atres sistemes com a moltes distribucions de Linux, /bin/sh és un enllaç simbòlic a un shell compatible en més característiques (com Bash). POSIX especifica el seu shell estàndar com un subconjunt estricte del Korn shell.
Categories de shell
[editar | editar còdic]Poden dividir-se en quatre categories: tipo Bourne, tipo consola C, no tradicional i històrica.
Compatibles en Bourne shell
[editar | editar còdic]- Bourne shell (sh) -- Escrita per Steve Bourne, quan estava en Bell Labs. Es va distribuir per primera volta en la Version 7 Unix, en 1978, i es va millorar en els anys.
- Almquist shell (ash) -- Es va escriure com a tongada de la shell Bourne en llicència BSD; la sh de FreeBSD, NetBSD (i els seus derivats) estan basats en ash i s'han millorat conforme a POSIX per a l'ocasió.
- Bourne-Again shell (bash) -- Es va escriure com a part del proyecte GNU per a proveir-ho d'un superconjunto de funcionalitat en la shell Bourne.
- Debian Almquist Shell (dash) -- Dash és una tongada moderna de ash en Debian.
- Korn shell (ksh) -- Escrita per David Korn, mentres va estar en Bell Labs.
- Z shell (zsh) -- Considerada com la més completa: és lo més propenc que existix en comprendre un superconjunto de sh, ash, bash, csh, ksh, i tcsh.
Compatibles en la shell de C
[editar | editar còdic]- C shell (csh) escrita per Bill Joy, mentres va estar en l'University of Califòrnia, Berkeley. Es va distribuir per primera volta en BSD en 1979.
- TENEX C shell (tcsh).
Uns atres o exòtics
[editar | editar còdic]- fish, una shell amigable i interactiva, llançada per primera volta en 2005.
- mudsh, una shell inteligent a l'estil dels videojocs que opera com un MUD.
- zoidberg, una shell modular escrita en Perl, configurada i d'operació completament en Perl.
- rc, el shell per defecte de Pla 9 from Bell Labs i Version 10 d'Unix escrita per Tom Duff. S'han fet ports per a Inferno i per a sistemes operatius basats en Unix.
- és shell (és), una shell compatible en RC escrita a mitan dels 90.
- scsh (Scheme Shell)
Archius de configuració per a shells
[editar | editar còdic]Un shell llig archius de configuració en múltiples circumstàncies baix diferents dependències de la shell. Esta taula mostra els archius de configuració de les shells més populars:
| sh | ksh | csh | tcsh | bash | zsh | |
|---|---|---|---|---|---|---|
/etc/.login
|
no | no | login | login | no | no |
/etc/csh.cshrc
|
no | no | no | sí | no | no |
/etc/csh.login
|
no | no | no | login | no | sí |
/.tcshrc
|
no | no | no | sí | no | no |
/.cshrc
|
no | no | sí | sí | no | no |
/.login
|
no | no | login | login | no | no |
/.logout
|
no | no | login | login | no | no |
/etc/profile
|
login | login | no | no | i.login | no |
/.profile
|
login | login | no | no | login | no |
/.bash_profile
|
login | no | no | no | login | no |
/.bash_login
|
no | no | no | no | login | no |
/.bashrc
|
no | no | no | no | n/login | no |
/etc/zshenv
|
no | no | no | no | no | sí |
/etc/zprofile
|
no | no | no | no | no | login |
/etc/zshrc
|
no | no | no | no | no | int. |
/etc/zlogin
|
no | no | no | no | no | login |
/etc/zlogout
|
no | no | no | no | no | login |
/.zshenv
|
no | no | no | no | no | sí |
/.zprofile
|
no | no | no | no | no | login |
/.zshrc
|
no | no | no | no | no | int. |
/.zlogin
|
no | no | no | no | no | login |
/.zlogout
|
no | no | no | no | no | login |
Explicació:
- "no" significa que la shell no llegirà l'archiu en absolut.
- "sí" significa que l'archiu és sempre llegit pel shell.
- "login" significa que l'archiu és llegit si la shell és una shell de sessió (loging shell).
- "n/login" significa que l'archiu és llegit si la shell no és una shell de sessió.
- "int." significa que un archiu és llegit si és un shell interactiu.
- "i.login" significa que un archiu és llegit si la shell és de sessió interactiva.
Històric
[editar | editar còdic]- Thompson shell (sh) -- La primel shell Unix va ser escrita per Ken Thompson en Bell Labs. Distribuïda en la versió 1 fins a la 6 d'Unix, des de 1971 a 1975. És considerada molt rudimentària pels estandarés moderns i no és usada en sistemes actuals. Existixen algunes parts disponibles de la mateixa: Ancient UNIX Systems.
- PWB shell o Mashey shell (sh) -- Una versió de la shell de Thompson, creada per John Mashey i uns atres, mentres varen estar en Bell Labs. Distribuïda en el Programmer's Workbench UNIX, en 1976.
Shells no Unix
[editar | editar còdic]Dins del conjunt de sistemes operatius Microsoft Windows, l'anàlec són els programes command.com, o cmd.exe per a sistemes operatius basats en Windows NT, i Windows PowerShell introduït en Windows Server 2008.
Vore també
[editar | editar còdic]Bibliografia
[editar | editar còdic]- Ellie Quigley (2001). «Introduction to UNIX shells», Unix Shells by Example, Prentice Hall PTR. ISBN 0-13-066538-X. — Història de varis shells, els usos i les responsabilitats d'una shell en Unix.
- Este artícul conté una traducció derivada de «Shell de Unix» de Wikipedia en castellà publicada baix la Llicència de documentació lliure de GNU i la Llicència Creative Commons Reconeiximent-CompartirIgual 4.0 Internacional.