Эта статья поднимает множество проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалить эти сообщения-шаблоны ) ( Узнайте, как и когда удалить этот шаблон сообщения )
|
Командная оболочка представляет собой интерфейс командной строки компьютерной программы к операционной системе .
Общие характеристики [ править ]
Оболочка | Обычная среда | Обычно вызывается | Введено | Независимая платформа | Оболочка входа по умолчанию в | Оболочка сценария по умолчанию в | Лицензия | Доступность исходного кода | Пользовательский интерфейс | Поддержка мыши | Поддержка Unicode | Поддержка ISO 8601 | Перенаправление консоли | Перенаправление потока | Конфигурируемость | Скрипты запуска / выключения | Пакетные скрипты | логирование | доступен как статически связанный, независимый исполняемый файл с одним файлом |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Оболочка Томпсона | UNIX | ш | 1971 г. | N / A | UNIX | UNIX | N / A | да | Текстовый интерфейс командной строки | Нет | Нет | N / A | да | N / A | N / A | N / A | N / A | N / A | N / A |
Оболочка Борна 1977 года выпуска | 7-е изд. UNIX | ш | 1977 г. | Да [1] | 7-е изд. UNIX | 7-е изд. UNIX , | Собственный [2] | да | Текстовый интерфейс командной строки | Нет | Нет | N / A | да | Да (произвольные fds ) | Да (через переменные и опции) | Да ( .profile ) | Да (функция Unix) | Нет | да |
Текущая версия оболочки Bourne | Различные UNIX | ш | 1977 г. | Да [3] | SunOS-5.x, FreeBSD (пользователь без полномочий root) [4] | SunOS-5.x | CDDL [5] [ необходим лучший источник ] | да | Текстовый интерфейс командной строки | Нет | Да [nb 1] [ нужен лучший источник ] | N / A | да | Да (произвольные fds ) | Да (через переменные и опции) | Да ( .profile ) | Да (функция Unix) | Да [nb 2] | да |
Оболочка POSIX [6] | POSIX | ш | 1992 [7] | N / A | N / A | POSIX | N / A | N / A | Текстовый интерфейс командной строки | Нет | Да, если используется настроенной локалью | N / A | да | Да (произвольные fds ) | Да (через переменные и опции) | Не указано ( .profile приведен в качестве примера) | Да (функция Unix) | да | N / A |
bash (v4) | POSIX | баш, ш | 1989 [8] | да | GNU , Linux (по умолчанию для root), macOS 10.3–10.14 | GNU , Linux , Haiku , macOS 10.3–10.14 | GPL | да | Текстовый интерфейс командной строки | Нет | Да [9] [ нужен лучший источник ] | Да ( встроенный printf ) | да | Да (произвольные fds ) | Да (через переменные и опции) | Да ( / etc / profile , .bash_profile , .bash_login , .profile , .bashrc ) | Да (функция Unix) | да | да |
csh | POSIX | csh | 1978 г. | да | SunOS | ? | BSD | да | Текстовый интерфейс командной строки | Нет | Нет | ? | да | Да ( stdin , stdout , stdout + stderr ) | Да (через переменные и опции) | Да ( ~ / .cshrc , ~ / .login , ~ / .logout ) | Да (функция Unix) | да | да |
tcsh | POSIX | tcsh, csh | 1983 [10] | да | FreeBSD (по умолчанию для root), ранее Mac OS X | ? | BSD | да | Текстовый интерфейс командной строки | Нет | да | ? | да | Да ( stdin , stdout , stdout + stderr ) | Да (через переменные и опции) | Да ( /etc/csh.cshrc , /etc/csh.login , ~ / .tcshrc , ~ / .cshrc , ~ / .history , ~ / .login , ~ / .cshdirs ) | Да (функция Unix) | да | да |
Оболочка Hamilton C | Win32 , OS / 2 | csh | 1988 [11] | Да (версия OS / 2 больше не поддерживается) | По желанию | По желанию | Проприетарный | Нет | Текстовый интерфейс командной строки | Нет | Нет | Да (оператор отметки времени -t) | да | Да ( stdin , stdout , stdout + stderr ) | Да (через переменные и опции) | Да (через login.csh, startup.csh и logout.csh) | Да (опция командной строки) | да | да |
Scsh | POSIX | scsh | 1994 г. | да | ? | ? | BSD- стиль | да | ? | ? | ? | ? | ? | да | ? | ? | ? | ? | да |
КШ (ksh93t +) | POSIX | кш | 1983 [12] [13] | да | AIX , HP-UX | OpenSolaris | Общая общественная лицензия | да | Текстовый интерфейс командной строки | Нет | да | Да ( встроенный printf с % (% F) T [14] ) | да | Да (произвольные fds ) | Да (через переменные и опции) | Да ( профиль системы и пользователя и kshrc ) | Да (функция Unix) | да | да |
pdksh | POSIX | кш, ш | 1989? | да | OpenBSD [15] | OpenBSD [15] | Всеобщее достояние | да | Текстовый интерфейс командной строки | Нет | Нет | N / A | да | Да (произвольные fds ) | Да (через переменные и опции) | Да ( / etc / profile , .profile ) | Да (функция Unix) | да | да |
zsh | POSIX | zsh | 1990 г. | да | Deepin , GoboLinux , Grml , macOS 10.15+ | Grml , macOS 10.15+ | MIT- стиль | да | Текстовый интерфейс командной строки | через дополнительный код [16] | да | Да (различные внутренние функции, связанные с датой, с использованием формата % F strftime [17] и опции -i для встроенной команды fc [18] ) | да | Да (произвольные fds ) | Да (через переменные, параметры, функции, стили и т. Д.) | Да (системные и пользовательские zshenv , zprofile , zshrc , zlogin , zlogout ) | Да (функция Unix) | да | да |
пепел | POSIX | ш | 1989 г. | да | Системы на базе Minix , BusyBox | Системы на базе NetBSD , Minix , BusyBox | BSD- стиль | да | Текстовый интерфейс командной строки | Нет | Частичный (для BusyBox, поддерживается при редактировании из командной строки, но не при обработке строк [19] ) | N / A | да | Да (произвольные fds ) | Да (через переменные и опции) | Да ( / etc / profile , .profile ) | Да (функция Unix) | да | да |
КПК | CP / M , MP / M | (КПК) | 1976 (1974) | Нет | CP / M (без входа), MP / M | CP / M , MP / M | Бесплатное ПО (изначально проприетарное) | Да (изначально с закрытым исходным кодом) | Текстовый интерфейс командной строки | Нет | Нет | Нет | Нет | Нет | Нет | Да (автоматически через $$$. SUB ) | Частично (только через внешнюю команду SUBMIT для обновления $$$. SUB ) | Нет | да |
COMMAND.COM | ДОС | КОМАНДА | 1980 г. | Нет (доступны сторонние реализации, не привязанные к конкретному поставщику или версии DOS) | DOS , Windows 95 , 98 , SE , ME | DOS , Windows 95 , 98 , SE , ME | зависит от поставщика, например MS - EULA , [nb 3] или BSD / GPL (бесплатные клоны) | Нет (кроме OpenDOS, DR-DOS, PTS / DOS и FreeDOS) | Текстовый интерфейс командной строки | Нет | Нет | Нет (кроме DR-DOS) | Да ( с помощью COMMAND кона: или CTTY контакта: ) | Да (стандартный ввод , стандартный вывод ) | Да (через параметры запуска и переменные среды DR-DOS также поддерживает команду переключения пользователя по умолчанию DIR / C / R ) | Да (автоматически \ AUTOEXEC.BAT для основной оболочки или явно через параметры запуска / P , /P:filename.bat или / K ) | Да (с помощью команды CALL или параметров запуска / C и / K ) | Нет | да |
OS / 2 CMD.EXE | OS / 2 , eComStation , ArcaOS | CMD | 1987 г. | Нет | OS / 2 , eComStation , ArcaOS | OS / 2 , eComStation , ArcaOS | IBM - EULA [nb 4] | Нет | Текстовый интерфейс командной строки | Нет | Нет | Нет | Нет | Да ( stdin , stdout , stderr ) | ? | Частично (только через параметр запуска / K ) | Да (с помощью команды CALL или параметров запуска / C и / K ) | Нет | да |
Windows CMD.EXE [nb 5] | Win32 | CMD | 1993 г. | Нет | Windows NT, 2000, XP, сервер 2003, Vista | Windows NT, 2000, XP, сервер 2003, Vista | MS - EULA [nb 6] | Нет | Текстовый интерфейс командной строки | Нет | Частично ( CHCP 65001 для UTF-8 , но аргументы программы по-прежнему закодированы в локальной кодовой странице) | Нет | Нет | да | Да (через реестр, параметры запуска и переменные среды) | Да (автоматически через реестр или явно через параметр запуска / K ) | Да (с помощью команды CALL или параметров запуска / C и / K ) | Нет | да |
4DOS , NDOS | DOS , Windows 95 , 98 , SE , ME | 4DOS , NDOS | 1989 (1986) | Нет (не привязан к конкретному поставщику или версии ОС) | По желанию | По желанию | Лицензия MIT с ограничениями | да | Текстовый интерфейс командной строки с расширениями TUI | Да (всплывающие окна, справочная система, внутренняя переменная % _MOUSE , команда INKEY / M ) | Нет | да | Да (через CTTY con:, кроме команд DRAWBOX , DRAWLINE , DRAWVLINE , LIST , SCREEN , SCRPUT , SELECT , VSCRPUT и раскраски файлов / каталогов) | Да ( stdin , stdout , stderr , stdout + stderr ) | Да (через файл 4DOS.INI / NDOS.INI , параметры запуска, переменные среды, команду SETDOS ) | Да (автоматический \ AUTOEXEC.BAT для основной оболочки и 4START.BTM / 4START.BAT, а также 4EXIT.BTM / 4EXIT.BAT для любой оболочки или явно через / P , /P:dir\filename.ext или / K при запуске параметры) | Да (с помощью команды CALL или параметров запуска / C и / K ) | да | да |
4OS2 | OS / 2 , eComStation , ArcaOS | 4OS2 | 1992 г. | Нет (не привязан к конкретным версиям OS / 2) | Необязательно (но в комплекте с ArcaOS) | По желанию | Бесплатное ПО | да | Текстовый интерфейс командной строки | Нет | Нет | Нет | Нет | Да ( stdin , stdout , stderr , stdout + stderr ) | Да (через файл 4OS2.INI , параметры запуска, переменные среды, команду SETDOS ) | Да (автоматически через файлы 4START.CMD / 4START.BTM, а также файлы 4EXIT.CMD / 4EXIT.BTM или явно через параметр / K startup.cmd ) | Да (с помощью команды CALL или параметров запуска / C и / K ) | да | ? |
TCC (ранее 4NT) | Win32 | TCC | 1993 г. | Нет (не привязан к конкретным версиям NT) | по желанию | по желанию | Условно-бесплатное ПО | Нет | Текстовый интерфейс командной строки ( Take Command : GUI ) | Да (консольная мышь, всплывающие окна, справочная система, внутренние переменные % _XMOUSE , % _YMOUSE , команда INKEY / M ) | да | да | Нет | Да ( stdin , stdout , stderr , stdout + stderr ) | Да (через реестр, файл TCMD.INI / 4NT.INI , параметры запуска, переменные среды, команду SETDOS ) | Да (автоматически через реестр и TCSTART / 4START, а также TCEXIT / 4EXIT или явно через параметр запуска / K ) | Да (с помощью команды CALL или параметров запуска / C и / K ) | да | Нет |
VMS DCL [20] | OpenVMS | Автоматически для входа в систему / интерактивного процесса | 1977? | да | VMS | VMS | Собственный, в комплекте с VMS | только по специальной лицензии | Текстовый интерфейс командной строки | с DECwindows / Motif | да | Да, по крайней мере, по стандарту 1988 года | да | Да (назначение sys $ input , sys $ output ) | Да (с помощью символов, логических имен и опций) | Да (SYS $ MANAGER: SYLOGIN.COM и пользовательский LOGIN.COM) | да | да | Нет |
PowerShell | .NET , .NET Framework | PowerShell | 2006 г. | да | Windows 10, 8, Server 2008, 7 [nb 7] | Windows 10, 8, Server 2008, 7 | MIT- стиль | да | Графический интерфейс командной строки | да | да | да | Нет | да | Да (через переменные и опции) | Да (% USERPROFILE% \ Documents \ WindowsPowerShell \ Microsoft.PowerShell_profile.ps1) | Да (функция PowerShell) | да | Нет |
rc | План 9 , POSIX | rc | 1989 г. | да | Plan 9 , версия 10 Unix | Plan 9 , версия 10 Unix | Лицензия MIT [21] | ? | ? | ? | да | ? | ? | да | ? | ? | ? | ? | да |
BeanShell | Ява | ? | 2005 г. | да | ? | ? | LGPL | ? | ? | ? | да | ? | ? | да | ? | ? | ? | ? | Нет |
рыбы | POSIX | рыбы | 2005 [22] | да | GhostBSD | ? | GPL | да | Текстовый интерфейс командной строки | ? | да | ? | ? | Да (произвольные fds ) | Да (через переменные среды и через веб-интерфейс через fish_config ) | Да ( /etc/fish/config.fish и ~ / .config / fish / config.fish ) | Да (функция Unix) | Да ( ~ / .config / fish / fish_history * ) | ? |
Ион | Редокс , Linux | ион | 2015 [23] | да | Редокс | Редокс | Массачусетский технологический институт | да | Текстовый интерфейс командной строки | ? | да | да | ? | Да (произвольные fds ) | Да (соответствует спецификации XDG Base Directory) | Да ( ~ / .config / ion / initrc ) | да | Да ( ~ / .local / share / ion / history ) | Частичный (не распространяется как отдельный исполняемый файл, но может быть построен как один) |
Оболочка | Обычная среда | Обычно вызывается | Введено | Независимая платформа | Оболочка входа по умолчанию в | Оболочка сценария по умолчанию в | Лицензия | Доступность исходного кода | Пользовательский интерфейс | Поддержка мыши | Поддержка Unicode | Поддержка ISO 8601 | Перенаправление консоли | Перенаправление потока | Конфигурируемость | Скрипты запуска / выключения | Пакетные скрипты | логирование | доступен как статически связанный, независимый исполняемый файл с одним файлом |
Интерактивные функции [ править ]
Оболочка | Команда имя завершения | Завершение пути | Команда аргумент завершения | Завершение подстановочного знака | История команд | Обязательный аргумент подсказки | Автоматические предложения | Цветные списки каталогов | Текст подсветка | Синтаксис подсветка | История каталогов, стек или аналогичные функции | Неявное изменение каталога | Автокоррекция | Интегрированная среда | Фрагменты | Подсказка значения | Подсказка меню / параметров | Индикатор прогресса | Контекстно- зависимая помощь | Команда строитель |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Оболочка Томпсона | Нет | Нет | Нет | Нет | Нет | Нет | Нет | ? | ? | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
Оболочка Борна 1977 года выпуска | Нет | Нет | Нет | Нет | Нет | Нет | Нет | ? | ? | Нет | Нет | Нет | Нет | Нет | Нет | да | Нет | Внешний | Нет | Нет |
Текущая версия оболочки Bourne | Нет | Да [№ 8] | Нет | Нет | Да [№ 8] | Нет | Нет | да | да | Нет | Да (CDPATH, pushd, popd, dirs), CDPATH с SVr4 | Нет | Нет | Нет | Нет | да | Нет | Внешний | Нет | Нет |
Оболочка POSIX | Нет | Нет | Нет | Нет | да | Нет | Нет | да | да | Нет | Да ( CDPATH ) | Нет | Нет | Нет | Нет | да | Нет | Внешний | Нет | Нет |
bash (версия 4.0) | да | да | когда определено | Да [№ 9] | да | Нет | Нет | да | да | Нет | Да ( CDPATH , pushd , popd ) | по желанию | Нет | Нет | Нет | да | да | Внешний | Нет | Нет |
csh | да | да | Нет | Нет | да | Нет | Нет | да | да | Нет | Да ( cdpath , pushd , popd ) | по желанию | Нет | Нет | Нет | да | Нет | Внешний | Нет | Нет |
tcsh | да | да | когда определено | Нет | да | Нет | Нет | да | да | Нет | Да ( cdpath , pushd , popd ) | по желанию | да | Нет | Нет | да | Нет | Внешний | Нет | Нет |
Оболочка Hamilton C | да | да | Нет | да | да | Нет | Нет | ? | ? | Нет | Да ( cdpath , pushd , popd ) | Нет | Нет | Нет | Нет | да | Нет | Внешний | Нет | Нет |
Scsh | Нет | Нет | Нет | Нет | Нет | Нет | Нет | ? | ? | Нет | Нет | Нет | Нет | Нет | Нет | да | Нет | Внешний | Нет | Нет |
КШ (ksh93t +) | Да (расширяемый) | Да (расширяемый) | Нет | Нет | да | Нет | Нет | да | да | Нет | Да ( встроенный cdpath , pushd , popd реализованы как функции) | Нет | Нет | Нет | Нет | да | да | Внешний | Нет | Нет |
pdksh | да | да | Нет | Нет | да | Нет | Нет | да | да | Нет | Нет | Нет | Нет | Нет | Нет | да | да | Внешний | Нет | Нет |
zsh | да | да | когда определено | Да [24] | да | Нет | Да (с помощью прогнозируемого или определяемого пользователем [25] ) | да | да | Стороннее расширение [26] | да | по желанию | да | Нет | при определении (как виджеты ZLE) | да | да | Внешний | да | Нет |
пепел | Нет | Нет | Нет | Нет | да | Нет | Нет | да | да | Нет | Нет | Нет | Нет | Нет | Нет | да | да | Внешний | Нет | Нет |
КПК | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
COMMAND.COM | Нет | Нет | Нет | Нет | Нет [ № 10] [№ 11] | Нет | Нет | Нет | Нет (только в DR-DOS через % $ ON% , % $ OFF% , % $ HEADER% , % $ FOOTER% ) | Нет | Нет | Нет | Нет | Нет (только в пошаговом режиме с COMMAND / Y [27] ) | Нет | Нет | Нет (только через внешнюю команду CHOICE , в DR-DOS также через внутренние команды SWITCH / DRSWITCH ) | Нет | Нет | Нет |
OS / 2 CMD.EXE | да | да | Нет | Нет | да | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
Windows CMD.EXE | частичный | частичный | Нет | Нет | Да ( F8 ) | Нет | Нет | Нет | Нет | Нет | Да ( PUSHD , POPD ) | Нет | Нет | Нет | Нет | Да (через команду SET / P ) | Нет | Нет | Нет | Нет |
4ДОС | да | да | да | да | Да [номер 12] [номер 13] | Нет | Нет | да | Нет | Нет | (через всплывающее окно, расширенный поиск в каталогах, CDPATH , PUSHD , POPD , DIRHISTORY , DIRS , CDD , CD - команды и функцию% @ DIRSTACK [] ) | да | Нет | да | Нет | Да (с помощью команд INPUT , INKEY и ESET ) | Да (с помощью функции @SELECT [] и косвенно с помощью комбинации команд INKEY , INPUT , SWITCH ) | Нет | да | Нет (кроме команды OPTION для директив файла INI) |
4OS2 | ? | ? | ? | ? | да | Нет | Нет | да | Нет | Нет | да | да | Нет | ? | Нет | ? | ? | Нет | да | Нет |
TCC (ранее 4NT) | да | да | да | да | да | Нет | Нет | да | Нет | да | (через всплывающее окно, расширенный поиск в каталогах, CDPATH , PUSHD , POPD , DIRHISTORY , DIRS , CDD , CD - команды и функцию% @ DIRSTACK [] ) | да | Нет | да | Нет | Да (с помощью команд INPUT , INKEY , ESET и SET / P ) | Да (через функцию @SELECT [] и косвенно через комбинацию команд INKEY , INPUT , SWITCH ) [nb 14] | Нет | да | Нет |
PowerShell | да | да | да | да | Да ( F8 ) | да | Да, в ISE [28] | ? | ? | Да, в модулях ISE [28] и PSReadLine [29] (включен в v5.0 [30] ) | Да; несколько стеков; несколько типов местоположения [31] | Нет | Да, в PSReadLine [29] Модуль | Да, в ISE [28] | Да, в ISE [28] | да | Да [32] | Да [33] | Да, в ISE [28] | всплывающее окно [34] |
rc | Да [№ 15] | Да [№ 15] | Нет | Нет | Да [№ 15] | Нет | Нет | ? | ? | Нет | Нет | Нет | Нет | Нет | Нет | ? | Нет | Нет | Нет | Нет |
BeanShell | да | да | Нет | Нет | Нет | Нет | Нет | ? | ? | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
VMS DCL | Схема минимальной уникальности | Нет | Нет | Нет | да | да | Нет | ? | ? | Нет | Нет | Нет | Нет | Нет | Нет | да | Нет | Нет | Нет | Нет |
рыбы | да | да | когда они определены или могут быть проанализированы на страницах руководства [35] | Да [35] | да | Нет | да | да | Да (есть встроенный помощник [36] ) | да | да | да | да | Да [номер 16] | Да, используя команду abbr | да | (через команду fish_config [37] ) | Нет | Нет | Нет |
Оболочка | Команда имя завершения | Завершение пути | Команда аргумент завершения | Завершение подстановочного знака | История команд | Обязательный аргумент подсказки | Автоматические предложения | Цветные списки каталогов | Текст подсветка | Синтаксис подсветка | История каталогов, стек или аналогичные функции | Неявное изменение каталога | Автокоррекция | Интегрированная среда | Фрагменты | Подсказка значения | Подсказка меню / параметров | Индикатор прогресса | Контекстно- зависимая помощь | Команда строитель |
Выполнение в фоновом режиме [ править ]
Фоновое выполнение позволяет оболочке запускать команду в фоновом режиме. Оболочки POSIX и другие оболочки Unix позволяют выполнять фоновое выполнение с помощью символа & в конце команды, а в PowerShell вы можете использовать команды Start-Process
или Start-Job
.
Завершенные [ править ]
Функции дополнения помогают пользователю вводить команды в командной строке, ища и предлагая совпадающие слова для неполных. Завершение обычно запрашивается нажатием клавиши завершения (часто Tab ↹клавиши).
Завершение имени команды - это завершение имени команды. В большинстве оболочек команда может быть программой в пути к команде (обычно $PATH
), встроенной командой, функцией или псевдонимом.
Завершение пути - это завершение пути к файлу, относительного или абсолютного.
Завершение с использованием подстановочных знаков - это обобщение завершения пути, где выражение соответствует любому количеству файлов с использованием любого поддерживаемого синтаксиса для сопоставления файлов .
Завершение переменной - это завершение имени переменной ( переменной среды или переменной оболочки). Bash, zsh и fish имеют завершение для всех имен переменных. В PowerShell есть дополнения для имен переменных среды, имен переменных оболочки и - из пользовательских функций - имен параметров.
Завершение аргументов команды - это завершение аргументов конкретной команды. Существует два типа аргументов: именованные и позиционные: именованные аргументы, часто называемые параметрами , идентифицируются по своему имени или букве, предшествующей значению, тогда как позиционные аргументы состоят только из значения. Некоторые оболочки позволяют завершать имена аргументов, но немногие поддерживают завершение значений.
Bash, zsh и fish предлагают завершение имени параметра через определение, внешнее по отношению к команде, которое распространяется в отдельном файле определения завершения. Для завершения имени / значения параметра команды эти оболочки предполагают завершение пути / имени файла, если для команды не определено завершение. Завершение можно настроить так, чтобы предлагать завершение путем вызова функции оболочки. [38] Оболочка Fish дополнительно поддерживает синтаксический анализ страниц руководства.для извлечения информации о параметрах, которую можно использовать для улучшения дополнений / предложений. В PowerShell все типы команд (командлеты, функции, файлы сценариев) по своей сути предоставляют данные об именах, типах и диапазонах / списках допустимых значений для каждого аргумента. Эти метаданные используются PowerShell для автоматической поддержки имени аргумента и завершения значения для встроенных команд / функций, пользовательских команд / функций, а также для файлов сценариев. Отдельные командлеты также могут определять динамическое завершение значений аргументов, где значения завершения вычисляются динамически в работающей системе.
История команд [ править ]
Пользователь оболочки может обнаружить, что он набирает что-то похожее на то, что пользователь вводил раньше. Если оболочка поддерживает историю команд, пользователь может вызвать предыдущую команду в строковом редакторе и отредактировать ее перед повторным вводом.
Оболочки, поддерживающие завершение, также могут иметь возможность напрямую завершить команду из истории команд, учитывая частичную / начальную часть предыдущей команды.
Большинство современных оболочек поддерживают историю команд. Оболочки, которые поддерживают историю команд в целом, также поддерживают завершение из истории, а не просто вызов команд из истории. Помимо обычного текста команды, PowerShell также записывает время начала и окончания выполнения и статус выполнения в историю команд.
Обязательный аргумент [ править ]
Обязательные аргументы / параметры - это аргументы / параметры, которым необходимо присвоить значение при вызове команды, функции или файла сценария. Оболочка, которая может определить перед вызовом, что отсутствуют обязательные значения, может помочь интерактивному пользователю, запрашивая эти значения вместо того, чтобы позволить команде завершиться ошибкой. Наличие приглашения оболочки для отсутствующих значений позволит автору сценария, команды или функции пометить параметр как обязательный вместо создания кода сценария, который либо запрашивает отсутствующие значения (после определения того, что он выполняется в интерактивном режиме), либо завершается ошибкой с сообщение.
PowerShell позволяет командам, функциям и скриптам определять аргументы / параметры как обязательные . Перед вызовом оболочка определяет, есть ли какие-либо обязательные аргументы / параметры, которые не были связаны, и затем запрашивает у пользователя значение (я) перед фактическим вызовом.[39]
Автоматические предложения [ править ]
С помощью автоматических предложений оболочка следит за тем, как интерактивный пользователь вводит текст, и отображает контекстно-зависимые предложения, не прерывая ввод, вместо того, чтобы пользователь явно запрашивал завершение .
Интегрированная среда сценариев PowerShell использует обнаруживаемые метаданные для предоставления «intellisense» - т. Е. Предложений, которые автоматически появляются по мере ввода пользователем, в дополнение к тому, когда пользователь явно запрашивает списки завершения, нажимая, например, Tab ↹
История каталогов, стек или аналогичные функции [ править ]
Оболочка может записывать местоположения, которые пользователь использовал в качестве текущих местоположений, и обеспечивать быстрое переключение в любое местоположение / каталог в истории.
Одно из применений стека каталогов zsh - запись истории каталогов. В частности, для этой цели используются опция AUTO_PUSHD и расширенные аргументы компакт-диска и завершение.
PowerShell позволяет использовать несколько именованных стеков. Местоположения (каталоги) могут быть вставлены / извлечены из текущего стека или именованного стека. Любой стек может стать текущим (по умолчанию) стеком. В отличие от большинства других оболочек, PowerShell в расположение концепция позволяет расположение стеки в местах удержания файловой системы, а также другие типы местоположений , как , например , Active Directory организационные единицы / группы, SQL Server базы данных / таблицы / объекты, Internet Information Server приложений / сайтов / виртуальные каталоги.
4DOS и Take Command Console записывают историю текущих каталогов и позволяют пользователю переключаться на каталог в истории, используя всплывающее окно.
Неявное изменение каталога [ править ]
Имя каталога может использоваться непосредственно как команда, которая неявно изменяет текущее местоположение каталога.
Это следует отличать от несвязанной функции загрузочного диска, поддерживаемой Concurrent DOS , Multiuser DOS , System Manager и REAL / 32 , где буква диска L: будет неявно обновлена, чтобы указывать на путь загрузки загруженного приложения, тем самым позволяя приложениям относятся к файлам, находящимся в их загрузочном каталоге под стандартной буквой диска, а не с абсолютным путем. [40]
Автокоррекция [ править ]
Если командная строка не соответствует команде или аргументам напрямую, проверка орфографии может автоматически исправить типичные опечатки (например, чувствительность к регистру , пропущенные буквы). Есть два подхода к этому; оболочка может либо предложить возможные исправления при вызове команды, либо это может произойти раньше, как часть завершения или автозаполнения.
В Tcsh и ЗШ оболочка имеет дополнительную проверку орфографии / коррекцию, по команде вызова.
Fish выполняет автокоррекцию после завершения и самовнушения. Таким образом, эта функция не мешает набирать всю команду и нажимать Enter, тогда как широкое использование табуляции и клавиш со стрелкой вправо делает оболочку в основном нечувствительной к регистру.
Модуль PSReadLine [29] PowerShell (который поставляется с версией 5.0) предоставляет возможность указать CommandValidationHandler ScriptBlock, который запускается перед отправкой команды. Это позволяет настраивать исправления часто ошибочно набираемых команд и проверять их перед фактическим запуском команды.
Интегрированная среда [ править ]
Интегрированная среда - это интеграция интерфейса командной строки с редакторами (обычно с несколькими документами), справочной системой и, возможно, отладкой и другими инструментами.
Take Command Console (TCC) поставляется с интегрированной средой с панелью командной строки, проводником файлов, редактором, пакетным отладчиком и многим другим. [41]
PowerShell ISE включает панель командной строки с поддержкой встроенной командной строки, копирования и вставки, нескольких редакторов документов, отладки на уровне исходного кода , панели справки, панели проводника команд и интерфейса сценариев, позволяющего сценариям / модулям управлять меню, надстройками и т. Д. ISE (меню, окна, ярлыки, дополнения) настраиваются с помощью скриптов. [42]
Фрагменты [ править ]
Фрагменты - это небольшие участки повторно используемого кода сценария. Фрагменты часто используются для сохранения нажатий клавиш или для помощи пользователю с общими шаблонами сценариев. Многие текстовые редакторы поддерживают фрагменты для написания сценариев либо как встроенные функции, либо через плагины.
PowerShell поддерживает фрагменты в интегрированной среде сценариев (ISE) с помощью Ctrl+ J. [43]
Запрос значения [ изменить ]
Сценарий оболочки может запрашивать у интерактивного пользователя значение.
Селектор меню / опций [ править ]
Сценарий оболочки может предоставить интерактивному пользователю список вариантов.
Индикатор выполнения [ править ]
Сценарий оболочки (или задание) может сообщать интерактивному пользователю о ходе выполнения длительных задач.
Системы Unix / Linux могут предлагать поддержку других инструментов с использованием индикаторов прогресса из скриптов или в виде отдельных команд, таких как программа "pv". [44] Однако это не встроенные функции оболочек.
PowerShell имеет встроенную команду и функции API (которые будут использоваться при создании команд) для написания / обновления индикатора выполнения. Сообщения индикатора выполнения отправляются отдельно от обычного вывода команды, и индикатор выполнения всегда отображается на конечной интерактивной пользовательской консоли, независимо от того, исходят ли сообщения о ходе выполнения из интерактивного сценария, из фонового задания или из удаленного сеанса.
Интерактивный стол [ править ]
Выходные данные выполнения команды могут отображаться в таблице / сетке, которые можно интерактивно сортировать и фильтровать и / или иным образом манипулировать после завершения выполнения команды.
Командлет PowerShell Out-GridView отображает данные в интерактивном окне с интерактивной сортировкой и фильтрацией.
Цветные списки каталогов [ править ]
Процессоры командной строки JP Software обеспечивают настраиваемую пользователем окраску имен файлов и каталогов в списках каталогов на основе их расширения и / или атрибутов с помощью необязательной переменной среды% COLORDIR%.
Для оболочек Unix / Linux это функция команды ls и терминала.
Выделение текста [ править ]
Процессоры командной строки в DOS Plus , Multiuser DOS , REAL / 32 и во всех версиях DR-DOS поддерживают ряд дополнительных переменных среды для определения управляющих последовательностей, позволяющих управлять выделением, реверсией или раскрашиванием текста для отображения или печати в таких командах, как ТИП . Все упомянутые процессоры командной строки поддерживают % $ ON% и % $ OFF% . Если определено, эти последовательности будут выдаваться до и после имен файлов. Типичная последовательность для% $ ON% будет \ 033 [1m в сочетании с ANSI.SYS , \ 033p для терминала ASCII или \ 016 для IBM или ESC / Pпринтер. Аналогично, типичные последовательности для% $ OFF% будут \ 033 [0m, \ 033q, \ 024 соответственно. Переменные % $ HEADER% и % $ FOOTER% поддерживаются только COMMAND.COM в DR-DOS 7.02 и выше для определения последовательностей, генерируемых до и после текстовых блоков, для управления выделением текста, разбивкой на страницы или другими параметрами форматирования.
Для оболочек Unix / Linux это особенность терминала.
Подсветка синтаксиса [ править ]
Независимый проект предлагает подсветку синтаксиса как дополнение к Z Shell (zsh). [45] Однако это не часть оболочки.
PowerShell обеспечивает настраиваемую подсветку синтаксиса в командной строке с помощью модуля PSReadLine [29] . Этот модуль можно использовать с PowerShell v3.0 +, и он включен в v5.0. Кроме того, он загружается по умолчанию в хост командной строки "powershell.exe" в версии 5.0. PowerShell ISE также включает подсветку синтаксиса в командной строке, а также на панели скриптов. [42] Take Command Console (TCC) предлагает подсветку синтаксиса в интегрированной среде.
Контекстно-зависимая справка [ править ]
4DOS, 4OS2, 4NT / Take Command Console и PowerShell (в PowerShell ISE) просматривают контекстно-зависимую справочную информацию при F1нажатии.
Zsh предоставляет различные формы настраиваемой контекстно-зависимой справки как часть своего виджета run-help , команды _complete_help или в качестве дополнения параметров для некоторых команд.
Построитель команд [ править ]
Конструктор команд - это управляемый диалог, который помогает пользователю заполнить команду. PowerShell имеет построитель команд, который доступен в PowerShell ISE или может отображаться отдельно с помощью командлета Show-Command . [46]
Возможности программирования [ править ]
Оболочка | Функции | Обработка исключений | Поиск и замена при замене переменных | Арифметика | Плавающая запятая | Библиотека математических функций | Линейные массивы или списки | Ассоциативные массивы | Лямбда-функции | функция eval | Генерация псевдослучайных чисел | Байт-код |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Оболочка Борна 1977 года выпуска | Нет | Да (через ловушку ) | Нет | Нет | Нет | Нет | Нет | Нет | Нет | да | Нет | Нет |
Текущая версия оболочки Bourne | Да с SVR2 | Да (через ловушку ) | Нет | Да [№ 8] | Нет | Нет | Нет | Нет | Нет | да | Нет | Нет |
Оболочка POSIX | да | Да (через ловушку ) | Нет | да | Нет | Нет | Нет | Нет | Нет | да | Нет | Нет |
bash (версия 4.0) | да | Да (через ловушку ) | Да (через синтаксис $ {// }) | да | Нет | Нет | да | да | Нет | да | Да ( $ RANDOM ) | Нет |
csh | Нет | Нет | Да (через синтаксис $ var: s /// ) | да | Нет | Нет | да | Нет | Нет | да | Нет | Нет |
tcsh | Нет | Нет | Да (через синтаксис $ var: s /// ) | да | Нет | Нет | да | Нет | Нет | да | Нет | Нет |
Оболочка Hamilton C | да | Нет | Да (через синтаксис $ var: s /// ) | да | да | да | да | Нет | Нет | да | Да (случайная полезность) | Нет |
Scsh | да | ? | Да (через строковые функции и регулярные выражения) | ? | ? | ? | да | ? | да | да | Да (случайное целое, случайное действительное) | Да (компилятор - это виртуальная машина Scheme48 , через scshvm ) |
КШ (ksh93t +) | да | Да (через ловушку ) | Да (с помощью синтаксиса $ {// } и встроенных команд) | да | да | да | да | да | Нет | да | Да ( $ RANDOM ) | Да (компилятор называется shcomp ) |
pdksh | да | Да (через ловушку ) | Нет | да | Нет | Нет | да | Нет | Нет | да | Да ( $ RANDOM ) | Нет |
zsh | да | да | Да (с помощью синтаксиса $ {: s // } и $ {// }) | да | да | Да ( модуль zsh / mathfunc ) | да | да | Нет | да | Да ( $ RANDOM ) | Да (встроенная команда zcompile ) |
пепел | да | Да (через ловушку ) | Нет | Да (с 1992 г.) [47] | Нет | Нет | Нет | Нет | Нет | да | Нет | Нет |
КПК | Нет | ? | Нет | Нет | ? | ? | Нет | Нет | Нет | Нет | Нет | Нет |
COMMAND.COM | Нет | Частичный (только автоматический отказ (через COMMAND / F (или / N в некоторых версиях DR-DOS)) | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
OS / 2 CMD.EXE | Нет | Нет | Нет | ? | Нет | Нет | ? | Нет | Нет | Нет | Нет | Нет |
Windows CMD.EXE | Да ( с помощью ЗВОНИТЕ: этикетки ) | Нет | Да (через SET% varname : синтаксис выражения ) | Да (через SET / A ) [48] | Нет | Нет | Да (через SET [49] ) | Нет | Нет | Нет | Да ( % случайный% ) | Нет |
4ДОС | да | Да (через команду ON , дополнительный автоматический отказ через 4DOS / F ) | Да (через функцию % @ Replace [...] ) | Да (через SET / A ) | ? | ? | Да (через диапазоны, списки включения, списки @ файлов и команду FOR ) | Нет | Нет | да | Да ( функция % @ Random [...] ) | Да (через команду BATCOMP ) |
4OS2 | ? | ? | ? | ? | ? | ? | ? | ? | Нет | да | Да ( функция % @ Random [...] ) | ? |
TCC (ранее 4NT) | да | Да (через ВКЛ и различные команды ... МОНИТОР ) | Да (через функцию % @ Replace [...] ) | Да (через SET / A ) | ? | ? | Да (через диапазоны, списки включения, списки @ файлов и команду FOR ) | ? | Нет | да | Да ( функция % @ Random [...] ) | Да (через команду BATCOMP ) |
PowerShell | да | Да (попробуй-поймай-наконец) | Да ( оператор -replace ) | да | да | [Математика] [50] | да | да | да | да | да | Да, автомат |
rc | да | да | Нет | ? | ? | ? | да | ? | Нет | да | Нет | Нет |
BeanShell | да | да | ? | да | ? | ? | да | да | Нет | да | да | да |
VMS DCL | да | да | Нет | да | Нет | да, для скомпилированных программ | да | Нет | Нет | Нет | Нет | Нет |
рыбы | да | Да (через ловушку ) | Да, с помощью встроенной строковой команды [51] | да | да | да | да | Нет | Нет | да | Да ( случайный ) | Нет |
Обработка строк и сопоставление имен файлов [ править ]
Оболочка | Обработка строк | Чередование ( расширение скобок ) | Сопоставление с образцом ( встроенные регулярные выражения ) | Сопоставление с образцом ( подстановка имени файла ) | Подстановочные квалификаторы (создание имени файла на основе атрибутов файла) | Рекурсивная глобализация (создание файлов из подкаталогов любого уровня) |
---|---|---|---|---|---|---|
Оболочка Борна 1977 года выпуска | ? | Нет | Нет | Да ( * , ? , [...] ) | Нет | Нет |
Последняя версия оболочки Bourne | Частичное (удаление префикса и суффикса при расширении переменной) | Нет | Нет | Да ( * , ? , [...] ) | Нет | Нет |
Оболочка POSIX | Частичное (удаление префикса и суффикса при расширении переменной) | Нет | Нет | Да ( * , ? , [...] ) | Нет | Нет |
bash (версия 4.0) | Частичное (удаление префикса и суффикса при расширении переменной) | да | да | Да ( * , ? , [...] , {... }) | Нет | Да ( ** / ... ) |
csh | Да (: s и другие операторы редактирования) | да | Нет | да | Нет | Нет |
tcsh | Да (: s и другие операторы редактирования) | да | да | да | Нет | Нет |
Оболочка Hamilton C | Да (: s и другие операторы редактирования + substr, strlen, strindex, printf, reverse, upper, lower, concat и другие встроенные функции) | да | Нет | да | Нет | Да (через неопределенный каталог "..." подстановочный знак [52] ) |
Scsh | ? | ? | да | да | Нет | Нет |
КШ (ksh93t +) | Частичный (префикс, удаление суффикса и замена строки в раскрытии переменной) | Да [53] | да | Да ( * , ? , [...] ) | Нет | Да (с установленным -G , без символических ссылок) |
pdksh | ? | Да [53] | Нет | да | Нет | Нет |
zsh | Да (посредством обработки переменных: например, извлечение подстроки, различные преобразования посредством расширения параметров) | да | да | Да ( * , ? , [...] , расширенная подстановка [54] ) | да | Да ( ** / ... или *** / ... для перехода по символическим ссылкам) |
пепел | ? | ? | Нет | да | Нет | Нет |
КПК | Нет | Нет | Нет | Нет | Нет | Нет |
COMMAND.COM | Нет | Нет | Нет | Да ( * , ? ) | Нет | Нет |
OS / 2 CMD.EXE | Нет | Нет | Нет | Да ( * , ? ) | Частично (только в команде DIR / A: ... ) | Нет |
Windows CMD.EXE | Частично (только через FOR / F и SET / A ) | Нет | Нет [nb 17] | Да ( * , ? ) | Частично (только в команде DIR / A: ... ) | Да (с помощью команды FOR / R или, если возможно, косвенно с помощью параметра / S subdir) |
4ДОС | Да (с помощью функций переменных % @ ... [] , расширенной обработки переменных среды, различных строковых команд и FOR / F и SET / A ) | Нет | Нет | Да ( * , ? , [...] , расширенные символы подстановки , всплывающая команда SELECT ) | Да (через / A: ... атрибут и параметры описания / I "..." и / [S ...] размер, / [T ...] время, / [D ...] дату и / [! ...] диапазоны исключений файлов) | Да (через команду FOR / R или косвенно через команду GLOBAL или, если доступно, параметр / S subdir) |
4OS2 | ? | Нет | Нет | ? | ? | ? |
TCC (ранее 4NT) | Да (с помощью функций переменных % @ ... [] , расширенной обработки переменных среды, различных строковых команд и FOR / F и SET / A ) | Нет | да | Да ( * , ? , [...] , расширенные символы подстановки , всплывающая команда SELECT ) | Да (через / A: ... атрибут и параметры описания / I "..." и / [S ...] размер, / [T ...] время, / [D ...] дату, / [ O ...] владелец и / [! ...] диапазоны исключений файла) | Да (через команду FOR / R или косвенно через команду GLOBAL или, если доступно, параметр / S subdir) |
PowerShell | Да (Concat / Substring / Insert / Remove / Replace, ToLower / ToUpper, Trim / TrimStart / TrimEnd, Compare, Contains / StartsWith / EndWith, Format, IndexOf / LastIndexOf, Pad / PadLeft / PadRight, Split / Join, функции регулярных выражений и другие строковые функции .NET) | Нет | Да (полная поддержка регулярных выражений) [nb 18] | Да ( * , ? , [...] ) | ? | ? |
rc | ? | ? | Нет | да | Нет | Нет |
BeanShell | ? | ? | да | ? | ? | ? |
VMS DCL | да | Нет | Нет | да | Нет | Да (через [SUBDIR ...] ) |
рыбы | Да (встроенная строковая функция) | да | да ( с помощью встроенной строки матч и строка замены функции) | Да ( * , ? , {... }) | Нет | Да ( ** / ... ) |
Межпроцессное взаимодействие [ править ]
Оболочка | Трубы | Подстановка команд | Замена процесса | Подоболочки | TCP / UDP- соединения как потоки | Сложение нажатий клавиш |
---|---|---|---|---|---|---|
Оболочка Борна | байт одновременно | да | Нет | да | Нет | N / A [№ 19] |
Оболочка POSIX | байт одновременно | да | Нет | да | Нет | N / A [№ 19] |
bash (версия 4.0) | байт одновременно | да | Да (если система поддерживает / dev / fd / ⟨n⟩ или именованные каналы) | да | Да (только клиент) | N / A [№ 19] |
csh | байт одновременно | да | Нет | да | Нет | N / A [№ 19] |
tcsh | байт одновременно | да | Нет | да | Нет | N / A [№ 19] |
Оболочка Hamilton C | байт одновременно | да | Нет | да | Нет | ? |
Scsh | текст | ? | ? | ? | да | N / A [№ 19] |
КШ (ksh93t +) | байты (могут содержать сериализованные объекты, если используется print -C ) одновременно | Да ( $ (...) и $ {<space> ...; }) | Да (если система поддерживает / dev / fd / ⟨n⟩ ) | да | Да (и поддержка SCTP, только клиент) | N / A [№ 19] |
pdksh | байт одновременно | да | Нет | да | Нет | N / A [№ 19] |
zsh | байт одновременно | да | да | да | Да (клиент и сервер, но только TCP) | N / A [№ 19] |
пепел | байт одновременно | да | Нет | да | Нет | N / A [№ 19] |
КПК | Нет | Нет | Нет | Нет | Нет | Нет |
COMMAND.COM | текстовые последовательные временные файлы | Нет | Нет | Частично (только в режиме многозадачности DR-DOS через COMMAND.COM / T ) | Нет | Нет |
OS / 2 CMD.EXE | одновременный текст | Нет | Нет | ? | Нет | Нет |
Windows CMD.EXE | одновременный текст | Да (через команду FOR / F ) | Нет | Да (обратная кавычка: ` в FOR / F usebackq ) | Нет | Нет |
4ДОС | текстовые последовательные временные файлы | Да (через команду FOR / F ) | ? | Частично (через % @ EXECSTR [] и % @ EXEC [] или через SET / M , ESET / M и UNSET / M и % @ MASTER [...] ) | Нет | Да (через KEYSTACK и KSTACK ) [55] |
4OS2 | одновременный текст | ? | ? | ? | Нет | Да (через KEYSTACK ) |
TCC (ранее 4NT) | одновременный текст | Да (через команду FOR / F ) | ? | Частично (через % @ EXECSTR [] и % @ EXEC [] ) | Да (через FTP , TFTP , FTPS , SFTP , HTTP , HTTPS и IFTP , только клиент) | Да (через KEYSTACK ) |
PowerShell | одновременные объекты | да | Нет | да | да | ? |
rc | одновременный текст | да | Да (через: <{cmd }, если система поддерживает / dev / fd / ⟨n⟩ ) | да | Нет | ? |
BeanShell | не поддерживается | ? | ? | ? | да | ? |
VMS DCL | текст (через команду PIPE ) | да | Нет | Да (возрождение) | Да (только TCP-сервер) | Нет |
рыбы | байт одновременно | Да ( ... ) | Нет (битый) [56] | Нет | Нет | N / A [№ 19] |
Сложение нажатий клавиш [ править ]
В ожидании того, что данное запущенное приложение может принимать в качестве ввода с клавиатуры, пользователь оболочки дает команду оболочке сгенерировать последовательность смоделированныхнажатия клавиш, которые приложение интерпретирует как ввод с клавиатуры от интерактивного пользователя. Посредством отправки последовательностей нажатий клавиш пользователь может указать приложению выполнять действия, которые невозможно выполнить с помощью перенаправления ввода или которые в противном случае потребовали бы интерактивного пользователя. Например, если приложение воздействует на нажатия клавиш, которые не могут быть перенаправлены, различает обычные и расширенные клавиши, очищает очередь перед принятием нового ввода при запуске или при определенных условиях, или потому что оно вообще не считывает стандартный ввод. Стек нажатий клавиш обычно также предоставляет средства для управления временем отправки имитированных ключей или задержки новых ключей до тех пор, пока очередь не будет очищена и т. Д.Это также позволяет имитировать клавиши, которых нет на клавиатуре (потому что соответствующие клавиши не существуют физически или потому что используется другая раскладка клавиатуры) и, следовательно, их невозможно ввести пользователем.
Функции безопасности [ править ]
Этот раздел содержит информацию неясной или сомнительной важности или актуальности для предмета статьи . июль 2014 г. ) (Узнайте, как и когда удалить этот шаблон сообщения ) ( |
Оболочка | Безопасное (пароль) запрос | Зашифрованные переменные / параметры | Пароли к файлам / каталогам | Выполнить разрешение | Блокировка ненадежных скриптов | Ограниченное подмножество оболочки | Подмножество безопасных данных |
---|---|---|---|---|---|---|---|
Оболочка Борна | через stty [nb 20] | Нет | ? | N / A [nb 21] | Нет | да | Нет |
Оболочка POSIX | через stty [nb 20] | Нет | ? | N / A [nb 21] | Нет | Нет | Нет |
bash (версия 4.0) | читает -s | Нет | ? | N / A [nb 21] | Нет | да | Нет |
csh | через stty [nb 20] | Нет | ? | N / A [nb 21] | Нет | да | Нет |
tcsh | через stty [nb 20] | Нет | ? | N / A [nb 21] | Нет | да | Нет |
Оболочка Hamilton C | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
Scsh | через stty [nb 20] | Нет | ? | N / A [nb 21] | Нет | Нет | Нет |
КШ (ksh93t +) | через stty [nb 20] | Нет | ? | N / A [nb 21] | Нет | да | Нет |
pdksh | через stty [nb 20] | Нет | ? | N / A [nb 21] | Нет | да | Нет |
zsh | читает -s | Нет | ? | N / A [nb 21] | Нет | да | Нет |
пепел | через stty [nb 20] | Нет | ? | N / A [nb 21] | Нет | да | Нет |
КПК | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
COMMAND.COM | Частично (только в DR-DOS, запрашивает пароль, если файл / каталог защищен) | Нет | Частично (только в DR-DOS через \ dirname; dirpwd \ filename; синтаксис filepwd ) [nb 22] | Частично (только в DR-DOS, если файлы защищены паролем для чтения и / или разрешения на выполнение) [nb 23] | Нет | Нет | Нет |
OS / 2 CMD.EXE | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
Windows CMD.EXE | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
4ДОС | Да (через INPUT / P или INKEY / P ) [nb 24] | Нет | Частично (только в DR-DOS через \ dirname ;; dirpwd \ filename ;; синтаксис filepwd ) [nb 22] | Частично (только в DR-DOS, если файлы защищены паролем для чтения и / или разрешения на выполнение) [nb 23] | Нет | Нет | Нет |
4OS2 | ? | Нет | Нет | Нет | Нет | Нет | Нет |
TCC (ранее 4NT) | Да (через INPUT / P , INKEY / P или QUERYBOX / P ) [nb 24] | Нет | Нет | Нет | Нет | Нет | Нет |
PowerShell | Да [nb 25] | да | Нет | Нет [nb 26] | Да [57] | Да [nb 27] | Да [58] |
rc | через stty [nb 20] | Нет | ? | N / A [nb 21] | Нет | Да [59] | Нет |
BeanShell | ? | ? | ? | ? | ? | ? | ? |
VMS DCL | да | Нет | Нет | да | Нет | да | Нет |
рыбы | читает -s | Нет | ? | N / A [nb 21] | Нет | Да (через fish -l ) | ? |
Безопасная подсказка [ править ]
Некоторым сценариям оболочки необходимо запрашивать у пользователя конфиденциальную информацию, такую как пароли , частные цифровые ключи, PIN-коды или другую конфиденциальную информацию. Чувствительный ввод не должен отражаться обратно на экран / устройство ввода, где он может быть получен посторонними лицами. Следует также избегать представления конфиденциальной информации в незашифрованном виде в памяти, так как это может позволить скомпрометировать информацию, например, через файлы подкачки, дампы ядра и т. Д. [60]
Оболочки bash, zsh и PowerShell предлагают это как особую функцию. [61] [62] Оболочки, которые не предлагают эту особенность, могут по-прежнему отключать эхо с помощью других средств. Оболочки, выполняемые в операционной системе Unix / Linux, могут использовать внешнюю команду stty для включения / выключения эха вводимых символов. [63] В дополнение к тому, что символы не повторяются, опция PowerShell -AsSecureString также шифрует ввод посимвольно во время процесса ввода, гарантируя, что строка никогда не будет представлена в незашифрованном виде в памяти, где она может быть скомпрометирована посредством дампов памяти, сканирования , транскрипция и т. д.
Зашифрованные переменные / параметры [ править ]
Если сценарий считывает пароль в переменную среды, он находится в памяти в виде обычного текста и, таким образом, может быть доступен через дамп ядра. Он также находится в среде процесса, который может быть доступен другим процессам, запущенным сценарием. [64]
PowerShell может работать с зашифрованными строковыми переменными / параметрами. [65] Зашифрованные переменные гарантируют, что значения не будут непреднамеренно раскрыты, например, посредством транскриптов, эхо, файлов журнала, памяти или аварийных дампов или даже злонамеренного сканирования памяти. PowerShell также поддерживает сохранение таких зашифрованных строк в текстовых файлах, защищенных ключом, принадлежащим текущему пользователю.
Разрешение на выполнение [ править ]
Некоторые операционные системы определяют разрешение на выполнение, которое может быть предоставлено пользователям / группам для файла.
В системах Unix разрешение на выполнение контролирует доступ к вызову файла как программы и применяется как к исполняемым файлам, так и к сценариям. Поскольку разрешение применяется в загрузчике программы, ни вызывающая программа, ни вызываемая программа не обязаны требовать разрешения на выполнение - это также относится к оболочкам и другим программам-интерпретаторам. Такое поведение определяется библиотекой POSIX C, которая используется для взаимодействия с ядром. POSIX указывает, что exec
семейство функций должно завершиться ошибкой с EACCESS (в разрешении отказано), если файл запрещает разрешение на выполнение (см. - Справочник по системным интерфейсам, Единая спецификация UNIX , Выпуск 7 из The Open Group ).
Разрешение на выполнение применяется только тогда, когда сценарий запускается напрямую. Если сценарий вызывается в качестве аргумента интерпретирующей оболочки, он будет выполняться независимо от того, имеет ли пользователь разрешение на выполнение для этого сценария.
Хотя Windows также указывает разрешение на выполнение , ни одна из специфичных для Windows оболочек не блокирует выполнение сценария, если разрешение не было предоставлено.
Блокировка ненадежных скриптов [ править ]
Некоторые оболочки блокируют сценарии, признанные ненадежными, или отказываются запускать сценарии, если это требуется системным администратором.
Ограничение на выполнение скрипта [ править ]
PowerShell можно настроить так, чтобы блокировать выполнение сценариев, которые были помечены как полученные из неизвестного / ненадежного источника (например, из Интернета). [66] Интернет-приложения, такие как веб-браузеры, клиенты обмена мгновенными сообщениями, программы чтения почты и т. Д., Маркируют файлы, загруженные из Интернета, с помощью зоны происхождения в альтернативном потоке данных, который понимается PowerShell.
Ограничение подписанного сценария [ править ]
Политики подписи сценариев / кода могут использоваться для обеспечения того, чтобы операционный отдел выполнял только утвержденные сценарии / код, которые были проверены и подписаны доверенным рецензентом / утверждающим. Режимы подписи также защищают от несанкционированного доступа. Если сценарий отправляется от поставщика клиенту, клиент может использовать подпись, чтобы гарантировать, что сценарий не был изменен во время передачи и что сценарий действительно исходит от поставщика, а не злоумышленника, пытающегося с помощью социальной инженерии запустить оператора. сценарий атаки.
PowerShell можно настроить так, чтобы разрешить выполнение сценариев, заблокированных в противном случае (например, исходящих из ненадежной зоны), если сценарий был подписан цифровой подписью с использованием доверенного цифрового сертификата. [67] [68] [69]
Многоуровневые политики выполнения [ править ]
Компания может захотеть применить ограничение исполнения в глобальном масштабе внутри компании и / или в определенных частях компании. Он может захотеть установить политику для запуска подписанных сценариев, но разрешить определенным подразделениям компании устанавливать свои собственные политики для зональных ограничений.
PowerShell позволяет применять политики блокировки сценариев на нескольких уровнях: локальный компьютер, текущий пользователь и т. Д. Политика более высокого уровня переопределяет политику более низкого уровня, например, если политика определена для локального компьютера, она действует для всех пользователей локальной машины. , только если он не определен на более высоком уровне, он может быть определен для более низких уровней.
Ограниченное подмножество оболочки [ править ]
Несколько оболочек могут быть запущены или настроены для запуска в режиме, в котором пользователю доступен только ограниченный набор команд и действий. Хотя это и не является границей безопасности (блокируется команда, обращающаяся к ресурсу, а не к ресурсу), тем не менее, она обычно используется для ограничения действий пользователей перед входом в систему.
Ограниченный режим является частью спецификации POSIX для оболочек, и большинство оболочек Linux / Unix поддерживают такой режим, в котором несколько встроенных команд отключены и могут быть вызваны только внешние команды из определенного каталога. [70] [71]
PowerShell поддерживает ограниченные режимы через файлы конфигурации сеанса или конфигурации сеанса. Файл конфигурации сеанса может определять видимые (доступные) командлеты, псевдонимы, функции, поставщиков путей и многое другое. [72]
Подмножество безопасных данных [ править ]
Сценарии, вызывающие другие сценарии, могут представлять угрозу безопасности, поскольку они потенциально могут выполнять внешний код в контексте пользователя, запустившего исходный сценарий. Сценарии обычно разрабатываются таким образом, чтобы включать исключительно сценарии из известных безопасных мест; но в некоторых случаях, например, когда пользователю предлагается способ настройки среды или загрузки локализованных сообщений, в сценарий может потребоваться включить другие сценарии / файлы. [73] Одним из способов устранения этого риска является предоставление оболочкой безопасного подмножества команд, которые могут быть выполнены включенным скриптом.
Разделы данных PowerShell могут содержать константы и выражения с использованием ограниченного набора операторов и команд. [74] Разделы данных PowerShell используются, например, когда необходимо прочитать локализованные строки из внешнего источника, обеспечивая при этом защиту от нежелательных побочных эффектов.
Заметки [ править ]
- ^ С середины 1990-х гг.
- ^ если скомпилирован с -DACCT.
- ^ Компонент MS-DOS и Windows - покрывается действующей лицензией для MS-DOS или Microsoft Windows.
- ^ Компонент OS / 2 - покрывается действующей лицензией на OS / 2.
- ^ Включены расширения команд или "CMD / X".
- ^ Компонент Windows - покрывается действующей лицензией для Microsoft Windows.
- ^ Microsoft PowerShell устанавливается по умолчанию в Windows 7 и новее. Это дополнительная загрузка для пользователей Windows Vista или Windows XP.
- ^ a b c Текущие версии от Йорга Шиллинга.
- ^ Alt-Shift-8 или Alt- * расширится до полного списка совпадающих имен файлов.
- ^ Доступно черезнадстройку DOSKEY .
- ^ Доступно в DR-DOS через HISTORY .
- ^ Альтернативно также доступно черезнадстройку DOSKEY .
- ^ Альтернативно также доступно в DR-DOS через HISTORY .
- ^ TCC имеет специальные функции подсказки для Да, Нет, Отмена, Закрыть, Повторить.
- ^ Б с обрабатываемым рио , GNU Readline , editline или ВРЛАМИ .
- ^ Раковина рыбы представляет собой интерактивную поверхность ввода / вывода на основе символов.
- ^ Недоступно как встроенная оболочка. Внешняя команда FINDSTR / R доступна в большинстве выпусков Windows.
- ^ PowerShell использует полныймеханизм регулярных выражений .NET , который включает в себя именованные захваты, просмотр вперед / назад с нулевой шириной, жадный / не жадный, классы символов, подсчет уровней и т. Д.
- ^ a b c d e f g h i j k xautomation и xdotool могут использоваться для генерации нажатий клавиш в системе X Window ; или программа может быть запущена в псевдотерминале, чтобы иметь возможность управлять им (как в случае с инструментом expect ).
- ^ a b c d e f g h i Оболочка может использовать утилиту stty для подавления вывода введенных символов на экран. Для этого требуется несколько шагов: 1. чтение текущего состояния эха, 2. выключение эха, 3. чтение ввода, 4. переключение состояния эха обратно в исходное состояние.
- ^ a b c d e f g h i j k l Разрешение на выполнение обеспечивается отдельной программой, загрузчиком программы, путем отказа в вызове интерпретатора (возможно, оболочки), указанного в хэшбэге сценария . Интерпретатор не требует разрешения на выполнение, если вызывается напрямую, как это сделал бы загрузчик программы, с файлом в качестве аргумента; для этого требуется только разрешение на чтение, как и передача файла по конвейеру в качестве входных данных для интерпретатора, и в этом случае интерпретатор не может видеть разрешение на выполнение.
- ^ a b В DR-DOS разделителем паролей для паролей файлов и каталогов является точка с запятой. Это также поддерживается в 4DOS до тех пор, пока команда не поддерживает списки включения. В 4DOS разделитель паролей должен быть удвоен для всех команд, поддерживающих списки включения, чтобы отличать пароли от списков включения. Команды, не поддерживающие списки включения, принимают обе формы. DR-DOS 7.02 и выше также могут принимать двойную точку с запятой, так что двойная точка с запятой работает как в COMMAND.COM, так и в 4DOS независимо от выполняемой команды.
- ^ a b DR-DOS поддерживает пароли файлов для чтения / записи / удаления и, при необходимости, разрешения на выполнение. По умолчанию файлы не защищены, но систему можно настроить так, чтобы для чтения пакетных сценариев, например, требовался пароль.
- ^ a b INPUT / P и INKEY / P отображает звездочки для каждого набранного символа.
- ^ Read-Host -AsSecureString считывает строку символов с устройства ввода в зашифрованную строку, по одному символу за раз, таким образом гарантируя, что в памяти нет изображения открытого текста, которое можно было бы извлечь из памяти сканирования или из аварийных дампов, дампы памяти, файлы подкачки, файлы журналов и т.п.
- ^ Файлы сценария PowerShell (файлы .ps1 ) по умолчанию связаны с редактором Блокнота, а не с механизмом выполнения PowerShell. При вызове файла .ps1 вместо выполнения сценария запускается Блокнот.
- ^ Сценарии запуска для каждого компьютера / пользователя могут импортировать модули и предоставлять подмножество команд / функций, доступных в модулях.
Ссылки [ править ]
- ^ Зависит от платформы версия основана на исторической UNIX V7 оригинальный исходный код доступен из Geoff Collyer
- ^ Историческая версия UNIX V7 доступна по лицензии в стиле BSD через Unix Heritage Society и другие организации.
- ^ Зависит от платформы версия основана на исходном коде SVr4 / Solaris доступен от Йорга Шиллинга
- ^ Феррелл, Джон, «Глава 2. Оболочка по умолчанию» , FreeBSD Quickstart Guide for Linux Users , The FreeBSD Documentation Project , получено 24 июля 2015 г.
- ^ "SchilliX-ON / SchilliX-ON Mercurial / [b1d9a2] / usr / src / cmd / sh" . Sourceforge.net . Проверено 2 июля 2015 .
- ^ IEEE и Открытая группа (2008). Стандарт IEEE 1003.1 для информационных технологий - интерфейс переносимой операционной системы (POSIX): оболочка и служебные программы, выпуск 7 .
- ^ Как часть IEEE Std.1003.2-1992 (POSIX.2); интегрирован в IEEE Std.1003.1 с редакцией 2001 года.
- ^ Фокс, Брайан (1989-06-07). Тауэр младший, Леонард Х. (ред.). "Bash находится в стадии бета-версии!" . Группа новостей : gnu.announce . Usenet: [email protected] . Проверено 28 октября 2010 .
- ^ Купер, Мендель, «Глава 37.3.2. Bash, версия 4.2», Advanced Bash-Scripting Guide , The Linux Documentation Project , получено 30 апреля 2015 г., "Bash теперь поддерживает экранирование Unicode \ u и \ U".
- ^ Грир, Кен (1983-10-03). «Оболочка C с распознаванием / завершением команд и имен файлов» . Группа новостей : net.sources . Проверено 29 декабря 2010 .
- ^ Сассмен, Ann (1988-12-26). "Hamilton C Shell ускоряет разработку приложений OS / 2" (PDF) . PC Week (1988-12-26 - 1989-01-02): 37 . Проверено 22 ноября 2010 .
- ^ Gomes, Рон (1983-06-09). «Расписание конференции USENIX в Торонто (предварительно)» . Группа новостей : net.usenix . Проверено 29 декабря 2010 .
- ^ Харрис, Гай (1983-10-10). "csh вопрос" . Группа новостей : net.flame . Проверено 29 декабря 2010 .
- ^ ksh93 (1) справочная страница
- ^ a b Оболочка по умолчанию в OpenBSD - ksh (pdksh).
- ^ Редактор командной строки zsh полностью настраивается и может поддерживать мышь различными способами, например, с помощью mouse.zsh Стефана Чазеласа .
- ^ zsh (1) справочная страница и подстраницы
- ^ zshbuiltins (1) справочная страница
- ^ "# 782228 - busybox sh не поддерживает многобайтовые символы при обработке строк - журналы отчетов об ошибках Debian" . Bugs.debian.org. 2015-04-09 . Проверено 2 июля 2015 .
- ^ "Словарь HP OpenVMS DCL" . Архивировано из оригинала на 2007-03-25 . Проверено 23 марта 2009 .
- ^ Ларабель, Майкл (2021-03-23). «Авторские права на Plan 9 переданы в Фонд, выпущен лицензионный код MIT» . Фороникс . Проверено 28 марта 2021 .
- ^ Liljencrantz, Axel (2005-05-17). «Рыба - дружественная интерактивная оболочка» . Проверено 8 апреля 2013 .
- ^ Соллер, Джереми (2015-11-15). "d79c8f511573fb7710abc63b4236a40022914520" . Проверено 3 августа 2019 .
- ^ "[Z Shell] Система завершения" . Zsh.sourceforge.net . Проверено 24 февраля 2015 .
- ^ например, через стороннюю организацию, такую как zsh-autosuggestions
- ^ zsh не поддерживает подсветку синтаксиса, но существует сторонний проект, который предлагает эту возможность в качестве надстройки: zsh-syntax-highlighting
- ^ Пол, Матиас Р. (1997-10-02) [1997-09-29]. «Caldera OpenDOS 7.01 / 7.02 Update Alpha 3 IBMBIO.COM - README.TXT и BOOT.TXT - Краткое описание того, как загружается OpenDOS» . Архивировано из оригинала на 2003-10-04 . Проверено 29 марта 2009 . [1]
- ^ a b c d e «Интегрированная среда сценариев Windows PowerShell (ISE)» . Microsoft Technet . Проверено 12 сентября 2015 .
- ^ a b c d Ширк, Джейсон (2018-02-15). «PSReadLine: реализация строки чтения для PowerShell, вдохновленная bash» - через GitHub.
- ^ "Архивная копия" . Архивировано из оригинального 17 сентября 2016 года . Проверено 8 сентября 2016 года .CS1 maint: заархивированная копия как заголовок ( ссылка )
- ^ Push-Location (с псевдонимом
pushd
) и Pop-Location (с псевдонимомpopd
) позволяетзагружать и извлекать из стеков местоположенийнесколько типов местоположений (каталоги файловых систем, организационные единицы Active Directory , узлы реестра Windows и т. Д.). - ^ Функция $ host.ui.PromptForChoice позволяет использовать подсказку в стиле меню для выбора. Приглашение работает как из фоновых заданий, так и из удаленных сеансов, отображая приглашение меню на консоли управляющего сеанса.
- ^ Write-Progress Командлет записывает индикаторкоторый может указывать процент, оставшиеся секундыт.д. прогресс бар Сообщения работы фоновых заданий или удаленных сессий в дополнении к интерактивным скриптам, то есть индикатор отображается на консоли контролирующей сессии, не как часть обычного выпуска.
- ^ Show-Command Командлет проверяет определение команды и открывает интерактивные окна с именем поля ввода для каждого параметра / переключателя
- ^ a b "рыба: Документация" . Завершение вкладки раздела . Проверено 10 января 2016 .
- ^ "set_color - установить цвет терминала - документация fish-shell 3.1.2" . fishshell.com . Проверено 23 февраля 2021 .
- ^ "abbr - управление сокращениями рыб - документация fish-shell 3.1.2" . fishshell.com . Проверено 23 февраля 2021 .
- ^ "zsh: 20. Система завершения" . Zsh.sourceforge.net. 2013-03-06 . Проверено 18 августа 2013 .
- ^ «Используйте PowerShell для создания обязательных параметров» . Blogs.technet.com . Проверено 24 февраля 2015 .
- ^ Параллельная DOS 386 - Многопользовательская / многозадачная операционная система - Руководство пользователя (PDF) . Цифровые исследования .
- ^ "# 1 Замена командной строки Windows - Команды командной строки Windows CMD" . Программное обеспечение JP . Проверено 18 августа 2013 .
- ^ a b «Интегрированная среда сценариев Windows PowerShell 3.0 (ISE)» . Technet.microsoft.com . Проверено 18 августа 2013 .
- ^ «PowerShell v3 ISE и модели сценариев ISE изменения и улучшения» . Журнал PowerShell. 2011-09-28 . Проверено 18 августа 2013 .
- ^ "pv (1): отслеживать прохождение данных через канал - справочная страница Linux" . Linux.die.net . Проверено 24 февраля 2015 .
- ^ "zsh-users / zsh-syntax-highlighting: Fish shell как подсветка синтаксиса для Zsh" . GitHub . Проверено 18 августа 2013 .
- ^ "Show-Command" . Technet.microsoft.com . Проверено 18 августа 2013 .
- ^ "Варианты ясеня" . Архивировано из оригинала на 2010-03-10 . Проверено 15 декабря 2014 .
- ^ «Установить - Переменная среды - Windows CMD» . SS64.com . Проверено 24 февраля 2015 .
- ^ "Как перебрать массив в пакетном режиме?" . Переполнение стека . Проверено 24 февраля 2015 .
- ^ Класс .NET System.Math определяет математические функции, которые можно использовать с помощью ярлыка [Math] , например, [Math] :: Sin дляфункции sinus . [2]
- ^ "строка - управление строками - документация fish-shell 3.1.2" . fishshell.com . Проверено 23 февраля 2021 .
- ^ Справочник по языку оболочки Hamilton C: Подстановочные знаки и сопоставление с образцом , Hamilton Laboratories , получено 29 октября 2013 г. ,
...
Неопределенный каталог: сопоставление любого количества уровней справочника - от нуля или более - независимо от того, что требуется для сопоставления остальной части образца .
- ^ a b Зеебах, Питер (2008). Начало создания сценариев переносимой оболочки: от новичка до профессионала . Голос эксперта в открытом доступе. Апресс. п. 149. ISBN. 9781430210436. Проверено 17 сентября 2014 .
Расширение скобок доступно в ksh93, pdksh, bash и zsh.
- ^ Zsh предлагает множество вариантов подстановки .
- ^ Братья, Хардин; Роусон, Том ; Конн, Рекс К .; Пол, Маттиас Р .; Краситель, Чарльз Э .; Георгиев, Лучезар И. (27.02.2002). Онлайн-справка по 4DOS 8.00 .
- ^ "найти способ сделать` psub --fifo` безопасным из тупика · Проблема # 1040 · fish-shell / fish-shell " . GitHub .
- ^ «О политиках выполнения» . Technet.microsoft.com . Проверено 24 февраля 2015 .
- ^ «О разделах данных» . Technet.microsoft.com . Проверено 24 февраля 2015 .
- ^ "Ubuntu Manpage: rc - shell" . Manpages.ubuntu.com. 2003-07-17 . Проверено 24 февраля 2015 .
- ^ Провос, Нильс. «Шифрование виртуальной памяти» . Центр интеграции информационных технологий Мичиганского университета . Проверено 20 декабря 2012 .
- ^ "bash - GNU Bourne-Again SHell" .
читает -s Тихий режим.
Если ввод идет с терминала, символы не отображаются.
- ^ «Использование командлета Read-Host» .
Добавив параметр -assecurestring, вы можете замаскировать данные, введенные в командной строке.
- ^ "Команда Linux / Unix: stty" . Linux.about.com . Проверено 24 февраля 2015 .
- ^ Альбинг, Карл; Vossen, JP; Ньюхэм, Кэмерон (2007). «3.8. Запрос пароля». Поваренная книга Баша (1-е изд.). Севастополь, Калифорния: O'Reilly Media . п. 65 . ISBN 978-0-596-52678-8.
Имейте в виду, что если вы считываете пароль в переменную среды, он находится в памяти в виде обычного текста и, следовательно, может быть доступен через дамп ядра или / proc / core. Он также находится в технологической среде, которая может быть доступна другим процессам.
- ^ Холмс, Ли. «SecureStrings в PowerShell» . Проверено 18 декабря 2012 .
- ^ «Безопасность PowerShell :: Безопасность ОС Windows :: Статьи и учебные пособия» . WindowSecurity.com . Проверено 18 августа 2013 .
- ^ «Подписание сценариев PowerShell» . Hanselman.com . Проверено 24 декабря 2015 .
- ^ «Привет, сценарист! Как я могу подписать сценарии Windows PowerShell с помощью корпоративной PKI Windows? (Часть 2 из 2) - Привет, сценарист! Блог - Домашняя страница сайта - Блоги TechNet» . Blogs.technet.com . Проверено 18 августа 2013 .
- ^ «Запуск сценариев Windows PowerShell» . Technet.microsoft.com . Проверено 18 августа 2013 .
- ^ "man sh - shell, стандартный интерпретатор командного языка / posix" (на французском). Pwet.fr. Архивировано из оригинала на 2014-12-21 . Проверено 18 августа 2013 .
- ^ «Справочное руководство Bash: ограниченная оболочка» . Gnu.org. 2010-12-28 . Проверено 18 августа 2013 .
- ^ "New-PSSessionConfigurationFile" . Technet.microsoft.com . Проверено 18 августа 2013 .
- ^ Альбинг, Карл; Vossen, JP; Ньюхэм, Кэмерон (2007). Поваренная книга Баша (1-е изд.). Севастополь, Калифорния, США: O'Reilly Media . ISBN 978-0-596-52678-8.
[...] вряд ли можно назвать пассивным списком настроенных переменных. Он может запускать другие команды (например, cat) и использовать операторы if для изменения своего выбора. Он даже заканчивается повторением сообщения. Будьте осторожны, когда что-то исходите, так как это широко открытая дверь в ваш сценарий.
- ^ «О разделах данных» . Microsoft . Проверено 18 декабря 2012 .
Внешние ссылки [ править ]
- Журнал Linux: Bash против Vista PowerShell
- IEEE. 1003.1 Стандарт информационных технологий - интерфейс переносимой операционной системы (POSIX): оболочка и служебные программы, выпуск 7