GNU/Linux >> Tutoriales Linux >  >> Linux

¿En qué idioma están escritos los comandos de Shell?

Los programas son ejecutables ordinarios escritos en cualquier lenguaje (principalmente C).

El shell toma un comando ingresado que es solo una cadena. Luego busca ciertas secuencias de caracteres que tienen un significado especial para el shell, como las variables ambientales que son $ seguido de una palabra o redirecciones que son > seguido de un camino. Después de que se haya realizado esta sustitución, tiene una cadena que se divide en espacios para generar un nombre de un ejecutable y parámetros. El shell luego buscará el ejecutable en la lista de directorios en la variable ambiental PATH. Luego, el shell usa llamadas al sistema para crear un proceso a partir del ejecutable con los parámetros.

Por ejemplo para ejecutar el comando ls $HOME el shell primero reconocería que $HOME es una variable ambiental y la sustituimos por su valor en este caso /home/user dejando el comando ls /home/user . Luego divide el comando en el espacio para obtener el nombre del ejecutable ls y parámetro /home/user . El shell encuentra el primer ejecutable que coincide con ls normalmente /bin/ls . A continuación, utiliza las llamadas al sistema spawn()/ posix_spawn() o fork() y exec() para crear el nuevo proceso.


La mayoría de las utilidades básicas de Linux están escritas en C .Esto lo puedes verificar en busybox source code que admite la mayoría de las utilidades de comando básicas de Linux que están escritas en C .Entonces, comandos como ls, cd ... etc. están en c

Cómo interpretará Shell el enlace a continuación

en un sistema operativo hay un programa especial llamado shell. El shell acepta comandos legibles por humanos y los traduce a algo que el kernel puede leer y procesar.

http://www.math.iitb.ac.in/resources/manuals/Unix_Unleashed/Vol_1/ch08.htm


Estos programas están escritos principalmente en el lenguaje de programación C, al igual que el kernel de Linux.


Linux
  1. ¿Qué comandos faltan en su archivo bashrc?

  2. ¿Qué shell estoy usando?

  3. ¿Diferencia entre las variables de Shell que se exportan y las que no están en Bash?

  4. ¿En qué shell me estoy ejecutando?

  5. Cómo encontrar qué Shell está utilizando en Linux

¿Qué es el Shell en Linux?

¿Qué es Subshell en Linux?

¿Qué es Login Shell en Linux?

¿Qué son los scripts de Shell? ¿Cómo crear scripts de Shell?

Comandos de shell asincrónicos

¿Qué es un archivo .sh?