Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

Общие характеристики [ править ]

Интерактивные функции [ править ]

Выполнение в фоновом режиме [ править ]

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

Завершенные [ править ]

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

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

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

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

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

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

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

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

История команд [ править ]

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

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

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

Обязательный аргумент [ править ]

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

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

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

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

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

Интегрированная среда сценариев 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]

Возможности программирования [ править ]

Обработка строк и сопоставление имен файлов [ править ]

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

Сложение нажатий клавиш [ править ]

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

Функции безопасности [ править ]

Безопасная подсказка [ править ]

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

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

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

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

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

Разрешение на выполнение [ править ]

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

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

Заметки [ править ]

  1. ^ С середины 1990-х гг.
  2. ^ если скомпилирован с -DACCT.
  3. ^ Компонент MS-DOS и Windows - покрывается действующей лицензией для MS-DOS или Microsoft Windows.
  4. ^ Компонент OS / 2 - покрывается действующей лицензией на OS / 2.
  5. ^ Включены расширения команд или "CMD / X".
  6. ^ Компонент Windows - покрывается действующей лицензией для Microsoft Windows.
  7. ^ Microsoft PowerShell устанавливается по умолчанию в Windows 7 и новее. Это дополнительная загрузка для пользователей Windows Vista или Windows XP.
  8. ^ a b c Текущие версии от Йорга Шиллинга.
  9. ^ Alt-Shift-8 или Alt- * расширится до полного списка совпадающих имен файлов.
  10. ^ Доступно черезнадстройку DOSKEY .
  11. ^ Доступно в DR-DOS через HISTORY .
  12. ^ Альтернативно также доступно черезнадстройку DOSKEY .
  13. ^ Альтернативно также доступно в DR-DOS через HISTORY .
  14. ^ TCC имеет специальные функции подсказки для Да, Нет, Отмена, Закрыть, Повторить.
  15. ^ Б с обрабатываемым рио , GNU Readline , editline или ВРЛАМИ .
  16. ^ Раковина рыбы представляет собой интерактивную поверхность ввода / вывода на основе символов.
  17. ^ Недоступно как встроенная оболочка. Внешняя команда FINDSTR / R доступна в большинстве выпусков Windows.
  18. ^ PowerShell использует полныймеханизм регулярных выражений .NET , который включает в себя именованные захваты, просмотр вперед / назад с нулевой шириной, жадный / не жадный, классы символов, подсчет уровней и т. Д.
  19. ^ a b c d e f g h i j k xautomation и xdotool могут использоваться для генерации нажатий клавиш в системе X Window ; или программа может быть запущена в псевдотерминале, чтобы иметь возможность управлять им (как в случае с инструментом expect ).
  20. ^ a b c d e f g h i Оболочка может использовать утилиту stty для подавления вывода введенных символов на экран. Для этого требуется несколько шагов: 1. чтение текущего состояния эха, 2. выключение эха, 3. чтение ввода, 4. переключение состояния эха обратно в исходное состояние.
  21. ^ a b c d e f g h i j k l Разрешение на выполнение обеспечивается отдельной программой, загрузчиком программы, путем отказа в вызове интерпретатора (возможно, оболочки), указанного в хэшбэге сценария . Интерпретатор не требует разрешения на выполнение, если вызывается напрямую, как это сделал бы загрузчик программы, с файлом в качестве аргумента; для этого требуется только разрешение на чтение, как и передача файла по конвейеру в качестве входных данных для интерпретатора, и в этом случае интерпретатор не может видеть разрешение на выполнение.
  22. ^ a b В DR-DOS разделителем паролей для паролей файлов и каталогов является точка с запятой. Это также поддерживается в 4DOS до тех пор, пока команда не поддерживает списки включения. В 4DOS разделитель паролей должен быть удвоен для всех команд, поддерживающих списки включения, чтобы отличать пароли от списков включения. Команды, не поддерживающие списки включения, принимают обе формы. DR-DOS 7.02 и выше также могут принимать двойную точку с запятой, так что двойная точка с запятой работает как в COMMAND.COM, так и в 4DOS независимо от выполняемой команды.
  23. ^ a b DR-DOS поддерживает пароли файлов для чтения / записи / удаления и, при необходимости, разрешения на выполнение. По умолчанию файлы не защищены, но систему можно настроить так, чтобы для чтения пакетных сценариев, например, требовался пароль.
  24. ^ a b INPUT / P и INKEY / P отображает звездочки для каждого набранного символа.
  25. ^ Read-Host -AsSecureString считывает строку символов с устройства ввода в зашифрованную строку, по одному символу за раз, таким образом гарантируя, что в памяти нет изображения открытого текста, которое можно было бы извлечь из памяти сканирования или из аварийных дампов, дампы памяти, файлы подкачки, файлы журналов и т.п.
  26. ^ Файлы сценария PowerShell (файлы .ps1 ) по умолчанию связаны с редактором Блокнота, а не с механизмом выполнения PowerShell. При вызове файла .ps1 вместо выполнения сценария запускается Блокнот.
  27. ^ Сценарии запуска для каждого компьютера / пользователя могут импортировать модули и предоставлять подмножество команд / функций, доступных в модулях.

Ссылки [ править ]

  1. ^ Зависит от платформы версия основана на исторической UNIX V7 оригинальный исходный код доступен из Geoff Collyer
  2. ^ Историческая версия UNIX V7 доступна по лицензии в стиле BSD через Unix Heritage Society и другие организации.
  3. ^ Зависит от платформы версия основана на исходном коде SVr4 / Solaris доступен от Йорга Шиллинга
  4. ^ Феррелл, Джон, «Глава 2. Оболочка по умолчанию» , FreeBSD Quickstart Guide for Linux Users , The FreeBSD Documentation Project , получено 24 июля 2015 г.
  5. ^ "SchilliX-ON / SchilliX-ON Mercurial / [b1d9a2] / usr / src / cmd / sh" . Sourceforge.net . Проверено 2 июля 2015 .
  6. ^ IEEE и Открытая группа (2008). Стандарт IEEE 1003.1 для информационных технологий - интерфейс переносимой операционной системы (POSIX): оболочка и служебные программы, выпуск 7 .
  7. ^ Как часть IEEE Std.1003.2-1992 (POSIX.2); интегрирован в IEEE Std.1003.1 с редакцией 2001 года.
  8. ^ Фокс, Брайан (1989-06-07). Тауэр младший, Леонард Х. (ред.). "Bash находится в стадии бета-версии!" . Группа новостейgnu.announce . Usenet: [email protected] . Проверено 28 октября 2010 . 
  9. ^ Купер, Мендель, «Глава 37.3.2. Bash, версия 4.2», Advanced Bash-Scripting Guide , The Linux Documentation Project , получено 30 апреля 2015 г., "Bash теперь поддерживает экранирование Unicode \ u и \ U".
  10. ^ Грир, Кен (1983-10-03). «Оболочка C с распознаванием / завершением команд и имен файлов» . Группа новостейnet.sources . Проверено 29 декабря 2010 .
  11. ^ Сассмен, Ann (1988-12-26). "Hamilton C Shell ускоряет разработку приложений OS / 2" (PDF) . PC Week (1988-12-26 - 1989-01-02): 37 . Проверено 22 ноября 2010 .
  12. ^ Gomes, Рон (1983-06-09). «Расписание конференции USENIX в Торонто (предварительно)» . Группа новостейnet.usenix . Проверено 29 декабря 2010 .
  13. ^ Харрис, Гай (1983-10-10). "csh вопрос" . Группа новостейnet.flame . Проверено 29 декабря 2010 .
  14. ^ ksh93 (1) справочная страница
  15. ^ a b Оболочка по умолчанию в OpenBSD - ksh (pdksh).
  16. ^ Редактор командной строки zsh полностью настраивается и может поддерживать мышь различными способами, например, с помощью mouse.zsh Стефана Чазеласа .
  17. ^ zsh (1) справочная страница и подстраницы
  18. ^ zshbuiltins (1) справочная страница
  19. ^ "# 782228 - busybox sh не поддерживает многобайтовые символы при обработке строк - журналы отчетов об ошибках Debian" . Bugs.debian.org. 2015-04-09 . Проверено 2 июля 2015 .
  20. ^ "Словарь HP OpenVMS DCL" . Архивировано из оригинала на 2007-03-25 . Проверено 23 марта 2009 .
  21. ^ Ларабель, Майкл (2021-03-23). «Авторские права на Plan 9 переданы в Фонд, выпущен лицензионный код MIT» . Фороникс . Проверено 28 марта 2021 .
  22. ^ Liljencrantz, Axel (2005-05-17). «Рыба - дружественная интерактивная оболочка» . Проверено 8 апреля 2013 .
  23. ^ Соллер, Джереми (2015-11-15). "d79c8f511573fb7710abc63b4236a40022914520" . Проверено 3 августа 2019 .
  24. ^ "[Z Shell] Система завершения" . Zsh.sourceforge.net . Проверено 24 февраля 2015 .
  25. ^ например, через стороннюю организацию, такую ​​как zsh-autosuggestions
  26. ^ zsh не поддерживает подсветку синтаксиса, но существует сторонний проект, который предлагает эту возможность в качестве надстройки: zsh-syntax-highlighting
  27. ^ Пол, Матиас Р. (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]
  28. ^ a b c d e «Интегрированная среда сценариев Windows PowerShell (ISE)» . Microsoft Technet . Проверено 12 сентября 2015 .
  29. ^ a b c d Ширк, Джейсон (2018-02-15). «PSReadLine: реализация строки чтения для PowerShell, вдохновленная bash» - через GitHub.
  30. ^ "Архивная копия" . Архивировано из оригинального 17 сентября 2016 года . Проверено 8 сентября 2016 года .CS1 maint: заархивированная копия как заголовок ( ссылка )
  31. ^ Push-Location (с псевдонимомpushd) и Pop-Location (с псевдонимомpopd) позволяетзагружать и извлекать из стеков местоположенийнесколько типов местоположений (каталоги файловых систем, организационные единицы Active Directory , узлы реестра Windows и т. Д.).
  32. ^ Функция $ host.ui.PromptForChoice позволяет использовать подсказку в стиле меню для выбора. Приглашение работает как из фоновых заданий, так и из удаленных сеансов, отображая приглашение меню на консоли управляющего сеанса.
  33. ^ Write-Progress Командлет записывает индикаторкоторый может указывать процент, оставшиеся секундыт.д. прогресс бар Сообщения работы фоновых заданий или удаленных сессий в дополнении к интерактивным скриптам, то есть индикатор отображается на консоли контролирующей сессии, не как часть обычного выпуска.
  34. ^ Show-Command Командлет проверяет определение команды и открывает интерактивные окна с именем поля ввода для каждого параметра / переключателя
  35. ^ a b "рыба: Документация" . Завершение вкладки раздела . Проверено 10 января 2016 .
  36. ^ "set_color - установить цвет терминала - документация fish-shell 3.1.2" . fishshell.com . Проверено 23 февраля 2021 .
  37. ^ "abbr - управление сокращениями рыб - документация fish-shell 3.1.2" . fishshell.com . Проверено 23 февраля 2021 .
  38. ^ "zsh: 20. Система завершения" . Zsh.sourceforge.net. 2013-03-06 . Проверено 18 августа 2013 .
  39. ^ «Используйте PowerShell для создания обязательных параметров» . Blogs.technet.com . Проверено 24 февраля 2015 .
  40. ^ Параллельная DOS 386 - Многопользовательская / многозадачная операционная система - Руководство пользователя (PDF) . Цифровые исследования .
  41. ^ "# 1 Замена командной строки Windows - Команды командной строки Windows CMD" . Программное обеспечение JP . Проверено 18 августа 2013 .
  42. ^ a b «Интегрированная среда сценариев Windows PowerShell 3.0 (ISE)» . Technet.microsoft.com . Проверено 18 августа 2013 .
  43. ^ «PowerShell v3 ISE и модели сценариев ISE изменения и улучшения» . Журнал PowerShell. 2011-09-28 . Проверено 18 августа 2013 .
  44. ^ "pv (1): отслеживать прохождение данных через канал - справочная страница Linux" . Linux.die.net . Проверено 24 февраля 2015 .
  45. ^ "zsh-users / zsh-syntax-highlighting: Fish shell как подсветка синтаксиса для Zsh" . GitHub . Проверено 18 августа 2013 .
  46. ^ "Show-Command" . Technet.microsoft.com . Проверено 18 августа 2013 .
  47. ^ "Варианты ясеня" . Архивировано из оригинала на 2010-03-10 . Проверено 15 декабря 2014 .
  48. ^ «Установить - Переменная среды - Windows CMD» . SS64.com . Проверено 24 февраля 2015 .
  49. ^ "Как перебрать массив в пакетном режиме?" . Переполнение стека . Проверено 24 февраля 2015 .
  50. ^ Класс .NET System.Math определяет математические функции, которые можно использовать с помощью ярлыка [Math] , например, [Math] :: Sin дляфункции sinus . [2]
  51. ^ "строка - управление строками - документация fish-shell 3.1.2" . fishshell.com . Проверено 23 февраля 2021 .
  52. ^ Справочник по языку оболочки Hamilton C: Подстановочные знаки и сопоставление с образцом , Hamilton Laboratories , получено 29 октября 2013 г. , ... Неопределенный каталог: сопоставление любого количества уровней справочника - от нуля или более - независимо от того, что требуется для сопоставления остальной части образца .
  53. ^ a b Зеебах, Питер (2008). Начало создания сценариев переносимой оболочки: от новичка до профессионала . Голос эксперта в открытом доступе. Апресс. п. 149. ISBN. 9781430210436. Проверено 17 сентября 2014 . Расширение скобок доступно в ksh93, pdksh, bash и zsh.
  54. ^ Zsh предлагает множество вариантов подстановки .
  55. ^ Братья, Хардин; Роусон, Том ; Конн, Рекс К .; Пол, Маттиас Р .; Краситель, Чарльз Э .; Георгиев, Лучезар И. (27.02.2002). Онлайн-справка по 4DOS 8.00 .
  56. ^ "найти способ сделать` psub --fifo` безопасным из тупика · Проблема # 1040 · fish-shell / fish-shell " . GitHub .
  57. ^ «О политиках выполнения» . Technet.microsoft.com . Проверено 24 февраля 2015 .
  58. ^ «О разделах данных» . Technet.microsoft.com . Проверено 24 февраля 2015 .
  59. ^ "Ubuntu Manpage: rc - shell" . Manpages.ubuntu.com. 2003-07-17 . Проверено 24 февраля 2015 .
  60. ^ Провос, Нильс. «Шифрование виртуальной памяти» . Центр интеграции информационных технологий Мичиганского университета . Проверено 20 декабря 2012 .
  61. ^ "bash - GNU Bourne-Again SHell" . читает -s Тихий режим. Если ввод идет с терминала, символы не отображаются.
  62. ^ «Использование командлета Read-Host» . Добавив параметр -assecurestring, вы можете замаскировать данные, введенные в командной строке.
  63. ^ "Команда Linux / Unix: stty" . Linux.about.com . Проверено 24 февраля 2015 .
  64. ^ Альбинг, Карл; Vossen, JP; Ньюхэм, Кэмерон (2007). «3.8. Запрос пароля». Поваренная книга Баша (1-е изд.). Севастополь, Калифорния: O'Reilly Media . п. 65 . ISBN 978-0-596-52678-8. Имейте в виду, что если вы считываете пароль в переменную среды, он находится в памяти в виде обычного текста и, следовательно, может быть доступен через дамп ядра или / proc / core. Он также находится в технологической среде, которая может быть доступна другим процессам.
  65. ^ Холмс, Ли. «SecureStrings в PowerShell» . Проверено 18 декабря 2012 .
  66. ^ «Безопасность PowerShell :: Безопасность ОС Windows :: Статьи и учебные пособия» . WindowSecurity.com . Проверено 18 августа 2013 .
  67. ^ «Подписание сценариев PowerShell» . Hanselman.com . Проверено 24 декабря 2015 .
  68. ^ «Привет, сценарист! Как я могу подписать сценарии Windows PowerShell с помощью корпоративной PKI Windows? (Часть 2 из 2) - Привет, сценарист! Блог - Домашняя страница сайта - Блоги TechNet» . Blogs.technet.com . Проверено 18 августа 2013 .
  69. ^ «Запуск сценариев Windows PowerShell» . Technet.microsoft.com . Проверено 18 августа 2013 .
  70. ^ "man sh - shell, стандартный интерпретатор командного языка / posix" (на французском). Pwet.fr. Архивировано из оригинала на 2014-12-21 . Проверено 18 августа 2013 .
  71. ^ «Справочное руководство Bash: ограниченная оболочка» . Gnu.org. 2010-12-28 . Проверено 18 августа 2013 .
  72. ^ "New-PSSessionConfigurationFile" . Technet.microsoft.com . Проверено 18 августа 2013 .
  73. ^ Альбинг, Карл; Vossen, JP; Ньюхэм, Кэмерон (2007). Поваренная книга Баша (1-е изд.). Севастополь, Калифорния, США: O'Reilly Media . ISBN 978-0-596-52678-8. [...] вряд ли можно назвать пассивным списком настроенных переменных. Он может запускать другие команды (например, cat) и использовать операторы if для изменения своего выбора. Он даже заканчивается повторением сообщения. Будьте осторожны, когда что-то исходите, так как это широко открытая дверь в ваш сценарий.
  74. ^ «О разделах данных» . Microsoft . Проверено 18 декабря 2012 .

Внешние ссылки [ править ]

  • Журнал Linux: Bash против Vista PowerShell
  • IEEE. 1003.1 Стандарт информационных технологий - интерфейс переносимой операционной системы (POSIX): оболочка и служебные программы, выпуск 7