fbpx
Wikipedia

Shell de Unix

Una shell de Unix es el término usado en informática para referirse al intérprete de comandos de los sistemas operativos basados en Unix y similares, como GNU/Linux, y que es su interfaz de usuario tradicional. Mediante las instrucciones que aporta el intérprete, el usuario puede comunicarse con el núcleo y por extensión, ejecutar dichas órdenes, así como herramientas que le permiten controlar el funcionamiento de la computadora. Por ello, en inglés se le denominó así, shell, que puede ser traducido como «cáscara», porque es la envoltura visible del sistema informático.

Pantalla durante una sesión muestra Bash, tomada en Gentoo Linux.

Los comandos que aportan los intérpretes, pueden usarse a modo de guion si se escriben en ficheros ejecutables denominados shell-scripts, de este modo, cuando el usuario necesita hacer uso de varios comandos o combinados de comandos con herramientas, escribe en un fichero de texto, marcado como ejecutable, las operaciones que posteriormente, línea por línea, el intérprete traducirá al núcleo para que las realice. Sin ser un script de shell estrictamente un lenguaje de programación, al proceso de crear scripts de shell se le denomina programación shell o en inglés, shell programming o shell scripting.

En el sentido más genérico del término, shell significa cualquier intérprete que los usuarios usen para escribir comandos. Su etimología proviene del uso natural de consolas en computadores funcionando bajo unix antaño, cuando los usuarios conectaban al computador central, lo hacían mediante consolas, (shells) por las cuales a través de un intérprete, hacían inicio de sesión y manejaban la computadora principal. Posteriormente, con la proliferación de los computadores personales y su filosofía monousuario, un computador por usuario (entiéndase lo contrario de la filosofía inicial de Unix, un computador, muchos usuarios conectados por terminales), se desarrolló un software que emulase las características principales de las consolas físicas, a modo de poder seguir usándolas como clientes en un computador o núcleo que comprendiera la convención estándar usada para configurar y llevar a cabo tareas de administración de emergencia con servidores basados en Unix.

Los usuarios de Unix y similares, pueden elegir entre distintos shells (programa que se debería ejecutar cuando inician la sesión, véase bash, ash, csh, Zsh, ksh, tcsh). Las interfaces de usuario gráficas para Unix, como son GNOME, KDE y Xfce pueden ser llamadas shells visuales o shells gráficas. Por sí mismo, el término shell es asociado usualmente con la línea de comandos. En Unix, cualquier programa puede ser un shell de usuario. Los usuarios que desean utilizar una sintaxis diferente para redactar comandos, pueden especificar un intérprete diferente como su shell de usuario.

El término shell también hace referencia a un programa particular, tal como el Bourne shell, sh. El Bourne shell fue el shell usado en las primeras versiones de Unix y se convirtió en un estándar de facto; todos los sistemas similares a Unix tienen al menos un shell compatible con el Bourne shell. El programa Bourne shell se encuentra dentro de la jerarquía de archivos de Unix en /bin/sh. En algunos sistemas, tal como BSD, /bin/sh es un Bourne shell o un equivalente, pero en otros sistemas como muchas distribuciones de Linux, /bin/sh es un enlace simbólico a un shell compatible con más características (como Bash). POSIX especifica su shell estándar como un subconjunto estricto del Korn shell.

Categorías de shell

 

Pueden dividirse en cuatro categorías: tipo Bourne, tipo consola C, no tradicional e histórica.

Compatibles con Bourne shell

  • Bourne shell (sh) -- Escrita por Steve Bourne, cuando estaba en Bell Labs. Se distribuyó por primera vez con la Version 7 Unix, en 1978, y se mejoró con los años.
  • Almquist shell (ash) -- Se escribió como reemplazo de la shell Bourne con licencia BSD; la sh de FreeBSD, NetBSD (y sus derivados) están basados en ash y se han mejorado conforme a POSIX para la ocasión.
  • Bourne-Again shell (bash) -- Se escribió como parte del proyecto GNU para proveerlo de un superconjunto de funcionalidad con la shell Bourne.
  • Debian Almquist Shell (dash) -- Dash es un reemplazo moderno de ash en Debian.
  • Korn shell (ksh) -- Escrita por David Korn, mientras estuvo en Bell Labs.
  • Z shell (zsh) -- Considerada como la más completa: es lo más cercano que existe en abarcar un superconjunto de sh, ash, bash, csh, ksh, y tcsh.

Compatibles con la shell de C

Otros o exóticos

  • fish, una shell amigable e interactiva, lanzada por primera vez en 2005.
  • mudsh, una shell inteligente al estilo de los videojuegos que opera como un MUD.
  • zoidberg, una shell modular escrita en Perl, configurada y de operación completamente en Perl.
  • rc, el shell por defecto de Plan 9 from Bell Labs y Version 10 de Unix escrita por Tom Duff. Se han hecho ports para Inferno y para sistemas operativos basados en Unix.
  • es shell (es), una shell compatible con RC escrita a mediados de los 90.
  • scsh (Scheme Shell)

Archivos de configuración para shells

Un shell lee archivos de configuración en múltiples circunstancias bajo diferentes dependencias de la shell. Esta tabla muestra los archivos de configuración de las shells más populares:

sh ksh csh tcsh bash zsh
/etc/.login no no login login no no
/etc/csh.cshrc no no no no no
/etc/csh.login no no no login no
~/.tcshrc no no no no no
~/.cshrc no no 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
/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
~/.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ón:

  • "no" significa que la shell no leerá el archivo en absoluto.
  • "sí" significa que el archivo es siempre leído por el shell.
  • "login" significa que el archivo es leído si la shell es una shell de sesión (loging shell).
  • "n/login" significa que el archivo es leído si la shell no es una shell de sesión.
  • "int." significa que un archivo es leído si es un shell interactivo.
  • "i.login" significa que un archivo es leído si la shell es de sesión interactiva.

Histórico

  • Thompson shell (sh) -- La primel shell Unix fue escrita por Ken Thompson en Bell Labs. Distribuida con la versión 1 hasta la 6 de Unix, desde 1971 a 1975. Es considerada muy rudimentaria por los estandarés modernos y no es usada en sistemas actuales. Existen algunas partes disponibles de la misma: Ancient UNIX Systems.
  • PWB shell o Mashey shell (sh) -- Una versión de la shell de Thompson, creada por John Mashey y otros, mientras estuvieron en Bell Labs. Distribuida con el Programmer's Workbench UNIX, en 1976.

Shells no Unix

Dentro del conjunto de sistemas operativos Microsoft Windows, el análogo son los programas command.com, o cmd.exe para sistemas operativos basados en Windows NT, y Windows PowerShell introducido con Windows Server 2008.

Véase también

Bibliografía

  • Ellie Quigley (2001). «Introduction to UNIX shells». Unix Shells by Example. Prentice Hall PTR. ISBN 0-13-066538-X.  — Historia de varios shells, los usos y las responsabilidades de una shell en Unix.

Enlaces externos

  • shell encyclopedia - history, types, definitions, technical information and resources
  • Linux Shell Scripting Tutorial - A Beginner's handbook
  • www.freebsd.org Lista de shells
  •   Datos: Q14663
  •   Multimedia: Unix shells / Q14663

shell, unix, este, artículo, trata, sobre, intérprete, típico, unix, para, otros, usos, este, término, véase, terminal, informática, shell, unix, término, usado, informática, para, referirse, intérprete, comandos, sistemas, operativos, basados, unix, similares. Este articulo trata sobre el interprete tipico de Unix Para otros usos de este termino vease terminal informatica Una shell de Unix es el termino usado en informatica para referirse al interprete de comandos de los sistemas operativos basados en Unix y similares como GNU Linux y que es su interfaz de usuario tradicional Mediante las instrucciones que aporta el interprete el usuario puede comunicarse con el nucleo y por extension ejecutar dichas ordenes asi como herramientas que le permiten controlar el funcionamiento de la computadora Por ello en ingles se le denomino asi shell que puede ser traducido como cascara porque es la envoltura visible del sistema informatico Pantalla durante una sesion muestra Bash tomada en Gentoo Linux Los comandos que aportan los interpretes pueden usarse a modo de guion si se escriben en ficheros ejecutables denominados shell scripts de este modo cuando el usuario necesita hacer uso de varios comandos o combinados de comandos con herramientas escribe en un fichero de texto marcado como ejecutable las operaciones que posteriormente linea por linea el interprete traducira al nucleo para que las realice Sin ser un script de shell estrictamente un lenguaje de programacion al proceso de crear scripts de shell se le denomina programacion shell o en ingles shell programming o shell scripting En el sentido mas generico del termino shell significa cualquier interprete que los usuarios usen para escribir comandos Su etimologia proviene del uso natural de consolas en computadores funcionando bajo unix antano cuando los usuarios conectaban al computador central lo hacian mediante consolas shells por las cuales a traves de un interprete hacian inicio de sesion y manejaban la computadora principal Posteriormente con la proliferacion de los computadores personales y su filosofia monousuario un computador por usuario entiendase lo contrario de la filosofia inicial de Unix un computador muchos usuarios conectados por terminales se desarrollo un software que emulase las caracteristicas principales de las consolas fisicas a modo de poder seguir usandolas como clientes en un computador o nucleo que comprendiera la convencion estandar usada para configurar y llevar a cabo tareas de administracion de emergencia con servidores basados en Unix Los usuarios de Unix y similares pueden elegir entre distintos shells programa que se deberia ejecutar cuando inician la sesion vease bash ash csh Zsh ksh tcsh Las interfaces de usuario graficas para Unix como son GNOME KDE y Xfce pueden ser llamadas shells visuales o shells graficas Por si mismo el termino shell es asociado usualmente con la linea de comandos En Unix cualquier programa puede ser un shell de usuario Los usuarios que desean utilizar una sintaxis diferente para redactar comandos pueden especificar un interprete diferente como su shell de usuario El termino shell tambien hace referencia a un programa particular tal como el Bourne shell sh El Bourne shell fue el shell usado en las primeras versiones de Unix y se convirtio en un estandar de facto todos los sistemas similares a Unix tienen al menos un shell compatible con el Bourne shell El programa Bourne shell se encuentra dentro de la jerarquia de archivos de Unix en bin sh En algunos sistemas tal como BSD bin sh es un Bourne shell o un equivalente pero en otros sistemas como muchas distribuciones de Linux bin sh es un enlace simbolico a un shell compatible con mas caracteristicas como Bash POSIX especifica su shell estandar como un subconjunto estricto del Korn shell Indice 1 Categorias de shell 1 1 Compatibles con Bourne shell 1 2 Compatibles con la shell de C 1 3 Otros o exoticos 1 4 Archivos de configuracion para shells 1 5 Historico 2 Shells no Unix 3 Vease tambien 4 Bibliografia 5 Enlaces externosCategorias de shell Editar Pueden dividirse en cuatro categorias tipo Bourne tipo consola C no tradicional e historica Compatibles con Bourne shell Editar Bourne shell sh Escrita por Steve Bourne cuando estaba en Bell Labs Se distribuyo por primera vez con la Version 7 Unix en 1978 y se mejoro con los anos Almquist shell ash Se escribio como reemplazo de la shell Bourne con licencia BSD la sh de FreeBSD NetBSD y sus derivados estan basados en ash y se han mejorado conforme a POSIX para la ocasion Bourne Again shell bash Se escribio como parte del proyecto GNU para proveerlo de un superconjunto de funcionalidad con la shell Bourne Debian Almquist Shell dash Dash es un reemplazo moderno de ash en Debian Korn shell ksh Escrita por David Korn mientras estuvo en Bell Labs Z shell zsh Considerada como la mas completa es lo mas cercano que existe en abarcar un superconjunto de sh ash bash csh ksh y tcsh Compatibles con la shell de C Editar C shell csh escrita por Bill Joy mientras estuvo en la University of California Berkeley Se distribuyo por primera vez con BSD en 1979 TENEX C shell tcsh Otros o exoticos Editar fish una shell amigable e interactiva lanzada por primera vez en 2005 mudsh una shell inteligente al estilo de los videojuegos que opera como un MUD zoidberg una shell modular escrita en Perl configurada y de operacion completamente en Perl rc el shell por defecto de Plan 9 from Bell Labs y Version 10 de Unix escrita por Tom Duff Se han hecho ports para Inferno y para sistemas operativos basados en Unix es shell es una shell compatible con RC escrita a mediados de los 90 scsh Scheme Shell Archivos de configuracion para shells Editar Un shell lee archivos de configuracion en multiples circunstancias bajo diferentes dependencias de la shell Esta tabla muestra los archivos de configuracion de las shells mas populares sh ksh csh tcsh bash zsh etc login no no login login no no etc csh cshrc no no no si no no etc csh login no no no login no si tcshrc no no no si no no cshrc no no si si 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 si 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 si 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 loginExplicacion no significa que la shell no leera el archivo en absoluto si significa que el archivo es siempre leido por el shell login significa que el archivo es leido si la shell es una shell de sesion loging shell n login significa que el archivo es leido si la shell no es una shell de sesion int significa que un archivo es leido si es un shell interactivo i login significa que un archivo es leido si la shell es de sesion interactiva Historico Editar Thompson shell sh La primel shell Unix fue escrita por Ken Thompson en Bell Labs Distribuida con la version 1 hasta la 6 de Unix desde 1971 a 1975 Es considerada muy rudimentaria por los estandares modernos y no es usada en sistemas actuales Existen algunas partes disponibles de la misma Ancient UNIX Systems PWB shell o Mashey shell sh Una version de la shell de Thompson creada por John Mashey y otros mientras estuvieron en Bell Labs Distribuida con el Programmer s Workbench UNIX en 1976 Shells no Unix EditarDentro del conjunto de sistemas operativos Microsoft Windows el analogo son los programas command com o cmd exe para sistemas operativos basados en Windows NT y Windows PowerShell introducido con Windows Server 2008 Vease tambien EditarShell script Anexo Programas para Unix Nucleo informatica Bibliografia EditarEllie Quigley 2001 Introduction to UNIX shells Unix Shells by Example Prentice Hall PTR ISBN 0 13 066538 X Historia de varios shells los usos y las responsabilidades de una shell en Unix Enlaces externos Editarshell encyclopedia history types definitions technical information and resources Linux Shell Scripting Tutorial A Beginner s handbook www freebsd org Lista de shells Datos Q14663 Multimedia Unix shells Q14663 Obtenido de https es wikipedia org w index php title Shell de Unix amp oldid 143397617, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos