En términos simples, un comando es una instrucción (o un conjunto de instrucciones) que debe ejecutar una computadora.
Comandos independientes
Las utilidades fundamentales de Unix tales como ls
, ln
etc. están escritas (generalmente) en C y compiladas para ser programas ejecutables independientes que no requieren la ejecución de un intérprete; Por lo general, requieren la instalación de ciertos archivos de biblioteca en el sistema, pero esa es una respuesta para otra pregunta.
Guiones
Un script es una colección de comandos y, de hecho, los scripts en sí mismos se consideran un comando.
Un script de perl es una secuencia de sentencias Perl y requiere un perl
(stand-alone y compilado) ejecutable del programa para interpretar las declaraciones de Perl.
A veces, los guiones interpretativos grandes y complejos (en lenguajes como Perl, Python y Ruby) también se denominan programas interpretados, mientras que el término guión está reservado para guiones más cortos y simples.
Un script de shell es una secuencia de otros comandos (cualquier tipo de comando) y requiere un shell de Unix como Bash para interpretar el script. Desde la página de manual de Bash:
Bash es un intérprete de lenguaje de comandos compatible con sh que ejecuta comandos leídos desde la entrada estándar o desde un archivo.
Shell incorporado
Los shells generalmente tienen comandos integrados que no son ni programas independientes ni scripts. En cambio, son parte del shell y se ejecutan directamente por el shell. cd
es un ejemplo de dicho comando incorporado.
Algunas veces hay comandos que existen como funciones integradas de shell y como comandos independientes al mismo tiempo, por ejemplo, el echo
comando.
$ type -a echo
echo is a shell builtin
echo is /usr/bin/echo
echo
por sí solo ejecuta el shell incorporado, mientras que el comando independiente se puede ejecutar proporcionando su ruta completa.
Ejecute la versión integrada de echo:
$ echo --version
--version
Ejecute el echo
programa independiente :
$ /usr/bin/echo --version
echo (GNU coreutils) 8.23
Packaged by Cygwin (8.23-4)
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Nota: Los detalles anteriores se refieren a un entorno Unix, pero los mismos principios se aplican a un entorno Windows.