В Windows, когда вы открываете командную строку, почти всегда запускается программа cmd.exe
. Это улучшенная производная от NT старого основанного на DOS command.com
, который, в свою очередь, имеет сходство с еще более старым интерпретатором команд CP/M CCP
.
В Linux, как упоминает @Griffin, обычно вы запускаете bash
в терминальном эмуляторе терминала, если используете его в графической среде. (который может широко варьироваться в зависимости от вашего дистрибутива и окружения рабочего стола). Это означает "Bourne Again SHell", потому что это расширенная версия более ранней оболочки "Bourne" (sh
), которая долгое время была стандартной в Unix. Есть и другие "альтернативные" оболочки, которые обычно используются, такие как csh
, ksh
и tcsh
.
Windows cmd.exe
можно рассматривать как оболочку (как и explorer.exe
).
Как в командной строке Windows, так и во всех оболочках Unix есть несколько «встроенных модулей», или команд, которые обрабатываются полностью внутри оболочки. Это включает в себя некоторые основные команды (такие как cd
) и множество условных команд и операторов, которые управляют потоком сценариев, если выполняется командный файл команд.
Однако как в Linux, так и в Windows подавляющее большинство "команд", которые делают полезные вещи, на самом деле являются внешними программами, которые "вызываются" оболочкой. И это основная цель оболочки - дать оператору возможность запускать программы с указанием аргументов для этих программ. Это не совсем язык программирования, это просто среда для запуска программ.