¿A qué te refieres con shell interactivo?

Pregunta:

UNIX: The Complete Reference, Segunda edición de Kenneth H. Rosen et al.

Puede iniciar otro shell después de iniciar sesión utilizando el nombre del shell como comando; por ejemplo, para iniciar el shell de Korn, puede escribir ksh en el símbolo del sistema. Este tipo de shell no es un shell de inicio de sesión y no es necesario volver a iniciar sesión para usarlo, pero sigue siendo un shell interactivo, lo que significa que interactúa con el shell escribiendo comandos (en lugar de usar el shell para ejecutar un script, como se explica en el Capítulo 20). Las instancias del shell que se ejecutan en una ventana de terminal cuando está utilizando una interfaz gráfica también son shells interactivos sin inicio de sesión. Cuando inicia un shell que no es de inicio de sesión, no lee su archivo .profile, .bash_profile o .login (o su archivo .logout), pero aún leerá el segundo archivo de configuración del shell (como .bashrc). Esto significa que puede probar los cambios en su .bashrc iniciando otra instancia del shell, pero si está probando cambios en su .profile o .login, debe cerrar la sesión y luego volver a iniciarla para ver los resultados.

Estaba revisando las líneas anteriores y no entiendo lo que significa shell interactivo. ¿Es cierto que .profile no se lee si estoy usando una terminal?

Además, ¿qué significa cuando dice que bourne no es un shell interactivo mientras que bash / csh es un shell interactivo?

Respuesta:

Un shell interactivo es simplemente cualquier proceso de shell que utilice para escribir comandos y obtener resultados de esos comandos. Es decir, un caparazón con el que interactúas.

Por lo tanto, su shell de inicio de sesión es interactivo, al igual que cualquier otro shell que inicie manualmente, como se describe en el extracto que citó en su pregunta. Por el contrario, cuando ejecuta un script de shell, se inicia un shell no interactivo que ejecuta los comandos del script y luego sale cuando finaliza el script.

El shell Bourne se puede utilizar como un shell interactivo, como bash o tcsh . De hecho, muchos sistemas, como FreeBSD, utilizan sh como shell de usuario predeterminado. Los shells modernos como bash , zsh , tcsh , tcsh muchas características que el shell Bourne no tiene, que los hacen más cómodos y convenientes para el uso interactivo (historial de comandos, finalización, etc.).

Los shells interactivos sin inicio de sesión (es decir, los shells que inicia manualmente desde otro shell o abriendo una ventana de terminal) no leen sus archivos .login o .profile . Estos solo se leen y ejecutan mediante shells de inicio de sesión (shells iniciados por el proceso del sistema de login o por su administrador de pantalla X), por lo que los comandos y configuraciones que contienen solo se aplican una vez, al comienzo de su sesión de inicio de sesión. Entonces, cuando inicia una terminal, el shell que genera para usted no lee sus archivos de inicio de sesión ( .login para shells de estilo c, .profile para shells de estilo bourne), pero lee los .cshrc , .bashrc , etc. .

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım