En Windows, cuando abre un símbolo del sistema, casi siempre el programa que se está ejecutando es cmd.exe
. Es una derivada NT mejorada del antiguo basado en DOS command.com
, que a su vez tiene similitudes con el CCP
intérprete de comandos CP / M aún más antiguo .
En Linux, como menciona @Griffin, generalmente se está ejecutando bash
en algún tipo de emulador de terminal si lo está utilizando en un entorno gráfico. (que puede variar ampliamente dependiendo de su distribución y entorno de escritorio). Esto significa "Bourne Again SHell" porque es una versión extendida de un shell "Bourne" anterior ( sh
) que ha sido estándar en Unix durante mucho tiempo. Hay otras alternativas "conchas" de uso común, tales como csh
, ksh
, y tcsh
.
Windows también cmd.exe
puede considerarse un shell (como puede explorer.exe
).
Tanto el símbolo del sistema de Windows como todos los shells de Unix tienen varios "incorporados" o comandos que se manejan completamente dentro del shell. Esto incluye algunos comandos básicos (como cd
) y muchos comandos y operadores condicionales que controlan el flujo del script si se ejecuta un archivo por lotes de comandos.
Sin embargo, tanto en Linux como en Windows, la gran mayoría de los "comandos" que hacen cosas útiles son, de hecho, programas externos que son "llamados" por el shell. Y ese es el propósito principal de un shell, permitir que un operador inicie programas con argumentos específicos para esos programas. Realmente no es estrictamente un lenguaje de programación, es solo un marco para iniciar programas.