Проще говоря, команда - это инструкция (или набор инструкций), которая должна выполняться компьютером.
Автономные команды
Фундаментальные утилиты Unix, такие как ls
, ln
и т.д. (Обычно) написаны на C и скомпилированы для того, чтобы быть автономными исполняемыми программами, которые не требуют выполнения интерпретатора; они обычно требуют, чтобы определенные библиотечные файлы были установлены в системе, но это ответ на другой вопрос.
Сценарии
Сценарий - это набор команд, и фактически сами сценарии считаются командой.
Сценарий Perl - это последовательность операторов Perl, для выполнения которой требуется perl
исполняемая (автономная и скомпилированная) программа для интерпретации операторов Perl.
Иногда большие и сложные интерпретирующие сценарии (в таких языках, как Perl, Python и Ruby) также называют интерпретируемыми программами, в то время как термин сценарий зарезервирован для более коротких и простых сценариев.
Сценарий оболочки - это последовательность других команд (команд любого типа), и для интерпретации сценария требуется оболочка Unix, например Bash. Со страницы руководства Bash:
Bash - это совместимый с sh интерпретатор языка команд, который выполняет команды, считываемые со стандартного ввода или из файла.
Встроенные оболочки
Оболочки обычно имеют встроенные команды, которые не являются ни автономными программами, ни скриптами. Вместо этого они являются частью самой оболочки и запускаются непосредственно оболочкой. cd
- пример такой встроенной команды.
Иногда существуют команды, которые существуют как встроенные в оболочку и как отдельные команды одновременно, например, команда echo
.
$ type -a echo
echo is a shell builtin
echo is /usr/bin/echo
echo
самостоятельно выполняет встроенную оболочку, а отдельную команду можно выполнить, указав полный путь к ней.
Запустите встроенную версию echo:
$ echo --version
--version
Запустите автономную echo
программу:
$ /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.
Примечание. Приведенные выше особенности относятся к среде Unix, но те же принципы применимы к среде Windows.