Сравнение командных оболочек

Сравнение командных оболочек

Командная оболочка — это компьютерная программа с интерфейсом командной строки операционной системы.

Содержание

Общие характеристики

Обычное окружение (или среда) Обычно вызывается Introduced Платформо-независимое Default login shell in Default script shell in Лицензия Unicode Перенаправление потоков Встроенная поддержка CIM/WBEM Блокирование неподписанных скриптов доступно как статически связанный, один независимый исполняемый файл
Bourne shell 7th Ed. UNIX sh 1977 Нет 7th Ed. UNIX 7h Ed. UNIX AT&T prop.[1] С SVr4[2] Да (произвольные файловые дескрипторы) Нет Нет Да
POSIX shell[3] POSIX sh 1992[4] Да N/A POSIX N/A Да, если используется настроенной локалью Да (произвольные файловые дескрипторы) Нет Нет N/A
bash (v4.0) POSIX bash, sh 1989[5] Да GNU, Mac OS X 10.3+ GNU,
Haiku
GPL Да Да (произвольные файловые дескрипторы) Нет Нет Да
csh POSIX csh 1978 Да ? ? BSD Нет Да (stdin, out, out+err) Нет Нет Да
tcsh POSIX tcsh, csh 1983[6] Да FreeBSD, ранее Mac OS X ? BSD Да Да (stdin, out, out+err) Нет Нет Да
Scsh POSIX scsh 1994 Да ? ? BSD-style [[{{{1}}}|?]] Да Нет Нет Да
ksh (ksh93t+) POSIX ksh 1983[7][8] Да AIX, HP-UX OpenSolaris Common Public License С SVr4[9] Да (произвольные файловые дескрипторы) Нет Нет Да
pdksh POSIX ksh, sh 1989 [[{{{1}}}|?]] Да OpenBSD[10] OpenBSD[10] Общественное достояние Нет Да (произвольные файловые дескрипторы) Нет Нет Да
zsh POSIX zsh 1990 Да Grml, GoboLinux Grml BSD-подобная Да Да (произвольные файловые дескрипторы) Нет Нет Да
ash POSIX sh 1989 Да Minix, BusyBox based systems FreeBSD, NetBSD, Minix, BusyBox based systems BSD-style Да Да (произвольные файловые дескрипторы Нет Нет Да
Windows
cmd.exe[11]
Win32 cmd 1993 Нет Windows NT, 2000, XP, Server 2003, Vista Windows NT, 2000, XP, Server 2003, Vista MS-EULA[12] Да Да Нет Нет Да
TCC (ранее 4NT) Win32 ? 1993 Нет ? ? Shareware Да Да (stdin, out, err) Нет Нет Нет
Windows PowerShell .NET powershell 2006 No
(3rd party in dev[13])
Windows Server 2008, 7, Vista, XP[14] Windows Server 2008, 7 MS-EULA[12]
или BSD/GPL (PASH)
Да Да Да Да Нет
COMMAND.COM DOS command 1980 Нет
(3rd party available[15])
DOS, Windows 95, 98, ME DOS, Windows 95, 98, ME MS-EULA[16]
или BSD/GPL (свободные клоны)
Нет Да (только stdin, out, COMn/LPT) Нет Нет Да
4DOS DOS ? 1989 Нет ? ? Лицензия MIT, с ограничениями Нет Да (stdin, out, err) Нет Нет Нет
OS/2
cmd.exe
OS/2 cmd 1987 Нет OS/2 OS/2 IBM-EULA[17] Нет Да (stdin, out, err) Нет Нет [[{{{1}}}|?]]
rc Plan 9, POSIX rc 1989 Да Plan 9, Version 10 Unix Plan 9, Version 10 Unix Lucent Public License Да Да Нет Нет Да
BeanShell Java ? 2005 Да ? ? LGPL Да Да [[{{{1}}}|?]] Нет Да (bsh.jar)
Python shell Python python, ipython 1991 Да ? ? Python Да Да [[{{{1}}}|?]] Нет Да, на Windows через py2exe
Ruby shell Ruby irb 1995 Да ? ? Ruby, BSD 1.9: Да
1.8: ограниченно
Да [[{{{1}}}|?]] Нет Да с помощью rubyscript2exe.rb
VMS DCL[18] OpenVMS ? 1977 [[{{{1}}}|?]] Нет VMS VMS ? Нет Да (присваивание sys$input, sys$output) Нет Нет Нет

Интерактивные возможности

Completion Directory stack (pushd/popd) Directory History Window (popup) Implicit Directory Change — If command is dir name changes to it История команд History completion Проверка правописания Default user prompt[19] Custom command prompt Aliases Binary prefix notation Job control Startup scripts
Bourne shell Нет Нет Нет Нет Нет Нет Нет $  Да (переменная: $PS1) Через функции Нет С SVr4 Да
POSIX shell Нет Нет Нет Нет Да Нет Нет $  Да (переменная: $PS1) Да Нет Да Да
bash (v4.0) Да (расширяемое) Да Нет Да
(опциональное)
Да Да Нет bash-<version number>$ Да (переменная: $PS1) Да Нет Да Да
csh Да (через клавишу ESC) Да Нет Да
(опциональное)
Да Да Нет % Да (переменная: $prompt Да Нет Да Да
tcsh Да (расширяемое) Да Нет Да
(опциональное)
Да Да экспериментальное > Да (переменная: $prompt Да Нет Да Да
Scsh Нет Нет Нет Нет Нет Нет Нет > Нет Да (macro and procedure definitions) Да Да Да
ksh (ksh93t+) Да (расширяемое) Нет Нет Нет Да Да Нет $ Да (переменная: $PS1, и больше) Да Нет Да Да
pdksh Да Нет Нет Нет Да [[{{{1}}}|?]] Нет $ Да (переменная: $PS1) Да Нет Да Да
zsh Да (расширяемое) Да Нет Да
(опционально)
Да Да Да <hostname>% Да (переменная: $PS1, и больше) Да Нет Да Да
ash Нет Да Нет Нет Да Да Нет $ Да (переменная: $PS1) Да Нет Да Да
Windows
cmd.exe
Да (частично) Да Нет Нет Да (F7) Да (F8) Нет <path>> Да (переменная окружения: %PROMPT%) Да ("macros", через doskey) Нет Нет Да
TCC (ранее 4NT) Да (частично) Да Да Да Да Да Нет [<path>] Да (переменная окружения: %PROMPT) Да [[{{{1}}}|?]] Нет Да (4start)
Windows PowerShell Да (extendable) Да (all location types)[20] Да Нет Да Да (F8) Нет PS <path>>  Да (функция: prompt) Да Да Да Да
COMMAND.COM Нет Нет Нет Нет Нет[21][22] Нет[21][22] Нет <path or drive name>> Да (переменная окружения: %PROMPT%) Да (используя SET или реестр) Нет Нет Нет[23]
4DOS Да Да Да Да Да Да Нет <path>> Да (переменная окружения: %PROMPT) Да [[{{{1}}}|?]] Нет Да (4start)
OS/2
cmd.exe
Да [[{{{1}}}|?]] Нет Нет Да [[{{{1}}}|?]] Нет [<path>] Да (переменная окружения: %PROMPT%) Нет Нет Нет Нет
rc Да[24] [[{{{1}}}|?]] Нет Нет Да[24] Да[24] Нет term%, ; Да (функция: prompt, или переменная: $prompt) Да (функции) Нет Handled by rio Да
BeanShell Да [[{{{1}}}|?]] Нет Нет Да [[{{{1}}}|?]] Нет bsh % Да (переменная: bsh.prompt, или метод: getBshPrompt()) [[{{{1}}}|?]] [[{{{1}}}|?]] [[{{{1}}}|?]] Да (.bshrc)
Python shell Да (предоставляется модулем rlcompleter или IPython) Да (предоставляется IPython) Нет Нет Да Да (предоставляется IPython) Нет >>> Да (переменная: sys.ps1) Да (функции) [[{{{1}}}|?]] Да Да ($PYTHONSTARTUP или ipythonrc)
Ruby shell Да Да (передать блок методу Dir.chdir()) Нет Нет Да Да (with UtilityBelt gem) Нет irb(main):001:0> Да Да [[{{{1}}}|?]] Да Да (.irbrc)
VMS DCL Нет Нет Нет Нет Да Нет Нет $ Да (команда SET PROMPT) Да Да Да Да (login.com)

Программные возможности

Функции Обработка исключений Поиск и замена по переменным Параллельное присваивание Variadic functions Аргументы по умолчаниюs Именованные параметры Лямбда-функции функция eval Генератор псевдослучайных чисел Байт-код
Bourne shell Да с SVr2 Да (via trap) Нет Нет С SVr2 Нет Нет Нет Да Нет Нет
POSIX shell Да Да (via trap) Нет Нет Да Нет Нет Нет Да Нет Нет
bash (v4.0) Да Да (via trap) Да (через ${//} синтаксис) Нет Да Да Нет Нет Да Да ($RANDOM) Нет
csh Нет Нет Нет Нет Нет Нет Нет Нет Да Нет Нет
tcsh Нет Нет Да (через ${:s//} синтаксис Нет Нет Нет Нет Нет Да Нет Нет
Scsh Да [[{{{1}}}|?]] Да (через строковые функции и регулярные выражения) Нет Да Нет Нет Да Да Да (random-integer, random-real) Да (компилятор представляет собой Scheme48 виртуальную машину, "scshvm")
ksh (ksh93t+) Да Да (via trap) Да (через ${//} синтаксис и встроенные команды) [[{{{1}}}|?]] Да Да Да (для определяемых пользователем "типов") Нет Да Да ($RANDOM) Да (компилятор называется "shcomp")
pdksh Да Да (via trap) Нет [[{{{1}}}|?]] Да Да Нет Нет Да Да ($RANDOM) Нет
zsh Да Да Да (через ${:s//} и ${//} синтаксис) [[{{{1}}}|?]] Да Да Нет Нет Да Да ($RANDOM) Да (встроенная команда "zcompile")
ash Да Да (via trap) Нет Нет Да Да Нет Нет Да Нет Нет
Windows
cmd.exe
Да (через "call :label") Нет Да (via set %varname:expression syntax) Нет Нет Нет Нет Нет Нет Да (%random%) Нет
TCC (ранее 4NT) Да Нет Да (через функцию %@replace[ ]) Нет Нет Нет Нет Нет Да Да (функция %@random[ ]) Нет
Windows PowerShell Да Да Да (-replace operator) Да Да Да Да Да Да Да Да, автоматически
COMMAND.COM Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет
4DOS Да Нет Да (через функцию %@replace[ ]) Нет [[{{{1}}}|?]] Нет [[{{{1}}}|?]] Нет Да Да (функция %@random[ ]) Нет
OS/2
cmd.exe
Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет
rc Да Да Нет [[{{{1}}}|?]] Да Да [[{{{1}}}|?]] Нет Да Нет Нет
BeanShell Да Да [[{{{1}}}|?]] [[{{{1}}}|?]] Нет Нет Нет Нет Да Да Да
Python shell Да Да Да (через строковые методы и регулярные выражения) Да Да Да Да Да Да Да Да (стандартный CPython, IronPython или Jython)
Ruby shell Да Да Да (через строковые функции и регулярные выражения) Да Да Да Да Да Да Да Да (NetRuby, JRuby, version 1.9/YARV)
VMS DCL Да Да Нет Нет Нет Нет Нет Нет Нет Нет Нет

Поиск соответствий строк и имён файлов

Pattern Matching (regular expressions built-in) Pattern Matching (globbing) Globbing qualifiers (создание имён файлов по их атрибутам) Recursive globbing (создание файлов с любого уровня подкаталогов)
Bourne shell Нет Да (*, ?, [...]) Нет Нет
POSIX shell Нет Да (*, ?, [...]) Нет Нет
bash (v4.0) Да Да (*, ?, [...], {...}) Нет Да (**/…)
csh Нет Да Нет Нет
tcsh Да Да Нет Нет
Scsh Да Да Нет Нет
ksh (ksh93t+) Да Да (*, ?, [...]) Нет Да (with set -G, no following of symlinks)
pdksh Нет Да Нет Нет
zsh Да Да (*, ?, [...],
ext'd globbing[25])
Да Да (**/… or ***/… для следования по символическим ссылкам)
ash Нет Да Нет Нет
Windows
cmd.exe
Да (через команду findstr /r) Да (*, ?) [[{{{1}}}|?]] Нет
TCC (ранее 4NT) Ограниченная поддержка Да (*, ?, [...]) [[{{{1}}}|?]] Да (через FOR /R)
Windows PowerShell Да (полная поддержка регулярных выражений)[26] Да (*, ?, [...]) [[{{{1}}}|?]] [[{{{1}}}|?]]
COMMAND.COM Нет Да (*, ?) [[{{{1}}}|?]] Нет
4DOS Нет Да (*, ?, [...]) [[{{{1}}}|?]] Да (через FOR /R)
OS/2
cmd.exe
Нет Да (*, ?) [[{{{1}}}|?]] [[{{{1}}}|?]]
rc Нет Да Нет Нет
BeanShell Да [[{{{1}}}|?]] [[{{{1}}}|?]] [[{{{1}}}|?]]
Python shell Да Да Да (через модуль glob) Да (через модуль glob)
Ruby shell Да Да (через метод Dir.glob()) [[{{{1}}}|?]] Да (через метод Dir.glob())
VMS DCL Нет Да Нет Да (через [SUBDIR…])

Межпроцессное взаимодействие

Pipes Подстановка команд Подстановка процессов Подоболочки TCP/UDP соединения в виде потоков
Bourne shell байты
concurrent
Да Нет Да Нет
POSIX shell байты
concurrent
Да Нет Да Нет
bash (v4.0) байты
concurrent
Да Да (если система поддерживает /dev/fd/<n> или именованные каналы Да Да (только клиент)
csh байты
concurrent
Да Нет Да Нет
tcsh байты
concurrent
Да Нет Да Нет
Scsh текст [[{{{1}}}|?]] [[{{{1}}}|?]] [[{{{1}}}|?]] Да
ksh (ksh93t+) байты
(может содержать сериализованные объекты, если используется print -C)
concurrent
Да ($(...) and ${<space>...;}) Да (если система поддерживает /dev/fd/<n> Да Да (и поддержка SCTP, client only)
pdksh байты
concurrent
Да Нет Да Нет
zsh байты
concurrent
Да Да Да Да (клиент и сервер, но только TCP)
ash байты
concurrent
Да Нет Да Нет
Windows
cmd.exe
текст
concurrent
Да (via FOR /F command) Нет Да (Backtick: ` in for /f usebackq) Нет
TCC (ранее 4NT) текст Да (через команду FOR /F) [[{{{1}}}|?]] Ограниченно, через %@execstr[ ] и %@exec[ ] Нет
Windows PowerShell объекты
concurrent
Да Нет Да Да
COMMAND.COM текст
sequential
временные файлы
Нет Нет Нет Нет
4DOS текст
sequential
временные файлы
Да (через команду FOR /F) [[{{{1}}}|?]] Ограниченно, через %@execstr[ ] и %@exec[ ] Нет
OS/2
cmd.exe
текст
concurrent
Нет Нет [[{{{1}}}|?]] Нет
rc текст
concurrent
Да Да (через: <{cmd} если система поддерживает /dev/fd/<n>) Да Нет
BeanShell не поддерживается [[{{{1}}}|?]] [[{{{1}}}|?]] [[{{{1}}}|?]] Да
Python shell объекты (при использовании IPython+IPipe) Да Да (через модуль subprocess) Да Да
Ruby shell не поддерживается Да Да Да (Backtick: `) Да
VMS DCL текст
(через команду PIPE)
Нет Нет Да (spawn) Да (server TCP only)

Примечания

  1. ↑ В настоящее время доступно в соответствии под BSD-подобной лицензией через Unix Heritage Society и другие.
  2. ↑ SVr4 Bourne Shell включает в себя поддержку многобайтовых символов, позже в libc была добавлена ​​поддержка UNICODE в качестве конкретной многобайтовой кодировки
  3. ↑ IEEE 1003.1™ Standard for Information Technology — Portable Operating System Interface (POSIX®): Shell and Utilities, Issue 6.
  4. ↑ As part of IEEE Std.1003.2-1992 (POSIX.2); integrated into IEEE Std.1003.1 with the 2001 revision.
  5. ↑ Brian Fox (forwarded by Leonard H. Tower Jr.) (Jun 7 1989). "Bash is in beta release!". gnu.announce. (Google Groups). Retrieved on Oct 28 2010.
  6. ↑ Ken Greer (Oct 3 1983). "C shell with command and filename recognition/completion". net.sources. (Google Groups). Retrieved on Dec 29 2010.
  7. ↑ Ron Gomes (Jun 9 1983). "Toronto USENIX Conference Schedule (tentative)". net.usenix. (Google Groups). Retrieved on Dec 29 2010.
  8. ↑ Guy Harris (Oct 10 1983). "csh question". net.flame. (Google Groups). Retrieved on Dec 29 2010.
  9. ↑ SVr4 Korn Shell включает в себя поддержку многобайтовых символов, позже в libc была добавлена ​​поддержка UNICODE в качестве конкретной многобайтовой кодировки
  10. ↑ 1 2 Default shell in OpenBSD is ksh (pdksh).
  11. ↑ Command extensions enabled, or «cmd /x».
  12. ↑ 1 2 Windows component — covered by a valid license or Microsoft Windows
  13. ↑ PASH, a third-party remake, is in development and almost half-finished. Activity seems to have stagnated early 2009.
  14. ↑ Windows PowerShell is installed with Windows 7, however, it is an optional download for users of Windows Vista or Windows XP.
  15. ↑ Доступны сторонние повторные реализации, такие как DosBox, Wine и FreeDOS.
  16. ↑ MS-DOS and Windows component — covered by a valid license for MS-DOS or Microsoft Windows
  17. ↑ OS/2 component — covered by a valid license for OS/2
  18. ↑ HP OpenVMS DCL Dictionary. Архивировано из первоисточника 17 сентября 2012. Проверено 23 марта 2009.
  19. ↑ Many shells in *nix environments change the root user's prompt to '#'.
  20. ↑ PowerShell exposes more than just the file system as a navigable system: Windows Registry, functions, aliases, variables, certificate store, credential store etc. The location types are extensible through a provider architecture. Common commands will work with any compliant provider
  21. ↑ 1 2 Добавлено резидентными программами, такими как DOSKey
  22. ↑ 1 2 Доступно в DR-DOS через команду «history» в config.sys; см. эту сылку
  23. ↑ Ограниченная поддержка через AUTOEXEC.BAT.
  24. ↑ 1 2 3 Handled by rio, GNU readline, editline или vrl
  25. ↑ Zsh offers an almost overwhelming variety of globbing options.
  26. ↑ PowerShell leverages the full .NET regular expression engine which features named captures, zero-width lookahead/-behind, greedy/non-greedy, character classes, level counting etc.

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Полезное


Смотреть что такое "Сравнение командных оболочек" в других словарях:

  • Windows PowerShell — Windows PowerShell …   Википедия

  • Bourne shell — Тип Командная оболочка UNIX …   Википедия

  • Zsh — Z shell Сессия в zsh. Тип Командная оболочка UNIX Разработчик …   Википедия

  • tcsh — В этой статье не хватает ссылок на источники информации. Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена. Вы можете отредактировать эту статью …   Википедия

  • Python — У этого термина существуют и другие значения, см. Python (значения). Python Класс языка: му …   Википедия

  • Almquist shell — Тип Командная оболочка UNIX Написана на C Операционная система Cross platform Языки интерфейса English, multilingual (gettext) Аппаратная платформа Cross platform …   Википедия

  • bash — У этого термина существуют и другие значения, см. Bash (значения). GNU Bourne Again SHell Типичная сессия в bash …   Википедия

  • Командная оболочка UNIX — (англ. Unix shell, часто просто «шелл» или «sh»)  командный интерпретатор, используемый в операционных системах семейства UNIX, в котором пользова …   Википедия

  • COMMAND.COM — Тип Командный интерпретатор Разработчик Seattle Computer Products, Microsoft, IBM, Novell и др. Операционная система DOS (MS DOS, DR DOS, FreeDOS и т. д.), OS/2, Windows 9x и др. Язык …   Википедия

  • Csh — У этого термина существуют и другие значения, см. CSH. C shell Тип Командная оболочка UNIX Автор Билл Джой Написана на Си Операционная система BSD, UNIX, Linux, Mac OS X Первый вы …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
… Нажмите правой клавишей мыши и выберите «Копировать ссылку»