stringtranslate.com

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

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

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

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

Интерактивные функции

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

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

Завершения

Автодополнение командной строки в Bash .

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

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

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

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

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

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

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

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

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

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

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

Обязательный аргумент

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

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

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

Автодополнение командной строки в PowerShell .

Оболочки с автоматическими предложениями отображают необязательные дополнения командной строки по мере ввода текста пользователем. Оболочки PowerShell и fish изначально поддерживают эту функцию; нажатие клавиши вставляет дополнения.Tab ↹

Реализации этой функции могут различаться в разных оболочках; например, PowerShell [47] и zsh [48] используют внешний модуль для предоставления дополнений, а fish извлекает свои дополнения из истории команд пользователя. [49]

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

Оболочки могут записывать историю каталогов, в которых находился пользователь, и позволять быстро переключаться на любое записанное местоположение. Это называется «стек каталогов». Концепция была реализована еще в 1978 году [50] в выпуске оболочки C (csh).

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

Интерпретаторы командной строки 4DOS и его графический преемник Take Command Console также имеют стек каталогов.

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

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

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

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

Демонстрация автодополнения и автоисправления Zsh для программы Telnet .

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

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

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

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

Индикатор прогресса

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

Системы Unix/Linux могут предлагать поддержку других инструментов, использующих индикаторы прогресса из скриптов или как автономные команды, такие как программа "pv". [52] Однако они не являются интегрированными функциями оболочек.

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

Цветные списки каталогов

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

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

Выделение текста

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

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

Отличительной особенностью оболочки Fish является встроенная подсветка синтаксиса. По мере того, как пользователь печатает, текст окрашивается в цвет, показывающий, является ли ввод допустимой командой или нет (исполняемый файл существует и у пользователя есть разрешения на его запуск), а допустимые пути к файлам подчеркиваются. [53]

Независимый проект предлагает подсветку синтаксиса как дополнение к Z Shell (zsh). [54] Однако это не является частью оболочки.

PowerShell обеспечивает настраиваемую подсветку синтаксиса в командной строке через модуль PSReadLine [31] . Этот модуль может использоваться с PowerShell v3.0+ и поставляется с v5.0 и выше. Он загружается по умолчанию в хост командной строки "powershell.exe" начиная с v5.0. [55]

Take Command Console (TCC) предлагает подсветку синтаксиса в интегрированной среде.

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

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

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

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

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

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

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

Стекирование нажатий клавиш

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

Функции безопасности

Безопасная подсказка

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

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

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

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

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

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

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

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

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

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

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

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

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

Разделы данных PowerShell могут содержать константы и выражения, использующие ограниченный подмножество операторов и команд. [79] Разделы данных 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. ^ abc текущие версии от Йорга Шиллинга.
  9. ^ Alt-Shift-8 или Alt-* развернут полный список соответствующих имен файлов.
  10. ^ Доступно через дополнение DOSKEY .
  11. ^ Доступно в DR-DOS через HISTORY .
  12. ^ Также доступно через дополнение DOSKEY .
  13. ^ Также доступно в DR-DOS через HISTORY .
  14. ^ TCC имеет специальные функции подсказок для «Да», «Нет», «Отмена», «Закрыть», «Повторить».
  15. ^ abc Обрабатывается rio , GNU readline , editline или vrl.
  16. ^ Раковина рыбы — это интерактивная символьная поверхность ввода/вывода.
  17. ^ Недоступно как встроенная оболочка. Внешняя команда FINDSTR /R доступна в большинстве выпусков Windows.
  18. ^ PowerShell использует полный механизм регулярных выражений .NET , который включает именованные захваты, просмотр вперед/назад нулевой ширины, жадный/нежадный алгоритм, классы символов, подсчет уровней и т. д.
  19. ^ abcdefghijk xautomation и xdotool можно использовать для генерации нажатий клавиш в системе X Window ; или можно запустить программу в псевдотерминале, чтобы иметь возможность управлять ею (как с помощью инструмента expect ).
  20. ^ abcdefghi Оболочка может использовать утилиту stty для подавления эха набранных символов на экране. Это требует нескольких шагов: 1. чтение текущего состояния эха, 2. выключение эха, 3. чтение ввода, 4. переключение состояния эха обратно в исходное состояние.
  21. ^ abcdefghijkl Разрешение на выполнение обеспечивается отдельной программой, загрузчиком программ, отказываясь вызывать интерпретатор (возможно, оболочку), указанный в hashbang скрипта . Интерпретатор не обеспечивает разрешение на выполнение, если вызывается напрямую, как это сделал бы загрузчик программ, с файлом в качестве аргумента; для этого требуется только разрешение на чтение, как и при передаче файла в качестве входных данных интерпретатору, в этом случае интерпретатор не видит разрешение на выполнение.
  22. ^ ab Оболочки zsh и fish также учитывают разрешение на выполнение для завершения команды.
  23. ^ ab В DR-DOS разделителем паролей для файлов и каталогов является точка с запятой. Это также поддерживается в 4DOS, если команда не поддерживает списки включения. В 4DOS разделитель паролей должен быть удвоен для всех команд, поддерживающих списки включения, чтобы отличать пароли от списков включения. Команды, не поддерживающие списки включения, принимают обе формы. DR-DOS 7.02 и выше опционально принимают также двойную точку с запятой, так что двойные точки с запятой работают как в COMMAND.COM, так и в 4DOS независимо от выполненной команды.
  24. ^ ab DR-DOS поддерживает пароли файлов для чтения/записи/удаления и опционально разрешения на выполнение. Файлы не защищены по умолчанию, но систему можно настроить так, что например пакетные скрипты будут требовать пароль для чтения.
  25. ^ ab INPUT /P и INKEY /P возвращают звездочки для каждого введенного символа.
  26. ^ Read-Host -AsSecureString считывает строку символов с устройства ввода в зашифрованную строку, по одному символу за раз, тем самым гарантируя отсутствие образа открытого текста в памяти, который можно было бы получить при сканировании памяти или из аварийных дампов, дампов памяти, файлов подкачки, файлов журналов и т. п.
  27. ^ Файлы скриптов PowerShell ( файлы .ps1 ) по умолчанию связаны с редактором Notepad, а не с механизмом выполнения PowerShell. Вызов файла .ps1 запустит Notepad, а не выполнит скрипт.
  28. ^ Скрипты запуска для каждого компьютера/пользователя могут импортировать модули и предоставлять доступ к подмножеству команд/функций, доступных в модулях.

Ссылки

  1. ^ Платформонезависимая версия, основанная на историческом исходном коде UNIX V7, доступна у Джеффа Коллиера.
  2. ^ Историческая версия UNIX V7 доступна по лицензии в стиле BSD через The Unix Heritage Society и других.
  3. ^ Платформонезависимая версия на основе исходного кода SVr4/Solaris доступна у Йорга Шиллинга.
  4. ^ Феррелл, Джон, «Глава 2. Оболочка по умолчанию», Руководство по быстрому старту FreeBSD для пользователей Linux, Проект документации FreeBSD , получено 24 июля 2015 г.
  5. ^ "SchilliX-ON / SchilliX-ON Mercurial / [b1d9a2] /usr/src/cmd/sh". Sourceforge.net . Получено 2015-07-02 .
  6. ^ IEEE и The Open Group (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.10.2010 .
  9. ^ Купер, Мендель, "Глава 37.3.2. Bash, версия 4.2", Advanced Bash-Scripting Guide , The Linux Documentation Project , получено 30 апреля 2015 г., "Bash теперь поддерживает escape-последовательности Unicode \u и \U."
  10. ^ Грир, Кен (1983-10-03). "Оболочка C с распознаванием/дополнением команд и имен файлов". Группа новостей : net.sources . Получено 29-12-2010 .
  11. ^ "FreeBSD Quickstart Guide for Linux® Users". Портал документации FreeBSD . Получено 2024-02-04 .
  12. ^ Сассман, Энн (1988-12-26). "Hamilton C Shell ускоряет разработку приложений OS/2" (PDF) . PC Week (1988-12-26 - 1989-01-02): 37 . Получено 2010-11-22 .
  13. ^ Гомес, Рон (1983-06-09). "Расписание конференции USENIX в Торонто (предварительное)". Группа новостей : net.usenix . Получено 29-12-2010 .
  14. ^ Харрис, Гай (1983-10-10). "csh question". Группа новостей : net.flame . Получено 29-12-2010 .
  15. ^ ab ksh93(1) страница руководства
  16. ^ ab Оболочкой по умолчанию в OpenBSD является ksh (pdksh).
  17. ^ Редактор командной строки zsh полностью настраивается и может обеспечивать поддержку мыши различными способами, например, с помощью mouse.zsh Стефана Шазеласа.
  18. ^ zsh(1) man-страница и подстраницы
  19. ^ zshbuiltins(1) страница руководства
  20. ^ Лефевр, Винсент (2015-02-11). "многозначные файловые дескрипторы". zsh-users (список рассылки) . Получено 2021-12-23 .
  21. ^ "#782228 - busybox sh не поддерживает многобайтовые символы при обработке строк - Журналы отчетов об ошибках Debian". Bugs.debian.org. 2015-04-09 . Получено 2015-07-02 .
  22. ^ "Словарь HP OpenVMS DCL". Архивировано из оригинала 2007-03-25 . Получено 2009-03-23 ​​.
  23. ^ Ларабель, Майкл (23.03.2021). «Авторские права на Plan 9 переданы Фонду, выпущен лицензионный код MIT». Phoronix . Получено 28.03.2021 .
  24. ^ Лильенкранц, Аксель (2005-05-17). "Рыба - дружелюбная интерактивная раковина" . Получено 2013-04-08 .
  25. ^ Соллер, Джереми (15.11.2015). "d79c8f511573fb7710abc63b4236a40022914520" . Получено 03.08.2019 .
  26. ^ "[Z Shell] Completion System". Zsh.sourceforge.io . Получено 2015-02-24 .
  27. ^ Это применимо только к зарезервированным словам и другим синтаксическим особенностям.
  28. ^ например, через сторонние сервисы, такие как zsh-autosuggestions
  29. ^ zsh не имеет подсветки синтаксиса, но существует сторонний проект, предлагающий эту возможность в качестве дополнения: zsh-syntax-highlighting
  30. ^ Пол, Маттиас Р. (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 . Получено 2009-03-29 .[1]
  31. ^ abcde Ширк, Джейсон (15.02.2018). «PSReadLine: реализация readline для PowerShell, вдохновленная bash» – через GitHub.
  32. ^ "Windows PowerShell 5.0". Архивировано из оригинала 17 сентября 2016 года . Получено 8 сентября 2016 года .
  33. ^ abcde "Интегрированная среда сценариев Windows PowerShell (ISE)". Microsoft Technet . Получено 2015-09-12 .
  34. ^ "Get-ChildItemColor". GitHub . 2022-03-18.
  35. ^ sdwheeler. "Write-Host (Microsoft.PowerShell.Utility) - PowerShell". docs.microsoft.com . Получено 2022-01-18 .
  36. ^ Push-Location (с псевдонимом pushd) и Pop-Location (с псевдонимом ) позволяют помещать в стеки местоположений и извлекать из них popdнесколько типов местоположений (каталоги файловых систем, организационные единицы Active Directory , узлы реестра Windows и т. д.).
  37. ^ Функция $host.ui.PromptForChoice позволяет использовать подсказку в стиле меню для выбора. Подсказка работает как из фоновых заданий, так и из удаленных сеансов, отображая подсказку меню на консоли управляющего сеанса.
  38. ^ Командлет Write-Progress записывает индикатор выполнения, который может показывать процент, оставшиеся секунды и т. д. Сообщения индикатора выполнения работают из фоновых заданий или удаленных сеансов в дополнение к интерактивным сценариям, т. е. индикатор выполнения отображается на консоли управляющего сеанса, а не как часть обычного вывода.
  39. ^ Командлет Show-Command проверяет определение команды и открывает интерактивное окно с именованным полем ввода для каждого параметра/переключателя.
  40. ^ ab "fish: Документация". Раздел Tab автодополнения . Получено 2016-01-10 .
  41. ^ "set_color - установить цвет терминала — документация fish-shell 3.1.2". fishshell.com . Архивировано из оригинала 2020-02-17 . Получено 2021-02-23 .
  42. ^ "abbr - управление сокращениями fish — документация fish-shell 3.1.2". fishshell.com . Получено 23.02.2021 .
  43. ^ sdwheeler. "Start-Process (Microsoft.PowerShell.Management) - PowerShell". learn.microsoft.com . Получено 21.10.2022 .
  44. ^ sdwheeler. "Start-Job (Microsoft.PowerShell.Core) - PowerShell". learn.microsoft.com . Получено 21.10.2022 .
  45. ^ "zsh: 20. Система завершения". Zsh.sourceforge.io. 2013-03-06 . Получено 2013-08-18 .
  46. ^ «Использование PowerShell для создания обязательных параметров». Blogs.technet.com. 2011-05-22 . Получено 2015-02-24 .
  47. ^ sdwheeler. "Что нового в PowerShell 5.0 ISE - PowerShell". docs.microsoft.com . Получено 25.07.2021 .
  48. ^ "GitHub - marlonrichert/zsh-autocomplete: 🤖 Автодополнение в реальном времени для Zsh. Асинхронное автодополнение с поиском по мере ввода". GitHub . Получено 25.07.2021 .
  49. ^ "Интерактивное использование — документация fish-shell 3.3.1". fishshell.com . Получено 25.07.2021 .
  50. ^ Хан, Харли (2009). Руководство Харли Хана по Unix и Linux. Бостон: McGraw-Hill Higher Education. ISBN 978-0-07-313361-4. OCLC  184828059.
  51. ^ Concurrent DOS 386 - Многопользовательская/Многозадачная Операционная Система - Руководство Пользователя (PDF) . Digital Research .
  52. ^ "pv(1): мониторинг хода передачи данных через канал - страница руководства Linux". Linux.die.net . Получено 24.02.2015 .
  53. ^ "fish: Tutorial". fishshell.com . Получено 21.10.2022 .
  54. ^ "zsh-users/zsh-syntax-highlighting: Подсветка синтаксиса в стиле Fish shell для Zsh". GitHub . Получено 2013-08-18 .
  55. ^ sdwheeler. "Модуль PSReadLine - PowerShell". learn.microsoft.com . Получено 2023-04-26 .
  56. ^ Представляем встроенную функцию Матеуса Гарсии
  57. ^ "Ash Variants". Архивировано из оригинала 2010-03-10 . Получено 2014-12-15 .
  58. ^ "Установить - Переменная среды - Windows CMD". SS64.com . Получено 2015-02-24 .
  59. ^ "Как выполнить цикл по массиву в пакетном режиме?". Stack Overflow . Получено 24.02.2015 .
  60. ^ Класс .NET System.Math определяет математические функции, которые можно использовать с помощью сочетания клавиш [Math] , например, [Math]::Sin для функции синуса .[2]
  61. ^ "Получить закрытие с GetNewClosure". devblogs.microsoft.com . 2009-03-27 . Получено 2022-09-12 .
  62. ^ "string - манипуляция строками — документация fish-shell 3.1.2". fishshell.com . Получено 2021-02-23 .
  63. ^ Справочник по языку оболочки Hamilton C: Подстановочные знаки и сопоставление с шаблоном, Hamilton Laboratories , получено 29.10.2013 , ... Неопределенный каталог: сопоставление любого количества уровней каталогов — от нуля до нескольких — столько, сколько потребуется, чтобы совпала остальная часть шаблона.
  64. ^ ab Seebach, Peter (21.11.2008). Beginning Portable Shell Scripting: From Novice to Professional. Голос эксперта в открытом исходном коде. Apress (опубликовано в 2008 г.). стр. 149. ISBN 9781430210436. Получено 17.09.2014 . Расширение скобок доступно в ksh93, pdksh, bash и zsh.
  65. ^ Zsh предлагает множество вариантов подстановки.
  66. ^ sdwheeler. "Операторы - PowerShell". docs.microsoft.com . Получено 2022-01-18 .
  67. ^ Братья, Хардин; Роусон, Том ; Конн, Рекс К .; Пол, Маттиас Р.; Дай, Чарльз Э.; Георгиев, Лучезар И. (27.02.2002). Онлайн-справка по 4DOS 8.00 .
  68. ^ "найти способ сделать 'psub --fifo' безопасным от взаимоблокировок · Проблема № 1040 · fish-shell/fish-shell". GitHub .
  69. ^ "О разделах данных". Technet.microsoft.com . Получено 24.02.2015 .
  70. ^ "Ubuntu Manpage: rc - shell". Manpages.ubuntu.com. 2003-07-17 . Получено 2015-02-24 .
  71. ^ Провос, Нильс. «Шифрование виртуальной памяти». Центр интеграции информационных технологий, Мичиганский университет . Получено 20.12.2012 .
  72. ^ "bash - GNU Bourne-Again SHell". read -s Тихий режим. Если ввод поступает с терминала, символы не отображаются.
  73. ^ "Использование командлета Read-Host". Добавив параметр -assecurestring, можно скрыть данные, введенные в командной строке
  74. ^ "Команда Linux / Unix: stty". Linux.about.com. Архивировано из оригинала 2015-02-25 . Получено 2015-02-24 .
  75. ^ "man sh - shell, стандартный интерпретатор командного языка / posix" (на французском). Pwet.fr. Архивировано из оригинала 2014-12-21 . Получено 2013-08-18 .
  76. ^ "Справочное руководство Bash: ограниченная оболочка". Gnu.org. 2010-12-28 . Получено 2013-08-18 .
  77. ^ "New-PSSessionConfigurationFile". Technet.microsoft.com . Получено 2013-08-18 .
  78. ^ Albing, Carl; Vossen, JP; Newham, Cameron (2007). Bash cookbook (1-е изд.). Севастополь, Калифорния, США: O'Reilly Media . ISBN 978-0-596-52678-8. [...] вряд ли можно назвать пассивным списком настроенных переменных. Он может запускать другие команды (например, cat) и использовать операторы if для изменения своего выбора. Он даже заканчивается повтором сообщения. Будьте осторожны, когда вы что-то отправляете, так как это широко открытая дверь в ваш скрипт.
  79. ^ "О разделах данных". Microsoft . Получено 2012-12-18 .

Внешние ссылки