Un shell nos proporciona una interfaz para el sistema Unix. Mientras usamos un sistema operativo, interactuamos indirectamente con el shell. En los sistemas de distribución Linux, cada vez que usamos una terminal, interactuamos con el shell. El trabajo del shell es interpretar o analizar los comandos de Unix dados por los usuarios. Un shell acepta comandos del usuario y los transforma en una forma comprensible para el núcleo. En otras palabras, actúa como mediador entre el usuario y la unidad kernel del sistema operativo.
Algunas de las características de un caparazón se enumeran a continuación:
- Sustitución de comodines en nombres de archivos (coincidencia de patrones)
- Historial de comandos
- Sustitución de nombre de archivo
- Tubería
Este artículo se centra en el shell interactivo y no interactivo.
Concha interactiva:
Un shell interactivo se define como el shell que simplemente toma comandos como entrada en tty del usuario y reconoce la salida al usuario. Este shell también lee los archivos de inicio que se produjeron durante la activación y muestra un aviso. También habilita el control de trabajos de forma predeterminada. También queda claro por el nombre, es un caparazón con el que podemos interactuar. Un script interactivo es un script que requiere información del usuario. Los scripts interactivos no podían ejecutarse en segundo plano, ya que requerían la participación del usuario. Para un shell interactivo, la variable de solicitud necesariamente se establece en ($PS1).
Por ejemplo, un shell bash es un shell interactivo.
¿Cómo iniciar un shell interactivo?
Podemos iniciar un shell interactivo dando el nombre del shell después de iniciar sesión en el sistema.
Por ejemplo,
bash
Esto iniciará bash shell.
Shell no interactivo:
Como su nombre lo indica, un shell no interactivo es un tipo de shell que no interactúa con el usuario. Podemos ejecutarlo a través de un script o similar. Además, se puede ejecutar a través de algún proceso automatizado. En este caso, los archivos .bashrc y .profile no se ejecutan. El shell no interactivo influye en la variable PATH. Se recomienda encarecidamente utilizar la ruta completa para un comando en shells no interactivos. Los scripts no interactivos pueden ejecutarse sin problemas en segundo plano fácilmente. Este shell generalmente es un shell sin inicio de sesión porque el usuario que llama ya ha iniciado sesión. Un shell que ejecuta un script siempre se considera un shell no interactivo.
Los scripts como Init y startup se consideran no interactivos, ya que deben ejecutarse sin intervención humana.
¿Cómo verificar qué tipo de shell se está utilizando?
Se puede detectar el tipo de shell que se está utilizando (solo BASH). Podemos determinar si estamos usando un shell interactivo o no interactivo,
[[ $- == *i* ]] && echo ‘Interactivo’ || echo ‘no interactivo’