¿Qué lenguaje de programación es bash?
¿Qué es un shell?
El shell es la interfaz entre el usuario y el sistema operativo Linux. Hay muchos shells en Linux, entre los cuales se usa Bash de forma predeterminada. Este capítulo describe el principio de funcionamiento del Shell, los tipos de Shell, las operaciones generales del Shell y las características de Bash.
¿Qué es un shell?
El shell del sistema Linux sirve como shell del sistema operativo y proporciona a los usuarios una interfaz para utilizar el sistema operativo. Es el nombre colectivo del lenguaje de comandos, intérprete de comandos y lenguaje de programación.
El shell es el programa de interfaz entre el usuario y el kernel de Linux. Si imagina el kernel de Linux como el centro de una esfera, el shell es la capa exterior que rodea el kernel. Cuando se pasan comandos a Linux desde un shell u otro programa, el kernel reacciona en consecuencia.
Shell es un intérprete de lenguaje de comandos. Tiene su propio conjunto de comandos de shell incorporado. Otras aplicaciones del sistema también pueden llamar al shell. Los comandos ingresados por el usuario en el indicador son primero interpretados por el shell y luego pasados al kernel de Linux.
Shell es un programa con funciones especiales. Es una interfaz entre el usuario y el
programa central (kernel) del sistema operativo UNIX/linux. ¿Por qué decimos que el shell es un intermediario entre el programa central del sistema y el usuario? Todos los lectores que han leído Introducción a los sistemas operativos saben que el sistema operativo es un administrador y asignador de recursos del sistema.
Cuando tienes necesidades, debes preguntarle al sistema desde la perspectiva del sistema operativo; ¿También debe evitar que los usuarios causen daños al sistema debido a operaciones incorrectas? Como todos sabemos, para darle órdenes a una computadora es a través de un comando (command) o
un programa (programa) el programa tiene un compilador (compilador) para convertir el programa a código binario, pero qué; sobre el comando?
De hecho, el shell también es un programa: lee comandos del dispositivo de entrada, los convierte en código de máquina que la computadora puede entender y luego lo ejecuta.
Varios sistemas operativos tienen sus propios shells. Tomando como ejemplo DOS, su shell es el archivo command.com
. Al igual que en DOS, existen diferentes intérpretes de comandos como NDOS, 4DOS y DRDOS que pueden reemplazar el
command.com estándar. En UNIX, además del shell Bourne (/bin/sh), también está el shell C (/bin /csh),
shell Korn (/bin/ksh), shell Bourne nuevamente (/bin/bash), shell Tenex C (tcsh)
y otros shells. UNIX/linux separa el shell del programa principal, convirtiéndolo en un programa de aplicación general que se puede modificar, actualizar o agregar nuevas características sin afectar el sistema operativo en sí.
Algunos comandos, como el comando cd para cambiar el directorio de trabajo, se incluyen dentro del shell. Algunos comandos, como el comando copiar cp y el comando mover rm, son programas separados que existen en un directorio del sistema de archivos. Para los usuarios, no hay necesidad de preocuparse si un comando está integrado dentro del shell o en un programa separado.
El shell primero verifica si el comando es un comando interno y, en caso contrario, verifica si es una aplicación (la aplicación aquí puede ser un programa de utilidad del propio Linux, como ls y rm, o un programa comercial comprado, como xv, o software gratuito, como emacs).
Luego, el shell busca estas aplicaciones en la ruta de búsqueda (una ruta de búsqueda es una lista de directorios donde se pueden encontrar programas ejecutables). Si el comando escrito no es un comando interno y el ejecutable no se encuentra en la ruta, se mostrará un mensaje de error. Si el comando se puede encontrar correctamente, el comando interno o la aplicación se dividirá en llamadas al sistema y se pasará al kernel de Linux.
Otra característica importante del shell es que es un lenguaje de programación interpretado en sí mismo. El lenguaje de programación del shell admite la mayoría de los elementos del programa que se pueden ver en lenguajes de alto nivel, como funciones, variables y. matrices y estructuras de control de programas. El lenguaje de programación de shell es fácil de aprender y cualquier comando que se pueda escribir en el indicador se puede colocar en un programa de shell ejecutable.
Cuando un usuario normal inicia sesión correctamente, el sistema ejecutará un programa llamado shell. Es el proceso de shell el que proporciona la línea de comando. Como valor predeterminado (el shell predeterminado del sistema TurboLinux es BASH), "$" se usa como mensaje para los usuarios normales y "#" se usa como mensaje para el superusuario (root).
Una vez que aparece el símbolo del shell, puede escribir el nombre del comando y los parámetros requeridos por el comando. El shell ejecutará estos comandos. Si un comando tarda mucho en ejecutarse o produce muchos resultados en la pantalla, puede interrumpirlo (abortando su ejecución antes de finalizar normalmente) emitiendo una señal de interrupción desde el teclado presionando Ctrl-c.
Cuando el usuario esté listo para finalizar el proceso de diálogo de inicio de sesión, puede escribir el comando de cierre de sesión, el comando de salida o el fin de archivo (EOF) (presione Ctrl d para lograrlo) para finalizar el inicio de sesión.