====== Intérpretes de comando ======
La //shell// o intérprete de comandos es el programa con el cual interactúas desde tu [[terminal_de_computadora|terminal]] para controlar nuestro sistema operativo remoto.
Cuando el intérprete indica que está listo para aceptar tu orden, puedes ingresar un mandato que desees ejecutar a través del teclado, el //comando//. Este comando se considera //entrada//. El intérprete buscará en uno o más directorios para localizar el programa que has solicitado. Si encuentra el programa, el intérprete traerá tu orden a la atención del //kernel//. Será el kernel quien seguirá las instrucciones del programa y ejecutará tu mandato. Una vez que el programa se haya ejecutado, el intérprete te solicitará más información o te dirá que está listo para una nueva orden.
> La //shell// traducirá tu orden a un lenguaje que nuestra computadora es capaz de entender. Si tu orden es válida, la computadora hará honor a ella y la cumplirá, normalmente destinando temporalmente a tal fin una porción de nuestro banco de memoria común y presentándola en tu terminal.
> Nuestro admin puede cambiar el intérprete de comandos que utilices. Puedes solicitarlo por correo electrónico a **admin arroba texto-plano.xyz**.
Ver: [[Lenguaje del Intérprete de Comandos|Tutorial: Lenguaje del Intérprete de Comandos]].
Ver: [[script#tutorial de scripts|Tutorial: Guiones]]
=== El Prompt ===
El //prompt// es un indicador que el intérprete hace aparecer a fin de que esta listo y esperando órdenes. Puede aparecer de la siguiente manera:
fulana@texto-plano.xyz:~$
(Esto significa que eres la usuaria ''fulana'', en el entorno ''texto-plano.xyz''.).
Esto puede variar, dependiendo de cómo esté configurado tu intérprete. Si lo que ves no es como lo anterior, a no asustarse! Algunos intérpretes tienen //prompts// más largos y elaborados, otros más exiguos y simples.
===== Intérpretes disponibles =====
Existen varios intérpretes compatibles, algunos de ellos disponibles en nuestro sistema:
[[sh|sh - Shell de Thompson]] (histórico, no disponible)
[[Bourne Shell|Shell de Bourne]] (histórico, suplido por [[bash|Bourne Again Shell]])
[[Csh|csh - Shell C del Unix de Berkeley]]
[[TCSh|TCSh - Tenex C Shell]]
[[ksh|ksh - Shell de Korn]] (intérprete por defecto de nuestro sistema).
[[Bash|bash - Bourne Again Shell]]
[[zsh|zsh - Z Shell]]
[[fish|Fish Shell]]
=== Conocer mi intérprete actual ===
Puedes saber cual es tu intérprete actual ingresando el comando:
echo "$SHELL"
También puedes saber cuál es el proceso asociado al mismo con:
ps -p $$
Si tienes algún problema con esto avisa a admin arroba texto-plano.xyz.
==== Cambiar el intérprete ====
OpenBSD por defecto utiliza [[ksh]] (Korn Shell) que es un intérprete de comandos distinto [[bash|al que se suele usar en Linux]]. No todo el mundo se siente cómodo con él.
Para ejecutar un shell distinto temporalmente, puedes ejecutarlo directamente, y salir de el con el comando **Exit**.
Para cambiarlo puedes solicitar ayuda del administrador, pero también puedes hacerlo por ti mism@.
Debes primero conocer las rutas de los intérpretes. Para ello primero digita:
cat /etc/shells
...y el sistema presentará en tu terminal una lista con la ruta de los intérpretes instalados en el servidor:
# $OpenBSD: shells,v 1.8 2009/02/14 17:06:40 sobrado Exp $
#
# Lista de shells aceptables para chpass(1).
# ftpd(8) no permitirá a los usuarios conectase si no utilizan
# alguno de estos shells, a no ser que el usuario se encuentre listado en /etc/ftpchroot.
/bin/sh
/bin/csh
/bin/ksh
/usr/local/bin/git-shell
/usr/local/bin/bash
/usr/local/bin/fish
/usr/local/bin/zsh
Para cambiar de intérprete, deberás ingresar __una__ de estas rutas al asignador de Shell. Ingresa un modificador al "cambiador de shell" que sigua esta sintaxis:
chsh -s ruta_del_shell
Por ejemplo, si deseas utilizar [[bash|Bash]], deberías quedar así:
chsh -s /usr/local/bin/bash
A continuación cierra tu sesión de texto-plano y vuelve a loguearte.