Un shell de Unix es un shell diseñado para los sistemas operativos Unix y Unix que permite el acceso a las funciones internas del sistema operativo. Toma la forma de una interfaz de línea de comandos accesible desde la consola o una terminal . El usuario emite comandos como una entrada de texto que luego es ejecutada por el shell. En varios sistemas operativos de Microsoft Windows , el programa analógico es command.com o cmd.exe .
Los sistemas operativos de tipo Unix suelen tener un shell. Originalmente, el intérprete de comandos por defecto era sh , que dio lugar a muchas variaciones, incluyendo csh , extendido en tcsh , o ksh , o rc ... Pero hoy bash , inspirado en sh , ksh y csh , es el shell más popular. aunque hay otros intérpretes de shell, como zsh o ash .
El primer shell es el shell de Thompson (en) apareció en 1971 con la primera versión de Unix y escrito por Ken Thompson , uno de los creadores de Unix . Fue reemplazado por el shell Bourne , escrito por Stephen Bourne , en 1977 para la versión 7 de Unix .
En 1978, Bill Joy , entonces estudiante de la Universidad de California en Berkeley , creó csh (shell C), una evolución del shell cuya sintaxis se inspiró en la de las órdenes del lenguaje C. Luego se lanza una versión más moderna de csh con el nombre tcsh .
El shell Korn (ksh) fue publicado en 1983 por David Korn . Es compatible con el shell Bourne , se hace cargo de algunas características de csh y agrega funciones avanzadas de scripting disponibles en lenguajes más avanzados como Perl .
El shell Bourne-Again (bash) apareció en 1988. Fue escrito por Brian Fox para la Free Software Foundation como parte del proyecto GNU . Es el shell de muchas implementaciones gratuitas de Unix , como los sistemas GNU / Linux . Es compatible con el shell Bourne del que se pretende que sea una implementación gratuita.
Paul Falstad fundó zsh en 1990 mientras estudiaba en la Universidad de Princeton . Este shell asume las funciones más prácticas de bash , csh , tcsh .
Los shells te permiten realizar redireccionamientos. Una redirección está redirigiendo la entrada o salida de un comando a otro comando o archivo.
Sintaxis:
commande > fichierEl resultado de la invocación del comando commandese escribirá en el archivo fichier, sobrescribiendo el contenido anterior.
Ejemplo:
$: cat file Welcome $: echo "Hello world" > file $: cat file Hello worldSintaxis:
commande >> fichierEl resultado de la invocación del comando commandese escribirá en el archivo fichier, siguiendo los datos ya presentes.
Ejemplo:
$: cat file Welcome $: echo "Hello world" >> file $: cat file Welcome Hello worldSintaxis:
commande < fichierEl comando commandeleerá el contenido del archivo en fichierlugar de leerlo en la entrada estándar (teclado).
Ejemplo:
$: cat < file WelcomeSintaxis:
commande << ENDEl comando commandeleerá en la entrada estándar hasta que se encuentre la palabra que sigue a la redirección doble.
Ejemplo:
$: cat << TOTO ? foo ? bar ? moomoo ? TOTO foo bar moomooSintaxis:
commande_1 | commande_2El resultado del comando commande_1se redirigirá a la entrada del segundo comando commande_2.
Ejemplo:
$: echo "Hello world" | grep -o "Hello" Hellosh | ksh | csh | tcsh | intento | zsh | |
---|---|---|---|---|---|---|
/etc/.login | acceso | acceso | ||||
/etc/csh.cshrc | sí | sí | ||||
/etc/csh.login | acceso | acceso | ||||
~ / .tcshrc | sí | |||||
~ / .cshrc | sí | sí | ||||
~ / etc / ksh.kshrc | En t. | |||||
/etc/sh.shrc | En t. | |||||
$ ENV (normalmente ~ / .kshrc) | En t. | En t. | En t. | |||
~ / .login | acceso | acceso | ||||
~ / .logout | acceso | acceso | ||||
/ etc / profile | acceso | acceso | acceso | acceso | ||
~ / .profile | acceso | acceso | acceso | acceso | ||
~ / .bash_profile | acceso | |||||
~ / .bash_login | acceso | |||||
~ / .bash_logout | acceso | |||||
~ / .bashrc | int. + n / iniciar sesión | |||||
/ etc / zshenv | sí | |||||
/ etc / zprofile | acceso | |||||
/ etc / zshrc | En t. | |||||
/ etc / zlogin | acceso | |||||
/ etc / zlogout | acceso | |||||
~ / .zshenv | sí | |||||
~ / .zprofile | acceso | |||||
~ / .zshrc | En t. | |||||
~ / .zlogin | acceso |