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

редактировать

Bash, оболочка по умолчанию во многих дистрибутивах GNU / Linux.

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

Содержание
  • 1 Общие характеристики
  • 2 Интерактивные функции
    • 2.1 Фоновое выполнение
    • 2.2 Завершение
    • 2.3 История команд
    • 2.4 Запрос обязательного аргумента
    • 2.5 Автоматические предложения
    • 2.6 История каталогов, стек или аналогичные функции
    • 2.7 Неявное изменение каталога
    • 2.8 Автокоррекция
    • 2.9 Интегрированная среда
    • 2.10 Фрагменты
    • 2.11 Подсказка значений
    • 2.12 Селектор меню / параметров
    • 2.13 Индикатор выполнения
    • 2.14 Интерактивная таблица
    • 2.15 Цветные списки каталогов
    • 2.16 Выделение текста
    • 2.17 Выделение синтаксиса
    • 2.18 Контекстно-зависимая помощь
    • 2.19 Построитель команд
  • 3 Функции программирования
  • 4 Обработка строк и сопоставление имен файлов
  • 5 Межпроцессное взаимодействие
    • 5.1 Нажатие клавиш st acking
  • 6 Функции безопасности
    • 6.1 Безопасн ая подсказка
    • 6.2 Зашифрованные переменные параметры /
    • 6.3 Разрешение на выполнение
    • 6.4 Блокировка ненадежных сценариев
      • 6.4.1 Ограничение выполнения исходной сценарии
      • 6.4.2 Ограничение подписанного сценария
      • 6.4.3 Многоуровневые выполнения политики
    • 6.5 Ограниченное подмножество оболочки
    • 6.6 Безопасное подмножество данных
  • 7 Примечания
  • 8 Ссылки
  • 9 Внешние ссылки
Общие характеристики
ОболочкаОбычная средаОбычно вызываемаяПредставленнаяНезависимая от платформы Оболочка входа по умолчанию вОболочка сценария по умолчанию вЛицензияДоступность исходного кодаПользовательский интерфейсПоддержка мышиПоддержка Unicode Поддержка ISO 8601 Перенаправление консолиПоток перенаправление Возможность настройкиСценарии запуска / выключенияПакетные скриптыВедение жу рналадоступен как статически связанный, независимый исполняемый файл с одним файлом
оболочка Thompson UNIX sh1971Н / ДUNIX UNIX Н / ДДаНа основе текста CLI НетНетН / ДДаН / ДН / ДНЕТНЕТНЕТНЕТ
Оболочка Борна Версия 1977 года7-е изд.. UNIX sh1977Да7-е изд. UNIX 7-е изд. UNIX,СобственныйДаТекстовый CLI НетНетН / ДДаДа (произвольный fds )Да (через переменные и параметры)Да (.profile)Да (функция Unix)НетДа
Оболочка Bourne текущая версияРазличная UNIX sh1977ДаSunOS-5.x, FreeBSD (пользователь без полномочий root)SunOS-5.xCDDL ДаТекстовый CLI НетДаН / ДДаДа (произвольно fds )Да (через переменные и параметры)Да (.profile)Да (функция Unix)ДаДа
POSIX оболочкаPOSIX sh1992Н / ДН / ДPOSIX Н / ДН / ДТекстовый интерфейс командной строкиНетДа, если используется настроенной локальюН / ДДаДа (произв ольно fds)Да (с помощью чисел и опций)Не указано (.p rofile, приведенного в качестве примера)Да (функция Unix)ДаН / Д
bash (v4)POSIX bash, sh1989ДаGNU, Linux (по умолчанию для root), macOS 10.3–10.14GNU, Linux, Haiku, macOS 10.3–10.14GPL ДаТекстовый интерфейс командной строкиНетДаДа (встроенный printf)ДаДа (произвольный fds)Да (через переменные и параметры)Да (/ etc / profile,.bash_profile,.bash_login,.profile,. bashrc)Да (функция Unix)ДаДа
csh POSIX csh1978ДаSunOS ?BSD ДаТекстовый интерфейс системыНетНет?ДаДа (stdin, stdout, stdout + stderr)Да (через переменные и параметры)Да (~ /.cshrc, ~ /.login, ~ /.logout)Да (функция Unix)ДаДа s
tcsh POSIX tcsh, csh1983ДаFreeBSD (по умолчанию для root), ранее Mac OS X ?BSD ДаТекстовый интерфейс строкиНетДа?ДаДа (стандартный ввод, stdout, stdout + stderr)Да (через переменные и параметры)Да (/etc/csh.cshrc, /etc/csh.login, ~ /.tcshrc, ~ /.cshrc, ~ /.history, ~ /.login, ~ /.cshdirs)Да (особенность Unix)ДаДа
Оболочка H amilton C Win32, OS / 2csh1988Да (версия OS / 2 больше не поддерживается)НеобязательноНеобязательноСобственный НетТекстовый интерфейс командной строкиНетНетДа (оператор -t отметки времени)ДаДа (stdin, stdout, stdout + stderr)Да (через переменные и параметры)Да (через login.csh, startup.csh и logout.csh)Да (параметр строки)ДаДа
Scsh POSIX scsh1994Да??стиль BSD Да?????Да????Да
ksh (ksh93t +)POSIX ksh1983ДаAIX, HP-UX OpenSolaris Common Public Лицензия ДаТекстовый интерфейс командной строкиНетДаДа (встроенный printf с % (% F) T)ДаДа (произвольный fds)Да (через п еременные и параметры)Да (профиль системы и пользователя и kshrc)Да (функция Unix)ДаДа
pdksh POSIX ksh, sh1989?ДаOpenBSD OpenBSD Public Domain ДаТекстовый интерфейс командной строкиНетНетН / ДДаДа (произвольные fds)Да (с помощью чисел и опций)Да ( / etc / profile,.profile)Да (функция Unix)ДаДа
zsh POSIX zsh1990ДаDeepin, GoboLinux, Grml, macOS 10.15+Grml, macOS 10.15+MIT -styleДаТекстовый интерфейс командной строкичерез дополнительный кодДаДа (различные внутренние функции, включая данные, с использованием формата % F strftime и опции -i для встроенной функции fc)ДаДа (произвольные fds)Да (через переменные, параметры, функции, стили и т. Д.)Да ( система и пользователя zshenv, zprofile, zshrc, zlogin, zlogout)Да (функция Unix)ДаДа
ash POSIX sh1989ДаMinix, Системы на базе BusyBox NetBSD, Minix, Системы на основе BusyBox BSD -стильДаТекстовый интерфейс командной строкиНетЧастично (для BusyBox, поддерживается при редактировании системы строки, но не при обработке строк)Н / ДДаДа (произвольный fds)Да (через переменные и параметры)Да (/ etc / profile,.profile)Да (функция Unix)ДаДа
CCP CP / M, MP / M (CCP)1976 (1974)НетCP / M (без входа в систему), MP / M CP / M, MP / M Freeware (изначально проприетарный)Да (изначально закрытый)Текстовый CLI НетНетНетНе тНетНетДа (автоматически через $$$. SUB)Частично (только через внешний Команду SUBMIT для обновлений $$$. SUB)НетДа
COMMAND.COM DOS КОМАНДА 1980Нет (доступны сторонние реализации, не привязанные к конкретному поставщику или версии DOS)DOS, Windows 95, 98, SE, ME DOS, Windows 95, 98, SE, ME зависит от поставщика, например MS -EULA или BSD / GPL (бесплатные клоны)Нет (кроме OpenDOS, DR-DOS, PTS / DOS и FreeDOS)Текстовый интерфейс командной строкиНетНетНет (кроме DR-DOS)Да (через COMMAND con: или CTTY con :)Да (stdin, stdout)Да ( через параметры запуска и переменные среды DR-DOS также поддерживает DIR / C / R пользовательская команда переключения по умолчанию)Да (автоматически \ AUTOEXEC.BAT для основной оболочки или явно через / P, / P: имя файла. 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 НетТекстовый интерфейс командной строкиНетНетНетНетДа (стандартный ввод, stdout, stderr)?Частично (только через параметр запуска / K)Да (через команду CALL или запуск / C и / K параметры)НетДа
Windows CMD.EXE Win32 CMD 1993НетWindows NT, 2000, XP, Server 2003, VistaWindows NT, 2000, XP, Server 2003, VistaMS -EULA НетТекстовый интерфейс командной строкиНетЧастично (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, stdo ut + stderr)Да (через файл 4OS2.INI, параметры запуска, переменные среды, команда SETDOS)Да (автоматически через файлы 4START.CMD / 4START.BTM, а также файлы 4EXIT.CMD / 4EXIT.BTM или явно через / K параметр startup.cmd)Да (с помощью команды CALL или параметры запуска / C и / K)Да?
TCC (ранее 4NT)Win32 TCC1993Нет (не привязан к конкретной версиим 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 OpenVMS Автоматически для входа в систему / интерактивного процесса1977?ДаVMSVMSСобственный, входит в состав VMSтолько по специальной лицензииТекст - на основе CLIс DECwindows / MotifДаДа, по крайней мере, до стандарта 1988 годаДаДа (sys $ input, sys $ output assignment)Да (через символы, логические имена и параметры)Да (SYS $ MANAGER: SYLOGIN.COM и пользовательский LOGIN.COM)ДаДаНет
PowerShell .NET PowerShell2006ДаWindows 10, 8, Server 2008, 7, Vista, XPWindows 10, 8, Server 2008, 7MIT -стильДаГрафический интерфейс командной строкиДаДаДаНетДаДа (с помощью параметра и параметров)Да (% USERPROFILE% \ Documents \ WindowsPowerShell \ Microsoft.PowerShell_profile.ps1)Да (функция PowerShell)ДаНет
rc Plan 9, POSIX RC1989ДаPlan 9, Версия 10 Unix Plan 9, Версия 10 Unix Общественная лицензия Lucent ???Да??Да????Да
BeanShell Java ?2005Да??LGPL ???Да??Да????Нет
рыба POSIX рыба2005ДаGhostBSD ?GPL ДаТекстовый интерфейс командной строки?Да??Да (произвольный fds)Да (через переменные среды и через веб-интерфейс через fish_config)Да (/etc/fish/config.fish и ~ /.config / fish / config.fish)Да (функция Unix)Да (~ /.config / fish / fish_history *)?
IonRedox, Linux ion2015ДаРедокс Редокс MIT ДаТекстовый интерфейс командной строки?ДаДа?Да (произвольный fds)Да (соответствует спецификации XDG Base Directory)Да (~ /.config / ion / initrc)ДаДа (~ /.local / share / ion / history)Частично (но его можно построить как единое целое)
ОболочкаОбычная средаОбычно вызываетсяВведеноНезависимо от платформы Оболочка входа по умолчанию вОболочка сценария по умолчанию вЛицензияДоступность исходного кодаПользовательский интерфейсПоддержка мышиПоддержка Unicode ISO 8601 поддерживаетПеренаправление консолиStream перенаправление настройка ВозможностьСкрипты запуска / завершенияПакетные скриптыВедение журналадоступно как статически связанный, исполняемый файл одним файлом
Интерактивные функции
ОболочкаКоманда. имя. завершениеПуть. завершениеКоманда. аргумент. завершениеПодстановочный знак. завершениеКоманда. историяОбязательный. аргумент. запросАвтоматические. предложенияЦветной. каталог. спискиТекст. выделениеСинтаксис. выделениеИстория каталога, стек или аналогичные функцииНеявное изменение каталога..АвтокоррекцияИнтегрированная среда.ФрагментыЗначение. запросМеню / параметры. приглашениеХод выполнения. индикаторКонтекст. чувствительный. справкаКоманда. построитель
оболочка Thompson НетНетНетНетНетНетНет??НетНетНетНетНетНетНетНетНетНетНет
Борн оболочка Версия 1977 годаНетНетНетНетНетНетНет??НетНетНетНетНетНетДаНетНетНетНет
Оболочка Борна текущая версияНетДаНетНетДаНетНетДаДаНетДа (CDPATH, pushd, popd, dirs), CDPATH с SVr4НетНетНетНетДаНетНетНетНет
POSIX оболочкаНетНетНетНетДаНетНетДаДаНетДа (CDPATH)НетНетНетНетДаНетНетНетНет
bash (v4.0)ДаДапри оценкеДаДаНетНетДаДаНетДа (CDPATH, pushd, popd)необязательноНетНетНетДаДаНетНетНет
csh ДаДаНетНетДаНетНетДаДаНетДа (cdpath, pushd, popd)необязательноНетНетНетДаНетНетНетНет
tcsh ДаДапри определенииНетДаНетНетДаДаНетДа (cdpath, pushd, popd)необязательноДаНетНетДаНетНетНетНет
Оболочка Гамильтон C ДаДаНетДаДаНетНет??НетДа (cdpath, pushd, popd)НетНетНетНетДа НетНетНетНет
Scsh НетНетНетНетНетНетНет??НетНетНетНетНетНетДаНетНетНетНет
ksh (ksh93t +)Да (расширяемый)Да (расширяемый)НетНетДаНетНетДаДаНетДа (встроенный cdpath, pushd, popd реализован как функции)НетНетНетНетДаДаНетНетНет
pdksh ДаДаНетНетДаНетНетДаДаНетНетНетНетНетНетДаДаНетНетНет
zsh ДаДапри выбореДаДаНетДа (с помощью прогнозируемого или определяемого пользователя)ДаДаСтороннее расширениеДанеобязательноДаНетпри определении (как виджеты ZLE)ДаДаНетДаНет
ясень НетНетНетНетДаНетНетДаДаНетНетНетНетНетНетДаДаНетНетНет
CCP НетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНетНет
COMMAND.COM НетНетНе тНетNoНетНетНетНет (только в DR-DOS через % $ ON%, % $ OFF%, % $ HEADER%, % $ FOOTER% )НетНетНетНетНет (только одношаговый с COMMAND / Y)НетНетНет (только через внешнюю команду ВЫБОР, в DR-DOS также через внутренние команды SWITCH / DRSWITCH)НетНетНет
ОС / 2. CMD.EXE ДаДаНетНетДаНетНетНетНетНетНетНетНетНетНетНетНетНетНетНет
Windows. CMD.EXE частичночастичноНетНетДа (F8)НетНетНетНетНетДа (PUSHD, POPD)НетНетНетНетДа (через SET / P)НетНетНетНет
4DOS ДаДаДаДаДаНетНетДаНетНет(через всплывающее окно, расширенный поиск в каталоге, CDPATH, PUSHD, POPD, DIRHISTORY, DIRS, CDD, CD - команды и функция % @ DIRSTACK)ДаНетДаНетДа (через INPUT, INKEY и команды ESET)Да (через @SELE Функция CT, и косвенно через комбинацию команд INKEY, INPUT, SWITCH)НетДаНет (кроме ОПЦИЯ для директив файла INI)
4OS2 ????ДаНетНетДаНетНетДаДаНет?Нет??НетДаНет
TCC (ранее 4NT)ДаДаДаДаДаНетНетДаНетДа(через всплывающее окно, расширенный поиск в каталоге, CDPATH, PUSHD, POPD, DIRHISTORY, DIRS, CDD, CD - команды и % @ DIRSTACK функция)ДаНетДаНетДа (с помощью команд INPUT, INKEY, ESET и SET / P)Да (с помощью функций @SELECT и косвенно с помощью комбинаций команд INKEY, INPUT, SWITCH)НетДаНет
PowerShell ДаДаДаДаДа (F8)ДаДа, в ISE??Да, в модуле ISE и PSReadLine (входит в v5.0)Да; несколько стеков; несколько типов местоположенияНетДа, в модуле PSReadLineДа, в ISEДа, в ISEДаДаДаДа, во всплывающем окне ISE
rc ДаДаНетНетДаНетНет??НетНетНетНетНетНет?НетНетНетНет
BeanShell ДаДаНетНетНетНетНет??НетНетНетНетНетНетНетНетНетНетНет
VMS DCL Схема минимальной уникальностиНетНетНетДаДаНет??НетНетНетНетНетНетДаНетНетНетНет
рыба ДаДапри оценке или анализе на страницах руководстваДаДаНетДа??ДаДаДаДаДаНетДа(с помощью команды fish_config)НетНетНет
ОболочкаКоманда. имя. завершениеПуть. завершениеКоманда. аргумент. завершениеПодстановочный знак. завершениеИстория команды.Обязательный. аргумент. запросАвтоматические. предложенияЦветные. каталоги. спискиТекст. выделениеСинтаксис. выделениеИстория каталогов, стек или аналогичные функцииНеявное. изменение каталога.АвтокоррекцияИнтегрированная. средаФрагментыЗначение. подсказкаМеню / параметры. подсказкаИндикатор выполнения.Контекст. чувствительный. справкаКоманда. построитель

Фоновое в ы полнение

позволяет оболочке запускать команду в фоновом режиме. Оболочки POSIX и другие оболочки Unix допускают выполнение в фоновом режиме с символами и в конце команды, а в PowerShell вы можете использовать Start-Processили Start-Jobкоманды.

Завершение

Завершение командной строки в Bash.

Выполнение выполняет пользователю вводить команду в строке строки, ища и предлагая совпадающие слова для неполных. Завершение обычно запрашивает нажатием клавиш завершения (часто Tab ↹).

Завершение имени команды - это завершение имени команды. В большинстве оболочек команда может быть программой в пути к команде (обычно $ PATH), встроенной функцией, функцией или псевдонимом.

Завершение пути - это завершение пути к файлу, относительное или абсолютное.

Завершение подстановочного знака - это обобщение пути, где выражение соответствует любому количеству файлов с использованием любого поддерживаемого синтаксиса для сопоставления файлов.

Завершение переменных - это завершение имени переменной (переменная среда или переменная оболочки). Bash, zsh и fish имеют завершение для всех имен чисел. В PowerShell есть дополнения для имен параметров, имен чисел и - из пользовательских функций.

Завершение аргументов команды - это завершение аргументов конкретной команды. Существуют два типа аргументов: с именем и позиционные: именованные аргументы, называемые называемые имена, идентифицируются по имени или букве, предшествующей значению, тогда как позиционные аргументы состоят только из значений. Некоторые оболочки позволяют завершать аргументы, но немногие пакеты завершение значений.

Баш, зш и рыба выполняет завершение имени через определение, внешнее по отношению к команде, распространяемое завершение в отдельном файле определения. Для завершения имени / значения команды эти оболочки предполагают значение пути / имени файла, если для команды не определено. Завершение может быть настроено так, чтобы предлагать завершение путем вызова функции оболочки. Оболочка Fish дополнительно поддерживает синтаксический анализ страниц руководства для извлечения информации о параметрах, которая может быть полезной для улучшения дополнений / предложений. В PowerShell все типы команд (командлеты, функции, файлы сценариев) по своей сути предоставляют данные об именах, типах и диапазонах / списках допустимых значений для каждого аргумента. Эти метаданные значения используются PowerShell для автоматической поддержки аргумента и завершения для встроенных команд / функций, пользовательских команд / функций, а также для файлов сценариев. Отдельные командлеты также определяют динамическое завершение аргументов, когда выполняется вычисление динамически в работающей системе.

История команд

Пользователь оболочки может построить, что он / она набирает что-то похожее на то, что пользователь вводил раньше. Если оболочка поддерживает историю команд, пользователь может вызвать предыдущую команду в строковом редакторе и отредактировать ее перед повторным вводом.

Оболочки, поддерживающие завершение, также могут иметь возможность напрямую завершить команду из истории команд, учитывая частичную / начальную часть предыдущей команды.

Большинство современных оболочек истории команд. Оболочки, которые включают в себя историю команд в целом, а также сборник команд из истории, а не просто вызов команд из истории. В дополнение к обычному тексту команды PowerShell также записывает время начала и окончания выполнения и статуса выполнения в историю команд.

Подсказка обязательного аргумента

Обязательные аргументы / параметры - это аргументы / параметры, которым должно быть присвоено значение при вызове команды, функции или сценария. Оболочка, которая может определить перед вызовом, что отсутствуют обязательные значения, может помочь интерактивному пользователю, запрашивая эти значения вместо того, чтобы команда сбой. Наличие оболочки для пропущенных значений позволит автору сценария, команды или функции пометить параметр как обязательный вместо создания кода сценария, который либо запрашивает отсутствующие значения (после определения, что он выполняется в интерактивном режиме), либо завершается ошибкой с сообщением.

PowerShell позволяет командам, функции и скриптам определять аргументы / параметры как обязательные. Перед вызовом оболочка определяет, есть какие-либо обязательные аргументы / параметры, которые не были связаны, и запрашивает у пользователя значение (я) перед фактическим вызовом.

Автоматические предложения

Завершение командной строки в PowerShell ISE.

С автоматическими предложениями оболочка отслеживает, когда интерактивный пользователь вводит текст, отображает контекстно-зависимые предложения, не прерывая набора текста вместо пользователя, явно запрашивающего завершение.

Интегрированная среда сценариев PowerShell использует обнаруживаемые метаданные для предоставления «intellisense» - т. е. Предлагает, которые автоматически вводят данные, в дополнение к тому, когда явно запрашивает списки результатов пользователя, например, Вкладка

История каталогов, стек или аналогичные функции

Оболочка может записывать местоположения, которые пользователь использовать в качестве текущих местоположений, и быстрое переключение на любое местоположение / каталог в истории.

Одно из применений стека каталогов zsh - запись истории каталогов. В частности, для этой цели используются параметр AUTO_PUSHD и расширенные аргументы и завершение cd.

PowerShell позволяет использовать несколько именованных стеков. Местоположения (каталоги) могут быть вставлены / извлечены из текущего стека или именованного стека. Любой стек может стать текущим (по умолчанию) стеком. В отличие от других оболочек, концепция местоположения PowerShell позволяет стекам местоположений хранить местоположение файловой системы, а также другие типы местоположений, например, Active Directory организационные единицы / группы, SQL Server базы данных / таблицы / объекты, Internet Information Server приложения / сайты / виртуальные каталоги.

4DOS и Take Command Console записывают историю текущих каталогов и позволяют пользователю переключаться на каталог в истории, используя всплывающее окно.

Неявное изменение каталога

Имя каталога может использоваться непосредственно в качестве команды, которая неявно изменяет текущее местоположение каталога.

Это следует отличать от несвязанной функции загрузочного диска, поддерживаемой Concurrent DOS, Multiuser DOS, System Manager и REAL / 32, где буква диска L: будет неявно обновлена, чтобы указывать на путь загрузки загруженного приложения, тем самым позволяя приложениям вместо этого ссылаться на файлы, находящиеся в их каталоге загрузки, под стандартной буквой диска. по абсолютному пути.

Автокоррекция

Если командная строка не соответствует команде или аргументам напрямую, проверка орфографии может автоматически исправить типичные опечатки (например, чувствительность к регистру, пропущенные буквы). Есть два подхода к этому; оболочка может либо предложить возможные исправления при вызове команды, либо это может произойти раньше как часть завершения или автозаполнения.

Оболочки tcsh и zsh имеют дополнительную функцию проверки / исправления орфографии при вызове команды.

Fish выполняет автокоррекцию после завершения и самовнушения. Таким образом, эта функция не мешает при вводе всей команды и нажатии клавиши Enter, тогда как широкое использование вкладок и клавиш со стрелкой вправо делает оболочку в основном нечувствительной к регистру.

Модуль PSReadLine PowerShell (который поставляется с версией 5.0) отправляет возможность указать CommandValidationHandler ScriptBlock, который запускается передкой команды. Это позволяет настраивать исправление ошибочных команд и Проверка перед фактическим запуском команды.

Интегрированная среда

Интегрированная среда представляет собой интеграцию международной строки с редакторами (обычно несколько документов), справочной системой и, возможно, отладкой и другие инструменты.

Take Command Console (TCC) поставляется с интегрированной средой с панелью системы файлов, редактором, пакетным отладчиком и т. Д.

PowerShell ISE включает панель командной строки с поддержкой встроенных команд, копирование-вставка, несколько редакторов, панель справки, панель проводника команд и интерфейс сценариев, позволяющий сценариям / модулям управлять меню, надстройками и т. д. ISE (меню, окна, ярлыки, надстройки) настраиваются с помощью сценариев.

Фрагменты

Фрагменты - это небольшие повторно используемого кода скрипта. Фрагменты часто используются для употребий клавиш или для помощи с общими шаблонами сценариев. Многие текстовые редакторы фрагменты для написания сценариев либо встроенные функции, либо через плагины.

PowerShell поддерживает фрагменты интегрированной среды среды среды обитания (ISE), используя Ctrl+J.

Запрос

Сценарий оболочки может запрашивать у интерактивного пользователя.

Селектор меню / опций

Сценарий оболочки может предоставить интерактивному пользователю список вариантов.

Индикатор выполнения

Сценарий оболочки (или задание) может сообщить интерактивному пользователю ходе о выполнении длительных задач.

Системы Unix / Linux могут предлагать другие инструменты, использующие индикаторы выполнения из сценариев или как команды, такие как программа «pv». Однако это не встроенные функции оболочек.

PowerShell - встроенная команда и функции API (первая версия при создании команд) для написания / обновления индикатора выполнения. Сообщения индикатора выполнения отправляются отдельно от обычного вывода команды, и индикатор выполнения всегда отображается на конечной интерактивной пользовательской консоли независимо от того, исходят ли сообщения о ходе выполнения из интерактивного сценария, из фонового задания или из удаленного сеанса.

Интерактивная таблица

Выходные данные выполнить команду можно настроить в таблице / сетке, которые можно интерактивно сортировать и фильтровать и / или иным образом манипулировать после выполнения команды.

PowerShell Командлет Out-GridView отображает данные в интерактивном окне с интерактивной сортировкой и фильтрацией.

Цветные списки справочников

Процессоры системы строки JP Программное обеспечение включает настраиваемую систему раскраску имен файлов и каталогов в списках каталогов на основе их расширения файлов и / или атрибутов с помощью необязательной среды% COLORDIR%.

Для оболочек Unix / Linux это функция команды ls и терминала.

Подсветка текста

Процессоры системы строки в DOS Plus, Многопользовательский DOS, REAL / 32 и во всех версиях DR-DOS поддерживает ряд дополнительных окружений для определения управляющих последовательностей, позволяющих управлять выделением, реверсией или раскрашиванием текста для отображения или печати таких командх, как TYPE. Все упомянутые процессоры системы строки % $ 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). Однако это не часть оболочки.

PowerShell обеспечивает настраиваемую подсветку синтаксиса в командной строке через модуль PSReadLine. Этот модуль можно использовать с PowerShell v3.0 +, он включен в v5.0. Кроме того, он загружается по умолчанию в строке "powershell.exe" в версии 5.0. PowerShell ISE также включает подсветку синтаксиса в командной строке, а также на панели скриптов. Take Command Console (TCC) предлагает подсветку синтаксиса в интегрированной среде.

Контекстно-зависимая справка

4DOS, 4OS2, 4NT / Take Command Console и PowerShell (в PowerShell ISE) просматривают контекстно-зависимую справочную информацию при нажатии F1.

Zsh предоставляет различные формы настраиваемой контекстно-зависимой справки как часть своего виджета run-help, команды _complete_help или в завершении опций для некоторых команд.

Построитель команд

Конструктор команд - это управляемый диалог, который помогает пользователю заполнить команду. PowerShell имеет построитель команд, который может использовать PowerShell ISE отдельно с помощью командлета Show-Command.

Функции программирования
ShellФункции Обработка исключений Поиск и замена при подстановках чиселАрифметика Плавающая точка Библиотека математических функцийЛинейные массивы или списки Ассоциативные массивы Лямбда-функции функция eval Генерация псевдослучайного числа Байт-код
Оболочка Борна версия 1977 годаНетДа (через ловушку)НетНетНетНетНетНетНетДаНетНет
Оболочка Борна текущая версияДа, начиная с SVR2Да (через ловушку)НетДаНетНетНетНетНетДаНетНет
POSIX shellДаДа (через ловушку)НетЙе sНетНетНетНетНетДаНетНет
bash (v4.0)ДаДа (через ловушку)Да (через $ {//} синтаксис)ДаНетНетДаДаНетДаДа ($ RANDOM)Нет
csh НетНетДа (с помощью синтаксиса $ var: s ///)ДаНетНетДаНетНетДаНетНет
tcsh НетНетДа (посредством синтаксиса $ var: s ///)ДаНетНетДаНетНетДаНетНет
Оболочка Гамильтон C ДаНетДа (с помощью синтаксиса $ var: s ///)ДаДаДаДаНетНетДаДа (случайная утилита)Нет
Scsh Да?Да (через строковые фу нкции и d регулярные выражения)???Да?ДаДаДа (случайное целое число, случайное действительное число)Да (компилятор - это виртуальная машина Схема48, через scshvm)
ksh (ksh93t +)ДаДа (через ловушку)Да (через $ {//} синтаксис и встроенные команды)ДаДаДаДаДаНетДаДа ($ RANDOM)Да (компилятор называется shcomp)
pdksh ДаДа (через ловушку)НетДаНетНетДаНетНетДаДа ($ RANDOM)Нет
zsh ДаДаДа (с помощью синтаксиса $ {: s //} и $ {//})ДаДаДа (модуль zsh / mathfunc)ДаДаНетДаДа ($ RANDOM)Да (встроенная команда zco mpile)
ясень ДаДа (через ловушку)НетДа (с 1992 г.)НетНетНетНетНетДаНетНет
CCP Нет?НетНет??НетНетНетНетНетНет
COMMAND.COM НетЧастично (только автоматический отказ (через COMMAND / F (или / N в некоторых версиях DR-DOS))НетНетНетНетНетНетНетНетНетНет
OS / 2 CMD.EXE НетНетНет?НетНет?НетНетНетНетНет
Windows CMD.EXE Да (через CALL: label)НетДа (через SET% varname: синтаксис выражения)Да (через SET / A)НетНетДа (через SET)НетНетНетДа (% случайный%)Нет
4DOS ДаДа ( через команду ON, дополнительный автоматический отказ через 4DOS / F)Да (через функцию % @ Replace [...])Да (через SET / A)??Да (через диапазоны, списки включения, списки @file и команда FOR)НетНетДаДа (% @ Random [...])Да (с помощью команды BATCOMP)
4OS2 ????????НетДаДа (% @ Random [...])?
TCC (ранее 4NT)ДаДа (с помощью различных ON и команд... MONITOR)Да (через функцию % @ Replace [...])Да (через SET / A)??Да (через диапазоны, включая списки, @ списки файлов и команда FOR)?НетДаДа (% @ Функция случайного [...])Да (через команда BATCOMP)
PowerShell ДаДа (пример-поймать-окончательно)Да (- оператор замены)ДаДа[Математический] классДаДаДаДаДаДа, автоматически
rc ДаДаНет???Да?НетДаНетНет
BeanShell ДаДа?Да??ДаДаНетДаДаДа
VMS DCL ДаДаНетДаНетда, для скомпилированных программДаНетНетНетНетНет
рыба ДаДа (через ловушку)НетДаДаДаДаНетНетДаДа (случайный)Нет
Обработка строк и сопоставление файлов
ОболочкаОбработка строкЧередование (Раскрытие скобок )Сопоставление с образцом (регулярные выражения встроено)Сопоставление с образцом (имя_файла подстановка )Подстановочные квалификаторы ( создание файла из подкаталогового уровня)Рекурсивная подстановка файлов (создание файлов из подкаталогового уровня)
Оболочка Борна Версия 1977 года?НетДа (*, ?, [...])НетНет
Оболочка Борна последняя версияЧастичная (удаление префиксов и суффиксов при раскрытии чисел)НетНетДа (*, ?, [...])НетНет
POSIX оболочкаЧастичная (удаление префиксов и суффиксов при раскрытии чисел)НетНетДа (*, ?, [...])НетНет
bash (v4.0)Частично (удаление префиксов и суффиксов при раскрытии числа)ДаДаДа (*, ?, [...], {...})НетДа (** /...)
csh Да (: s и другие операторы редактирования)ДаНетДаНетНет
tcsh Да (: s и другие операторы редактирования)ДаДаДаНетНет
Оболочка Hamilton C Да (: s и другие операторы редактирования + substr, strlen, strindex, printf, revers e, upper, lower, concat и другие встроенные функции)ДаНетДаНетДа (через неопределенный каталог "..." подстанов очный знак)
Scsh ??ДаДаНетНет
ksh (ksh93t +)Частичный (префикс, удаление суффикса и замена строки в раскрытии замещающей)ДаДаДа (*, ?, [...])НетДа (с set -G, без следования символических ссылок)
pdksh ?ДаНетДаНетНет
zsh Да (посредством обработки: например, извлечение подстроки, различные преобразования с помощью расширения параметров)ДаДаДа (*, ?, [...], расширенная подстановка )ДаДа (** /... или *** /... для перехода по символическим ссылкам)
ясень ??НетДаНетНет
CCP НетНетНетНетНетНет
COMMAND.COM НетНетНетДа (*, ?)НетНет
OS / 2 CMD.EXE НетНетНетДа (*, ?)Частично (только команда в DIR / A:...)Нет
Windows CMD.EXE Частично (только через FOR / F и SET / A)НетNoДа (*, ?)Частично (только в команде DIR / A:...)Да (с помощью команды FOR / R или, если возможно, косвенно с помощью / S параметр subdir)
4DOS Да (с помощью функций числа % @..., расширенная обработка среды среды, различные строки c команды и FOR / F и SET / A)НетНетДа (*, ?, [...], расширенные символы подстановки, всплывающая команда SELECT)Да (через атрибут / A:... и / I "... "параметры описания и размер / [S...], / [T...] время, / [D...] дата и / [!...] диапазоны исключения файлов)Да (с помощью команды FOR / R или косвенно с помощью команд GLOBAL или, если возможно, подкаталог / S)
4OS2 ?НетНет???
TCC (ранее 4NT)Да (с помощью функций числа % @..., расширенной обработки среды среды, различных строковых команд и FOR / F и SET / A)НетДаДа (*, ?, [...], расширенные символы подстановки, всплывающая команда SELECT)Да (через атрибут / A:... и / I "... "параметры описания и / [S...] размер, / [T...] время, / [D...] дата, / [O...] "владелец и / [!...] диапазоны исключения файлов)Да (через FO Команда R / R или косвенно с помощью команды GLOBAL или, если возможно, каталог / S)
PowerShell Да (Concat / Substring / Insert / Remove / Replace, ToLower / ToUpper, Trim / TrimStart / TrimEnd, Compare, Contains / StartsWith / EndWith, Format, IndexOf / LastIndexOf, Pad / PadLeft / PadRight, Split / Join, функции регулярных выражений и другие строковые функции.NET)НетДа (полная поддержка регулярных выражений)Да (*, ?, [...])??
rc ??НетДаНетНет
BeanShell ??Да???
VMS DCL ДаНетНетДаНетДа (через [SUBDIR...])
fish Да (встроенная строковая функция)Дада (через встроенные функции сопоставления строк и замены строк)Да (*, ?, {...})НетДа (** /...)
Межпроцессное взаимодействие
ОболочкаКонвейеры Подстановка команд Подстановка процесса ПодоболочкиTCP / UDP подключение ионы в виде потоковСложение прикрепий клавиш
Оболочка Борна параллельных байтовДаНетДаНетН / Д
POSIX оболочкабайт одновременноДаНетДаНетН / Д
bash (v4.0)байт одновременноДаДа (если система поддерживает / dev / fd / ⟨n⟩ или именованные каналы)ДаДа (только клиент)Н / Д
csh байт одновременноДаНетДаНетН / Д
tcsh байт одновременноДаНетДаНетН / Д
Оболочка Гамильтон C одновременных байтовДаНетДаНет?
Scsh текст???ДаН / Д
ksh (ksh93t +)байтов ( могут содержать сериализованные объекты, если используется print -C) одновременноДа ($ (...) и $ {...;})Да (если система поддерживает / dev / fd / ⟨n⟩)ДаДа es (и поддержка SCTP, только клиент)Н / Д
пдкш синхронных байтовДаНетДаНетН / Д
zsh байт одновременноДаДаДаДа (клиент и сервер, но только TCP)Н / Д
ash байт одновременноДаНетДаНетНет
CCP НетНетНетНетНетНет
COMMAND.COM текстовые последовательные временные файлыНетНетЧастично (только в режиме многозадачности DR-DOS через COMMAND.COM / T)НетНет
OS / 2 CMD.EXE одновременный текстНетНет?НетНет
Windows CMD.EXE одновременный текстДа (с помощью команды FOR / F)НетД а (Обратный апостроф: `в FOR / F usebackq)НетНет
4DOS последовательный текст временные файлыДа (с помощью команды FOR / F)?Частично (vi a % @ EXECSTR и % @ EXEC, или через SET / M, ESET / M и UNSET / M и % @ MASTER [...])НетДа (через KEYSTACK и KSTACK )
4OS2 одновременный текст???НетДа (через KEYSTACK)
TCC (ранее 4NT)одновременный текстДа (с с помощью команды FOR / F)?Частично (с помощью % @ EXECSTR и % @ EXEC)Да (через FTP, TFTP, FTPS, SFTP, HTTP, HTTPS и IFTP, только клиент)Да (через KEYSTACK)
PowerShell одновременно объектыДаНетДаДа?
rc одновременный текстДаДа (через: <{cmd} if system supports / dev / fd / n⟩)ДаНет?
BeanShell не поддерживается???Да?
VMS DCL текст (посредством команды PIPE)ДаНетДа (порождение)Да (только TCP -сервер)Нет
fish одновременно байтДа (...)Нет (сломано)НетНетН / Д

Объединение приложенийий клавиш

В ожидании того, что данное запущенное принимать может в качестве ввода с клавиатуры, пользователь оболочки дает команду оболочке сгенерировать последовательность имитированных различных клавиш, которая будет интерпретировать как ввод с клавиатуры интерактивного пользователя. Посредством последовательностей приложенных клавиш пользователь может указать выполнить действия, которые были выполнены с помощью перенаправления ввода или которые иным образом потребовали бы интерактивного пользователя. Например, если действует приложение, которое не считывает стандартные вводимые, различает обычные и расширенные клавиши, очищает очередь перед новым вводом при запуске или при определенных условиях, потому что оно вообще не считывает стандартный ввод. Стекинг клавишных клавиш обычно используются средства управления временем отправки имитированных клавиш или увеличения клавиш до тех пор, пока очередь не будет очищена и т. Д. Это также позволяет имитировать клавиши, которые не используются на клавиатуре.

Функции безопасности
ОболочкаЗапрос пароля (пароль)Зашифрованные переменные / параметрыПароли файлов / каталоговРазрешение на выполнениеБлокировка ненадежных сценариевОграниченная оболочка подмножествоБезопасное подмножество данных
Оболочка Борна через sttyНет?N/AНетДаНет
POSIX оболочкачерез sttyНет?N/AНетНетНет
bash (v4.0)читать -sНет?N/AНетДаНет
csh через sttyНет?N/AНетДаНет
tcsh через sttyНет?N/AНетДаНет
Оболочка Гамильтон C НетНетНетНетНетНетНет
Scsh через sttyНет?N/AНетНетНет
ksh (ksh93t +)через sttyНет?N/AНетДаНет
pdksh через sttyНет?N/AНетДаНет
zsh читать -sНет?N/AНетДаНет
пепел через sttyНет?N/AНетДаНет
CCP НетНетНетНетНетНетНет
COMMAND.COM Частично (только для DR- DOS, запрашивает пароль, если файл / каталог защищен)НетЧастично (только в DR-DOS через \ dirname; dirpwd \ filename; синтаксис filepwd)Частично (только в DR-DOS, если файлы защищены паролем для чтения и / или разрешения на выполнение)НетНетНет
OS / 2 CMD.EXE НетНетНетНетНетНетНет
Windows CMD.EXE НетНетНетНетНетНетНет
4DOS Да (через INPUT / P или INKEY / P)НетЧастично (только un der DR-DOS через \ dirname ;; dirpwd \ filename ;; синтаксис filepwd)Частично (только в DR-DOS, если файлы защищены паролем для чтения и / или разрешения на выполнение)НетНетНет
4OS2 ?НетНетНетНетНетНет
TCC (ранее 4NT)Да (через INPUT / P, INKEY / P или QUERYBOX / P)НетНетНетНетНетНет
PowerShell ДаДаНетNoДаДаДа
rc через sttyНет?N/AНетДаНет
BeanShell ???????
VMS DCL ДаНетНетДаНетДаНет
рыба читать -sНет?Н / ДНетДа (через fish -l)?

Безопасное приглашение

Некоторым сценариям оболочки требуется запрашивать у пользователя конфиденциальную информацию такие как пароли, личные цифровые ключи, PIN-коды или другие n конфиденциальная информация. Чувствительный ввод не должен отражаться эхом на экране / устройстве ввода, где он может быть получен посторонними лицами. Также следует избегать представления конфиденциальной информации в виде открытого текста, так как это может позволить скомпрометировать информацию, например, через файлы подкачки, дампы ядра и т. Д.

Оболочки bash, zsh и PowerShell предлагают это как особую функцию. Оболочки, которые не предлагают это как особую функцию, могут по-прежнему отключать эхо с помощью других средств. Оболочки, выполняемые воперационной системе Unix / Linux, могут использовать внешнюю команду stty для включения / выключения эха вводимых символов. В дополнение к тому, что символы не повторяются, параметр PowerShell -AsSecureString также шифрует ввод посимвольно во время процесса ввода, гарантируя, что строка никогда не будет представлена ​​в незашифрованном виде в памяти, где она может быть скомпрометирована посредством дампов памяти, сканирования, транскрипция и т. д.

Зашифрованные переменные / параметры

Если сценарий считывает пароль в переменную среды, он находится в памяти в виде обычного текста, и, таким образом, к нему можно получить доступ через дамп ядра. Он также находится в среде процесса, который может быть доступен другим процессам, запущенным сценарием.

PowerShell может работать с зашифрованными строковыми переменными / параметрами. Зашифрованные переменные гарантируют, что значения не будут случайно раскрыты, например, стенограммы, эхо, файлы журналов, памяти или аварийные дампы или даже вредоносное сканирование памяти. PowerShell также поддерживает сохранение таких зашифрованных строк в текстовых файлах, защищенных ключом, принадлежащим текущему пользователю.

Разрешение на выполнение

Некоторые операционные системы определяют разрешение на выполнение, которое может быть предоставлено пользователям / группам для файла.

В системах Unix разрешение на выполнение контролирует доступ к вызову файла как программы и применяется как к исполняемым файлам, так и к сценариям. Поскольку разрешение применяется в загрузчике программ , ни вызывающая программа, ни вызываемая программа не обязаны требовать разрешения на выполнение - это также относится к оболочкам и другим программам-интерпретаторам. Такое поведение определяется библиотекой POSIX C, которая используется для взаимодействия с ядром. POSIX указывает, что семейство функций execдолжно завершиться ошибкой с EACCESS (разрешение отклонено), если файл запрещает разрешение на выполнение (см. execve - Справочник по системным интерфейсам, Единая спецификация UNIX, выпуск 7 из Открытая группа ).

Разрешение на выполнение применяется только при прямом запуске сценария. Если сценарий вызывается в качестве аргумента интерпретирующей оболочки, он будет выполняться независимо от того, имеет ли пользователь разрешение на выполнение для этого сценария.

Хотя Windows также определяет разрешение на выполнение, ни одна из специфичных для Windows оболочек не блокирует выполнение сценария, если разрешение не было предоставлено.

Блокировка ненадежных сценариев

Некоторые оболочки блокируют сценарии, признанные ненадежными, или отказываются запускать сценарии, если это предписано системным администратором.

Ограничение выполнения исходного сценария

PowerShell может быть настроен на блокировку выполнения сценариев, которые были помечены как полученные из неизвестного / ненадежного источника (например, из Интернета). Интернет-приложения, такие как веб-браузеры, клиенты обмена мгновенными сообщениями, программы чтения почты и т. Д., Маркируют файлы, загруженные из Интернета, с помощью зоны происхождения в альтернативном потоке данных, который понимается PowerShell.

Ограничение подписанного сценария

Можно использовать политики подписи сценария / кода, чтобы гарантировать, что операционный отдел запускает только утвержденные сценарии / код, которые были просмотрены и подписаны доверенным рецензентом / утверждающим. Режимы подписи также защищают от подделки. Если сценарий отправляется от поставщика клиенту, клиент может использовать подпись, чтобы гарантировать, что сценарий не был изменен во время передачи и что сценарий действительно исходит от поставщика, а не злоумышленника, пытающегося заставить оператора запустить сценарий атаки.

PowerShell можно настроить так, чтобы разрешить выполнение сценариев, заблокированных в противном случае (например, исходящих из ненадежной зоны), если сценарий был подписан цифровой подписью с использованием доверенного цифрового сертификата.

Многоуровневые политики выполнения

Компания может захотеть применить ограничение исполнения в глобальном масштабе внутри компании и / или в определенных частях компании. Он может захотеть установить политику для запуска подписанных сценариев, но разрешить определенным подразделениям компании устанавливать свои собственные политики для зональных ограничений.

PowerShell позволяет применять политики блокировки сценариев на нескольких уровнях: локальный компьютер, текущий пользователь и т. Д. Политика более высокого уровня переопределяет политику более низкого уровня, например если политика определена для локальной машины, она действует для всех пользователей локальной машины, только если она не определена на более высоком уровне, ее можно определить для более низких уровней.

Ограниченное подмножество оболочки

Некоторые оболочки могут быть запущены или настроены для запуска в режиме, в котором пользователю доступен только ограниченный набор команд и действий. Хотя это и не граница безопасности (блокируется команда доступа к ресурсу, а не к ресурсу), он, тем не менее, обычно используется для ограничения действий пользователей перед входом в систему.

Ограниченный режим является частью POSIX для оболочек, и большинство оболочек Linux / Unix поддерживают такой режим, в котором несколько встроенных команд отключены и могут быть вызваны только внешние команды из определенного каталога.

PowerShell поддерживает ограниченные режимы через файлы конфигурации сеанса или конфигурации сеанса. Файл конфигурации сеанса может определять видимые (доступные) командлеты, псевдонимы, функции, поставщиков путей и т. Д.

Подмножество безопасных данных

Сценарии, которые вызывают другие сценарии, могут представлять угрозу безопасности, поскольку потенциально могут выполнить внешний код в контексте пользователя, запустившего исходный скрипт. Сценарии обычно разрабатываются таким образом, чтобы включать исключительно сценарии из известных безопасных мест; но в некоторых случаях, например предлагая пользователю способ настройки среды или загрузки локализованных сообщений, в сценарий может потребоваться включить другие сценарии / файлы. Один из способов уменьшить этот риск - предложить оболочке безопасное подмножество команд, которые могут быть выполнены включенным скриптом.

PowerShell разделы данных могут содержать константы и выражения с использованием ограниченного набора операторов и команд. Разделы данных PowerShell используются, например, когда локализованные строки необходимо читать из внешнего источника, обеспечивая при этом защиту от нежелательных побочных эффектов.

Примечания
Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-15 08:03:02
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте