2.1.- Comandos internos y externos

Un comando externo es un archivo localizado en el árbol del sistema de archivos. Por ejemplo, cuando un usuario ejecuta el comando ls, el Shell pide al núcleo cargar en memoria el archivo /usr/bin/ls.

Consideramos comandos externos los archivos que tengan uno de los formatos siguientes:

  • Archivos con formato binario ejecutable.
  • Archivos con formato de texto que representan un script de comandos (que puede estar escrito en Shell o en otro lenguaje).

Ejemplos:

El comando ps es un archivo con formato ejecutable. Según el comando file el resultado ps es:

file_ps

Los script son un archivo de órdenes, archivo de procesamiento por lotes o guion es un programa usualmente simple, que por lo regular se almacena en un archivo de texto plano.

El comando file miscript nos dará como resultado:

shell_texto plano

El archivo miscript.pl es un script en perl.

indiceEl argumento del comando file es un nombre de archivo expresado con ruta relativa o absoluta.

Los comandos externos se ejecutan por un Shell hijo que actúa de intermediario:

1ª etapa: Duplicación del shell

duplicacion_shell_1

2ª etapa: El código del  shell hijo se substituye por el código del comando ls.

duplicacion_shell_2

Comandos internos

Un comando interno se integra en los procesos Shell (el Shell ejecuta la acción). Por lo tanto, no se corresponde en ningún caso a un archivo almacenado en disco.

El comando interno se ejecuta por el Shell actual.

1ª etapa: Ejecución del comando cd. El shell reconoce uno de los comandos internos.

comando_interno_1

directorio_1

2ª etapa: El shell modifica el valor de su directorio actual.

directorio_2

Implementación interna y externa

Ciertos comandos tienen una implementación interna y otra externa. En este caso:

  • El comando interno se ejecuta con mayor prioridad.
  • La ejecución de un comando interno es más rápida que la ejecución de un comando externo.
  • El comando type indica que el comando es interno, pero no precisa que existe igualmente una implementación externa.

El comando pwd es un comando interno al Shell:

type 3

El comando pwd posee también una implementación externa:

type4  El comando interno es el que se ejecuta con mayor prioridad:

type5

Podemos forzar la ejecución del comando externo indicando explícitamente la ruta del comando (ruta absoluta o relativa).

comando_interno

 

 

 

 

 

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.