Сравнение командных оболочек
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|

Командная оболочка — это интерфейс командной строки компьютера для взаимодействия и управления операционной системой .
Общие характеристики
[ редактировать ]Оболочка | Обычная среда | Обычно вызывается | Представлено | Независимый от платформы | Оболочка входа по умолчанию в | Оболочка сценария по умолчанию в | Лицензия | Доступность исходного кода | Пользовательский интерфейс | Поддержка мыши | Юникод Поддержка | ISO 8601 Поддержка | Перенаправление консоли | потока Перенаправление | Конфигурируемость | Скрипты запуска/выключения | Пакетные сценарии | Ведение журнала | Доступен как статически связанный, независимый однофайловый исполняемый файл. |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
оболочка Томпсона | UNIX | ш | 1971 | — | UNIX | UNIX | — | Да | Текстовый интерфейс командной строки | Нет | Нет | — | Да | — | — | — | — | — | — |
Оболочка Борна версии 1977 года | 7-е изд. UNIX | ш | 1977 | Да [1] | 7-е изд. UNIX | 7-е изд. ЮНИКС , | Собственный [2] | Да | Текстовый интерфейс командной строки | Нет | Нет | — | Да | Да ( произвольно ФДС [ нужна ссылка ] ) | Да (через переменные и опции) | Да ( .профиль ) | Да (функция Unix) | Нет | Да |
оболочки Bourne Текущая версия | Различные UNIX | ш | 1977 | Да [3] | SunOS-5.x, FreeBSD [4] | SunOS-5.x | CDDL [5] [ нужен лучший источник ] | Да | Текстовый интерфейс командной строки | Нет | Да [номер 1] [ нужен лучший источник ] | — | Да | Да ( произвольно ФДС [ нужна ссылка ] ) | Да (через переменные и опции) | Да ( .профиль ) | Да (функция Unix) | Да [номер 2] | Да |
POSIX- оболочка [6] | ПОСИКС | ш | 1992 [7] | — | — | ПОСИКС | — | — | Текстовый интерфейс командной строки | Нет | Да, если используется настроенной локалью | — | Да | Да ( произвольно ФДС [ нужна ссылка ] ) | Да (через переменные и опции) | Не указано ( .profile приведен в качестве примера) | Да (функция Unix) | Да | — |
Баш (v4) | ПОСИКС | баш, ш | 1989 [8] | Да | GNU , Linux (по умолчанию для root), macOS 10.3–10.14 | GNU , Linux , Haiku , macOS 10.3–10.14 | лицензия GPL | Да | Текстовый интерфейс командной строки | Нет | Да [9] [ нужен лучший источник ] | Да ( встроенная функция printf ) | Да | Да ( произвольно ФДС [ нужна ссылка ] ) | Да (через переменные и опции) | Да ( /etc/профиль , .bash_profile , .bash_login , .профиль , .bashrc ) | Да (функция Unix) | Да | Да |
csh | ПОСИКС | csh | 1978 | Да | СанОС | ? | БСД | Да | Текстовый интерфейс командной строки | Нет | Нет | ? | Да | Да ( стандартный ввод , стандартный вывод , стандартный вывод+stderr ) | Да (через переменные и опции) | Да ( ~/.cshrc , ~/.логин , ~/.выход ) | Да (функция Unix) | Да | Да |
ткш | ПОСИКС | ткш, кш | 1983 [10] | Да | FreeBSD (ранее по умолчанию для root), [11] ранее Mac OS X | ? | БСД | Да | Текстовый интерфейс командной строки | Нет | Да | ? | Да | Да ( стандартный ввод , стандартный вывод , стандартный вывод+stderr ) | Да (через переменные и опции) | Да ( /etc/csh.cshrc , /etc/csh.login , ~/.tcshrc , ~/.cshrc , ~/.история , ~/.логин , ~/.cshdirs ) | Да (функция Unix) | Да | Да |
Оболочка Гамильтона C | Win32 , ОС/2 | csh | 1988 [12] | Да (версия OS/2 больше не поддерживается) | Необязательный | Необязательный | Собственный | Нет | Текстовый интерфейс командной строки | Нет | Нет | Да (оператор отметки времени -t) | Да | Да ( стандартный ввод , стандартный вывод , стандартный вывод+stderr ) | Да (через переменные и опции) | Да (через login.csh, start.csh и logout.csh) | Да (опция командной строки) | Да | Да |
Скш | ПОСИКС | scsh | 1994 | Да | ? | ? | BSD -стиль | Да | ? | ? | ? | ? | ? | Да | ? | ? | ? | ? | Да |
кш (кш93т+) | ПОСИКС | кш | 1983 [13] [14] | Да | AIX , HP-UX | OpenSolaris | Общая общественная лицензия | Да | Текстовый интерфейс командной строки | Нет | Да | Да ( printf встроен с %(%F)Т [15] ) | Да | Да ( фдс до 9) [15] | Да (через переменные и опции) | Да (системные и пользовательские профиль и кшрк ) | Да (функция Unix) | Да | Да |
например | ПОСИКС | кш,ш | 1989? | Да | OpenBSD [16] | OpenBSD [16] | Общественное достояние | Да | Текстовый интерфейс командной строки | Нет | Нет | — | Да | Да ( произвольно ФДС [ нужна ссылка ] ) | Да (через переменные и опции) | Да ( /etc/профиль , .профиль ) | Да (функция Unix) | Да | Да |
zsh | ПОСИКС | zsh | 1990 | Да | Deepin , GoboLinux , Grml , macOS 10.15+, Kali 2020.4+ | Грмл , macOS 10.15+ | С -стиль | Да | Текстовый интерфейс командной строки | через дополнительный код [17] | Да | Да (различные внутренние функции, связанные с датой, с помощью %Ф strftime формат [18] и -я вариант для ФК встроенный [19] ) | Да | Да ( фдс до 9) [20] | Да (через переменные, параметры, функции, стили и т. д.) | Да (системные и пользовательские зшенв , зпрофиль , zshrczshrc злогин , выход из системы ) | Да (функция Unix) | Да | Да |
пепел | ПОСИКС | ш | 1989 | Да | Minix , BusyBox Системы на базе | NetBSD , Minix , BusyBox Системы на базе | BSD -стиль | Да | Текстовый интерфейс командной строки | Нет | Частичный (для BusyBox поддерживается при редактировании из командной строки, но не при обработке строк). [21] ) | — | Да | Да ( произвольно ФДС [ нужна ссылка ] ) | Да (через переменные и опции) | Да ( /etc/профиль , .профиль ) | Да (функция Unix) | Да | Да |
КПК | КП/М , МП/М | (КПК) | 1976 (1974) | Нет | CP/M (без входа), MP/M | КП/М , МП/М | Бесплатное ПО (изначально проприетарное) | Да (изначально с закрытым исходным кодом) | Текстовый интерфейс командной строки | Нет | Нет | Нет | Нет | Нет | Нет | Да (автоматически через $$$.СУБ ) | Частичный (только через внешний Команда SUBMIT для обновления $$$.СУБ ) | Нет | Да |
COMMAND.COM | ПРИНАДЛЕЖАЩИЙ | КОМАНДА | 1980 | Нет (доступны сторонние реализации, не привязанные к конкретному поставщику или версии DOS) | ДОС , Windows 95 , 98 , SE , Я | ДОС , Windows 95 , 98 , SE , Я | зависит от поставщика, например, MS - EULA , [номер 3] или BSD / GPL (бесплатные клоны) | Нет (кроме OpenDOS, DR-DOS, PTS/DOS и FreeDOS) | Текстовый интерфейс командной строки | Нет | Нет | Нет (кроме DR-DOS) | Да (через КОМАНДА con: или CTTY минус :) | Да ( стандартный ввод , стандартный вывод ) | Да (через параметры запуска и переменные среды, DR-DOS также поддерживает DIR /C /R команда переключения пользователя по умолчанию) | Да (автоматический \AUTOEXEC.BAT для основной оболочки или явно через /П , /P:имя_файла.bat или /K параметры запуска) | Да (через Команда ВЫЗОВ или /С и /K параметры запуска) | Нет | Да |
ОС/2 CMD.EXE | OS/2 , eComStation , ArcaOS | КМД | 1987 | Нет | OS/2 , eComStation , ArcaOS | OS/2 , eComStation , ArcaOS | IBM – лицензионное соглашение [номер 4] | Нет | Текстовый интерфейс командной строки | Нет | Нет | Нет | Нет | Да ( стандартный ввод , стандартный вывод , стандартное сообщение ) | ? | Частично (только через /K вариант запуска) | Да (через Команда ВЫЗОВ или /С и /K параметры запуска) | Нет | Да |
Windows CMD.EXE [номер 5] | Win32 | КМД | 1993 | Нет | Windows NT, 2000, XP, Сервер 2003, Vista | Windows NT, 2000, XP, Сервер 2003, Vista | МС – Лицензионное соглашение [номер 6] | Нет | Текстовый интерфейс командной строки | Нет | Частичный ( CHCP 65001 для UTF-8 , но аргументы программы по-прежнему закодированы в локальной кодовой странице) | Нет | Нет | Да | Да (через реестр, параметры запуска и переменные среды) | Да (автоматически через реестр или явно через /K вариант запуска) | Да (через Команда ВЫЗОВ или /С и /K параметры запуска) | Нет | Да |
4ДОС , НДОС | ДОС , Windows 95 , 98 , SE , Я | 4ДОС , НДОС | 1989 (1986) | Нет (не привязано к конкретному поставщику или версии ОС) | Необязательный | Необязательный | Лицензия MIT с ограничениями | Да | Текстовый интерфейс командной строки с TUI расширениями | Да (всплывающие окна, справочная система, Внутренняя переменная %_MOUSE , команда INKEY/M ) | Нет | Да | Да (через CTTY con: , за исключением ЯЩИК , РИСУНОК , РИСОВАЯ ЛИНИЯ , СПИСОК , ЭКРАН , СКРПУТ , ВЫБИРАТЬ , Команды VSCRPUT и раскраска файлов/каталогов) | Да ( стандартный ввод , стандартный вывод , стандартный , стандартный вывод+stderr ) | Да (через 4DOS.INI / Файл NDOS.INI , параметры запуска, переменные среды, команда SETDOS ) | Да (автоматический \AUTOEXEC.BAT для основной оболочки и 4СТАРТ.БТМ / 4START.BAT, а также 4ВЫХОД.БТМ / 4EXIT.BAT для любой оболочки или явно через /П , /P:каталог\имя_файла.ext или /K параметры запуска) | Да (через Команда ВЫЗОВ или /С и /K параметры запуска) | Да | Да |
4ОС2 | OS/2 , eComStation , ArcaOS | 4ОС2 | 1992 | Нет (не привязано к конкретной версии OS/2) | Необязательно (но в комплекте с ArcaOS) | Необязательный | Бесплатное ПО | Да | Текстовый интерфейс командной строки | Нет | Нет | Нет | Нет | Да ( стандартный ввод , стандартный вывод , стандартный , стандартный вывод+stderr ) | Да (через Файл 4OS2.INI , параметры запуска, переменные среды, команда SETDOS ) | Да (автоматически через 4СТАРТ.CMD / 4START.BTM, а также 4ВЫХОД.CMD / 4EXIT.BTM или явно через /K параметр start.cmd) | Да (через Команда ВЫЗОВ или /С и /K параметры запуска) | Да | ? |
ТСС (ранее 4NT) | Win32 | ТСС | 1993 | Нет (не привязано к конкретным версиям NT) | необязательный | необязательный | Условно-бесплатное ПО | Нет | Текстовый интерфейс командной строки ( Take Command : GUI ) | Да (консольная мышь, всплывающие окна, справочная система, %_XMOUSE , %_YMOUSE внутренние переменные, команда INKEY/M ) | Да | Да | Нет | Да ( стандартный ввод , стандартный вывод , стандартный , стандартный вывод+stderr ) | Да (через реестр, TCMD.INI / Файл 4NT.INI , параметры запуска, переменные среды, команда SETDOS ) | Да (автоматически через реестр и TCSTART / 4СТАРТ, а также TCEXIT / 4EXIT или явно через /K вариант запуска) | Да (через Команда ВЫЗОВ или /С и /K параметры запуска) | Да | Нет |
СМС ДКЛ [22] | OpenVMS | Автоматически для входа в систему/интерактивного процесса | 1977? | Да | СМС | СМС | Собственный, в комплекте с VMS | только по специальной лицензии | Текстовый интерфейс командной строки | с DECwindows/Motif | Да | Да, по крайней мере, по стандарту 1988 года. | Да | Да ( системный $вход , назначение вывода sys$ ) | Да (через символы, логические имена и параметры) | Да (SYS$MANAGER:SYLOGIN.COM и определяемый пользователем LOGIN.COM) | Да | Да | Нет |
PowerShell | .СЕТЬ , .NET Framework | PowerShell | 2006 | Да | Windows 10, 8, Сервер 2008, 7 [номер 7] | Windows 10, 8, Сервер 2008, 7 | С -стиль | Да | Графический интерфейс командной строки | Да | Да | Да | Да | Да | Да (через переменные и опции) | Да (%USERPROFILE%\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1) | Да (функция PowerShell) | Да | Нет |
RC | План 9 , POSIX | RC | 1989 | Да | План 9 , Версия 10 Unix | План 9 , Версия 10 Unix | МОЯ лицензия [23] | Да | Текстовый интерфейс командной строки | ? | Да | Да | ? | Да | Да (через опции) | Да ( $HOME/.rcrc ) | Да | ? | Да |
БинШелл | Ява | ? | 2005 | Да | ? | ? | LGPL | ? | ? | ? | Да | ? | ? | Да | ? | ? | ? | ? | Нет |
рыба | ПОСИКС | рыба | 2005 [24] | Да | ПризракBSD | ? | лицензия GPL | Да | Текстовый интерфейс командной строки | ? | Да | ? | ? | Да ( произвольно ФДС [ нужна ссылка ] ) | Да (через переменные среды и через веб-интерфейс через рыба_конфигурация ) | Да ( /etc/fish/config.fish и ~/.config/fish/config.fish ) | Да (функция Unix) | Да ( ~/.config/fish/fish_history* ) | ? |
Ион | Редокс , Линукс | ион | 2015 [25] | Да | Редокс | Редокс | С | Да | Текстовый интерфейс командной строки | ? | Да | Да | ? | Да ( произвольно ФДС [ нужна ссылка ] ) | Да (согласно спецификации базового каталога XDG) | Да ( ~/.config/ion/initrc ) | Да | Да ( ~/.local/share/ion/история ) | Частичный (не распространяется как отдельный исполняемый файл, но может быть собран как единое целое) |
Оболочка | Обычная среда | Обычно вызывается | Представлено | Независимый от платформы | Оболочка входа по умолчанию в | Оболочка сценария по умолчанию в | Лицензия | Доступность исходного кода | Пользовательский интерфейс | Поддержка мыши | Юникод Поддержка | ISO 8601 Поддержка | Перенаправление консоли | потока Перенаправление | Конфигурируемость | Скрипты запуска/выключения | Пакетные сценарии | Ведение журнала | Доступен как статически связанный, независимый однофайловый исполняемый файл. |
Интерактивные функции
[ редактировать ]Оболочка | Команда имя завершение | Путь завершение | Команда аргумент завершение | Подстановочный знак завершение | Команда история | Обязательный аргумент быстрый | Автоматический предложения | Цветной каталог списки | Текст выделение | Синтаксис выделение | История каталогов, стек или подобные функции | Скрытый каталог изменять | Autocorrection | Интегрированный среда | Фрагменты | Ценить быстрый | Меню/опции быстрый | Прогресс индикатор | Контекст чувствительный помощь | Команда строитель |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
оболочка Томпсона | Нет | Нет | Нет | Нет | Нет | Нет | Нет | ? | ? | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
Оболочка Борна версии 1977 года | Нет | Нет | Нет | Нет | Нет | Нет | Нет | ? | ? | Нет | Нет | Нет | Нет | Нет | Нет | Да | Нет | Внешний | Нет | Нет |
оболочки Bourne Текущая версия | Нет | Да [номер 8] | Нет | Нет | Да [номер 8] | Нет | Нет | Да | Да | Нет | Да (CDPATH, pushd, popd, dirs), CDPATH начиная с SVr4 | Нет | Нет | Нет | Нет | Да | Нет | Внешний | Нет | Нет |
POSIX- оболочка | Нет | Нет | Нет | Нет | Да | Нет | Нет | Да | Да | Нет | Да ( CDПУТЬ ) | Нет | Нет | Нет | Нет | Да | Нет | Внешний | Нет | Нет |
Баш (v4.0) | Да | Да | когда определено | Да [номер 9] | Да | Нет | Нет | Да | Да | Нет | Да ( CDPATH , толчок , попд ) | необязательный | Нет | Нет | Нет | Да | Да | Внешний | Нет | Нет |
csh | Да | Да | Нет | Нет | Да | Нет | Нет | Да | Да | Нет | Да ( путь к компакт-диску , толчок , попд ) | необязательный | Нет | Нет | Нет | Да | Нет | Внешний | Нет | Нет |
ткш | Да | Да | когда определено | Нет | Да | Нет | Нет | Да | Да | Нет | Да ( путь к компакт-диску , толчок , попд ) | необязательный | Да | Нет | Нет | Да | Нет | Внешний | Нет | Нет |
Оболочка Гамильтона C | Да | Да | Нет | Да | Да | Нет | Нет | Да | Да | Нет | Да ( путь к компакт-диску , толчок , попд ) | Нет | Нет | Нет | Нет | Да | Нет | Внешний | Нет | Нет |
Скш | Нет | Нет | Нет | Нет | Нет | Нет | Нет | ? | ? | Нет | Нет | Нет | Нет | Нет | Нет | Да | Нет | Внешний | Нет | Нет |
кш (кш93т+) | Да (расширяемый) | Да (расширяемый) | Нет | Нет | Да | Нет | Нет | Да | Да | Нет | Да ( cdpath , встроенный толчок , popd реализован как функции) | Нет | Нет | Нет | Нет | Да | Да | Внешний | Нет | Нет |
например | Да | Да | Нет | Нет | Да | Нет | Нет | Да | Да | Нет | Нет | Нет | Нет | Нет | Нет | Да | Да | Внешний | Нет | Нет |
zsh | Да | Да | когда определено | Да [26] | Да | Да [27] | Да (через прогнозируемый или определяемый пользователем [28] ) | Да | Да | Стороннее расширение [29] | Да | необязательный | Да | Нет | когда они определены (как виджеты ZLE) | Да | Да | Внешний | Да | Нет |
пепел | Нет | Нет | Нет | Нет | Да | Нет | Нет | Да | Да | Нет | Нет | Нет | Нет | Нет | Нет | Да | Да | Внешний | Нет | Нет |
КПК | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
COMMAND.COM | Нет | Нет | Нет | Нет | Нет [номер 10] [номер 11] | Нет | Нет | Нет | Нет (только в DR-DOS через %$ON% , %$OFF% , %$HEADER% , %$FOOTER% ) | Нет | Нет | Нет | Нет | Нет (только пошаговый режим с COMMAND /Y [30] ) | Нет | Нет | Нет (только через внешний CHOICE , в DR-DOS также через ВЫКЛЮЧАТЕЛЬ / внутренние команды DRSWITCH ) | Нет | Нет | Нет |
ОС/2 CMD.EXE | Да | Да | Нет | Нет | Да | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
Окна CMD.EXE | частичный | частичный | Нет | Нет | Да ( Ф8 ) | Нет | Нет | Нет | Нет | Нет | Да ( ПУШД , ПОПД ) | Нет | Нет | Нет | Нет | Да (через SET/P команда ) | Нет | Нет | Нет | Нет |
4DOS | Да | Да | Да | Да | Да [номер 12] [номер 13] | Нет | Нет | Да | Нет | Нет | (через всплывающее окно, расширенный поиск в каталоге, CDPATH , ПУШД , ПОПД , ДИРИСТОРИЯ , ДИРС , CDD , CD – команды и %@DIRSTACK[] функция) | Да | Нет | Да | Нет | Да (через ВХОД , ИНКИ и команды ESET ) | Да (через @SELECT[] и косвенно через комбинацию ИНКИ , ВХОД , команды ПЕРЕКЛЮЧЕНИЯ ) | Нет | Да | Нет (кроме Команда OPTION для директив INI-файла) |
4ОС2 | ? | ? | ? | ? | Да | Нет | Нет | Да | Нет | Нет | Да | Да | Нет | ? | Нет | ? | ? | Нет | Да | Нет |
ТСС (ранее 4NT) | Да | Да | Да | Да | Да | Нет | Нет | Да | Нет | Да | (через всплывающее окно, расширенный поиск в каталоге, CDPATH , ПУШД , ПОПД , ДИРИСТОРИЯ , ДИРС , CDD , CD – команды и %@DIRSTACK[] функция) | Да | Нет | Да | Нет | Да (через ВХОД , ИНКИ , ESET и SET/P команды ) | Да (через @SELECT[] и косвенно через комбинацию ИНКИ , ВХОД , команды ПЕРЕКЛЮЧЕНИЯ ) [номер 14] | Нет | Да | Нет |
PowerShell | Да | Да | Да | Да | Да ( Ф8 ) | Да | Да; через PSReadLine [31] модуль (входит в состав v5.0 [32] ) или в ISE [33] | Стороннее расширение [34] | Да [35] | Да; через PSReadLine [31] модуль (входит в состав v5.0) или в ISE [33] | Да (несколько стопок; несколько типов локаций; [36] Нажмите-Местоположение , Поп-локация ) | Да, в PSReadLine [31] модуль | Да, в ИСЭ [33] | Да, в ИСЭ [33] | Да | Да [37] | Да [38] | Да, в ИСЭ [33] | всплывающее окно [39] | Да, в ИСЭ [33] |
RC | Да [номер 15] | Да [номер 15] | Нет | Нет | Да [номер 15] | Нет | Нет | Нет | ? | Нет | Нет | Нет | Нет | Нет | Нет | ? | Нет | Нет | Нет | Нет |
БинШелл | Да | Да | Нет | Нет | Нет | Нет | Нет | ? | ? | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
СМС ДКЛ | Схема минимальной уникальности | Нет | Нет | Нет | Да | Да | Нет | ? | ? | Нет | Нет | Нет | Нет | Нет | Нет | Да | Нет | Нет | Нет | Нет |
рыба | Да | Да | когда определено или анализируется на страницах руководства [40] | Да [40] | Да | Нет | Да | Да | Да (доступен встроенный помощник [41] ) | Да | Да | Да | Да | Да [номер 16] | Да, используя сокращения команда | Да | (с помощью fish_config команда [42] ) | Нет | Нет | Нет |
Оболочка | Команда имя завершение | Путь завершение | Команда аргумент завершение | Подстановочный знак завершение | Команда история | Обязательный аргумент быстрый | Автоматический предложения | Цветной каталог списки | Текст выделение | Синтаксис выделение | История каталогов, стек или подобные функции | Скрытый каталог изменять | Autocorrection | Интегрированный среда | Фрагменты | Ценить быстрый | Меню/опции быстрый | Прогресс индикатор | Контекст чувствительный помощь | Команда строитель |
Фоновое выполнение
[ редактировать ]Фоновое выполнение позволяет оболочке запускать команду без взаимодействия с пользователем в терминале, освобождая командную строку для дополнительной работы с оболочкой. Оболочки POSIX и другие оболочки Unix допускают фоновое выполнение с помощью символа & в конце команды. В PowerShell Start-Process
[43] или Start-Job
[44] можно использовать командлеты.
Завершения
[ редактировать ]
Функции завершения помогают пользователю вводить команды в командной строке, находя и предлагая подходящие слова для неполных команд. Завершение обычно запрашивается нажатием клавиши завершения (часто Tab ↹ ключ).
Дополнение имени команды — это завершение имени команды. В большинстве оболочек команда может быть программой в пути к команде (обычно $PATH
), встроенная команда, функция или псевдоним.
Завершение пути — это завершение пути к файлу, относительного или абсолютного.
Завершение с помощью подстановочных знаков — это обобщение завершения пути, при котором выражение соответствует любому количеству файлов с использованием любого поддерживаемого синтаксиса для сопоставления файлов .
Завершение переменной — это завершение имени имени переменной ( переменная среды или переменная оболочки).Bash, zsh и fish имеют завершение для всех имен переменных. PowerShell имеет дополнения для имен переменных среды, имен переменных оболочки и — из пользовательских функций — имен параметров.
Завершение аргументов команды — это завершение аргументов конкретной команды. Существует два типа аргументов: именованные и позиционные. Именованные аргументы, часто называемые опциями , идентифицируются по имени или букве, предшествующей значению, тогда как позиционные аргументы состоят только из значения. Некоторые оболочки допускают завершение имен аргументов, но немногие поддерживают завершение значений.
Bash, zsh и fish предлагают завершение имени параметра через определение, внешнее по отношению к команде, которое распространяется в отдельном файле определения завершения. Для завершения имени/значения параметра команды эти оболочки предполагают завершение пути/имени файла, если для команды не определено завершение. Завершение можно настроить так, чтобы оно предлагало завершение путем вызова функции оболочки. [45] Оболочка fish дополнительно поддерживает анализ страниц руководства для извлечения информации о параметрах, которую можно использовать для улучшения дополнений/предложений. В PowerShell все типы команд (командлеты, функции, файлы сценариев) по своей сути предоставляют данные об именах, типах и допустимых диапазонах/списках значений для каждого аргумента. Эти метаданные используются PowerShell для автоматической поддержки имени аргумента и завершения значения для встроенных команд/функций, определяемых пользователем команд/функций, а также для файлов сценариев. Отдельные командлеты также могут определять динамическое завершение значений аргументов, при этом значения завершения вычисляются динамически в работающей системе.
История команд
[ редактировать ]Пользователи оболочки могут вводить что-то похожее на то, что они вводили раньше. Поддержка истории команд означает, что пользователь может вызвать предыдущую команду в редакторе командной строки и отредактировать ее перед вводом потенциально измененной команды.
Оболочки, поддерживающие завершение, также могут иметь возможность напрямую завершить команду из истории команд, учитывая частичную/начальную часть предыдущей команды.
Большинство современных оболочек поддерживают историю команд. Оболочки, которые поддерживают историю команд в целом, также поддерживают завершение из истории, а не просто вызов команд из истории. Помимо обычного текста команды, PowerShell также записывает время начала и окончания выполнения, а также статус выполнения в истории команд.
Обязательный аргумент
[ редактировать ]Обязательные аргументы/параметры — это аргументы/параметры, которым должно быть присвоено значение при вызове команды, функции или файла сценария. Оболочка, которая может перед вызовом определить, что отсутствуют обязательные значения, может помочь интерактивному пользователю, запрашивая эти значения вместо того, чтобы допустить сбой команды. Наличие запроса оболочки для отсутствующих значений позволит автору сценария, команды или функции пометить параметр как обязательный вместо создания кода сценария, который либо запрашивает пропущенные значения (после определения того, что он запускается в интерактивном режиме), либо завершается ошибкой с сообщение.
PowerShell позволяет командам, функциям и сценариям определять аргументы/параметры как обязательные . Оболочка перед вызовом определяет, есть ли какие-либообязательные аргументы/параметры, которые не были связаны, а затем запрашивают у пользователя значения (значения) перед фактическим вызовом. [46]
Автоматические предложения
[ редактировать ]
Оболочки с автоматическими предложениями отображают необязательные дополнения командной строки по мере ввода пользователем. PowerShell Shell изначально и Fish поддерживают эту функцию; нажав кнопку Tab ↹ ключ вставляет завершение.
Реализации этой функции могут различаться в разных оболочках; например, PowerShell [47] и зш [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]
Автокоррекция
[ редактировать ]
Если командная строка не соответствует напрямую команде или аргументам, проверка орфографии может автоматически исправить типичные ошибки ввода (например, чувствительность к регистру , пропущенные буквы). Есть два подхода к этому; оболочка может либо предложить возможные исправления при вызове команды, либо это может произойти раньше в рамках завершения или автопредложения.
Оболочки tcsh и zsh имеют дополнительную функцию проверки/исправления орфографии при вызове команды.
Фиш выполняет автокоррекцию после завершения и самовнушения. Таким образом, эта функция не мешает набирать всю команду и нажимать Enter, тогда как широкое использование клавиш табуляции и клавиш со стрелками вправо делает оболочку в основном нечувствительной к регистру.
PSReadLine [31] Модуль PowerShell (поставляемый с версией 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-последовательностей, позволяющих управлять выделением текста, его изменением или раскрашиванием для отображения или печати в таких командах, как ТИП . Все упомянутые процессоры командной строки поддерживают %$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 Shell является встроенная подсветка синтаксиса. По мере ввода пользователем текст окрашивается, чтобы показать, является ли введенная команда допустимой командой или нет (исполняемый файл существует, и у пользователя есть разрешения на его запуск), и действительный файл пути подчеркнуты. [53]
Независимый проект предлагает подсветку синтаксиса в качестве дополнения к Z Shell (zsh). [54] Однако это не часть оболочки.
PowerShell обеспечивает настраиваемую подсветку синтаксиса в командной строке с помощью PSReadLine. [31] модуль. Этот модуль можно использовать с PowerShell v3.0+ и входит в состав версии v5.0 и более поздних. Он загружается по умолчанию в хост командной строки «powershell.exe», начиная с версии 5.0. [55]
Take Command Console (TCC) предлагает подсветку синтаксиса в интегрированной среде.
Контекстно-зависимая справка
[ редактировать ]4DOS, 4OS2, 4NT / Take Command Console и PowerShell (в PowerShell ISE) ищут контекстно-зависимую справочную информацию, когда F1 нажимается.
Zsh предоставляет различные формы настраиваемой контекстно-зависимой помощи как часть своей программы. помощи при запуске , виджет _complete_help или в дополнении опций некоторых команд.
Рыбная оболочка предоставляет краткое описание флагов команды во время завершения вкладки.
Возможности программирования
[ редактировать ]Оболочка | Функции | Обработка исключений | Поиск и замена при замене переменных | Arithmetic | Плавающая точка | Библиотека математических функций | Линейные массивы или списки | Ассоциативные массивы | Лямбда-функции | функция оценки | Генерация псевдослучайных чисел | Байт-код |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Оболочка Борна версии 1977 года | Нет | Да (через ловушка ) | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Да | Нет | Нет |
оболочки Bourne Текущая версия | Да, начиная с СВР2 | Да (через ловушка ) | Нет | Да [номер 8] | Нет | Нет | Нет | Нет | Нет | Да | Нет | Нет |
POSIX- оболочка | Да | Да (через ловушка ) | Нет | Да | Нет | Нет | Нет | Нет | Нет | Да | Нет | Нет |
Баш (v4.0) | Да | Да (через ловушка ) | Да (через синтаксис ${// }) | Да | Нет | Нет | Да | Да | Нет | Да | Да ( $СЛУЧАЙНО ) | Нет |
csh | Нет | Нет | Да (через $var:s/// синтаксис ) | Да | Нет | Нет | Да | Нет | Нет | Да | Нет | Нет |
ткш | Работа в процессе [56] | Нет | Да (через $var:s/// синтаксис ) | Да | Нет | Нет | Да | Нет | Нет | Да | Нет | Нет |
Оболочка Гамильтона C | Да | Нет | Да (через $var:s/// синтаксис ) | Да | Да | Да | Да | Нет | Нет | Да | Да (случайная полезность) | Нет |
Скш | Да | ? | Да (через строковые функции и регулярные выражения) | ? | ? | ? | Да | ? | Да | Да | Да (случайное целое число, случайное действительное число) | Да (компилятор — виртуальная машина Scheme48, через сшвм ) |
кш (кш93т+) | Да | Да (через ловушка ) | Да (через синтаксис ${// } и встроенные команды) | Да | Да | Да | Да | Да | Нет | Да | Да ( $СЛУЧАЙНО ) | Да (компилятор называется шкомп ) |
например | Да | Да (через ловушка ) | Нет | Да | Нет | Нет | Да | Нет | Нет | Да | Да ( $СЛУЧАЙНО ) | Нет |
zsh | Да | Да | Да (через ${:s// } и синтаксис ${// }) | Да | Да | Да ( zsh/mathfunc module) | Да | Да | Нет | Да | Да ( $СЛУЧАЙНО ) | Да (встроенный zcompile команда ) |
пепел | Да | Да (через ловушка ) | Нет | Да (с 1992 г.) [57] | Нет | Нет | Нет | Нет | Нет | Да | Нет | Нет |
КПК | Нет | ? | Нет | Нет | ? | ? | Нет | Нет | Нет | Нет | Нет | Нет |
COMMAND.COM | Нет | Частичный (только автоматический сбой (через КОМАНДА /F (или /N в некоторых версиях DR-DOS)) | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
ОС/2 CMD.EXE | Нет | Нет | Нет | ? | Нет | Нет | ? | Нет | Нет | Нет | Нет | Нет |
Windows CMD.EXE | Да (через ЗВОНИТЕ :лейбл ) | Нет | Да (через SET % имя_переменной : выражения синтаксис ) | Да (через НАБОР /А ) [58] | Нет | Нет | Да (через НАБОР [59] ) | Нет | Нет | Нет | Да ( %случайный% ) | Нет |
4DOS | Да | Да (через Команда ВКЛ , опционально 4DOS/Ф ) | Да (через %@Replace[...] функция) | Да (через НАБОР /А ) | ? | ? | Да (через диапазоны, списки включения, @ списки файлов и ЗА команду) | Нет | Нет | Да | Да ( %@Random[...] функция) | Да (через команда BATCOMP ) |
4ОС2 | ? | ? | ? | ? | ? | ? | ? | ? | Нет | Да | Да ( %@Random[...] функция) | ? |
ТСС (ранее 4NT) | Да | Да (через ПО и различные ... команды МОНИТОРА) | Да (через %@Replace[...] функция) | Да (через НАБОР /А ) | ? | ? | Да (через диапазоны, списки включения, @ списки файлов и ЗА команду) | ? | Нет | Да | Да ( %@Random[...] функция) | Да (через команда BATCOMP ) |
PowerShell | Да | Да (попробуй-поймай-наконец-то) | Да ( -заменить оператор) | Да | Да | [Математика] класс [60] | Да | Да | Да [61] | Да | Да | Да, автоматический |
RC | Да | Да | Нет | Да | ? | ? | Да | ? | Нет | Да | Нет | Нет |
БинШелл | Да | Да | ? | Да | ? | ? | Да | Да | Нет | Да | Да | Да |
СМС ДКЛ | Да | Да | Нет | Да | Нет | да, для скомпилированных программ | Да | Нет | Нет | Нет | Нет | Нет |
рыба | Да | Да (через ловушка ) | Да, через строковая встроенная команда [62] | Да | Да | Да | Да | Нет | Нет | Да | Да ( случайный ) | Нет |
Обработка строк и сопоставление имен файлов
[ редактировать ]Оболочка | Обработка строк | Чередование ( расширение скобок ) | Сопоставление с образцом ( регулярные выражения встроенные ) | Сопоставление с образцом ( подстановка имен файлов ) | Квалификаторы подстановки (генерация имени файла на основе атрибутов файла) | Рекурсивная подстановка (генерация файлов из подкаталогов любого уровня) |
---|---|---|---|---|---|---|
Оболочка Борна версии 1977 года | ? | Нет | Нет | Да ( * , ? , [...] ) | Нет | Нет |
оболочки Bourne Последняя версия | Частичное (удаление префиксов и суффиксов при расширении переменных) | Нет | Нет | Да ( * , ? , [...] ) | Нет | Нет |
POSIX- оболочка | Частичное (удаление префиксов и суффиксов при расширении переменных) | Нет | Нет | Да ( * , ? , [...] ) | Нет | Нет |
Баш (v4.0) | Частичное (удаление префиксов и суффиксов при расширении переменных) | Да | Да | Да ( * , ? , [...] , {... }) | Нет | Да ( **/... ) |
csh | Да (:s и другие операторы редактирования) | Да | Нет | Да | Нет | Нет |
ткш | Да (:s и другие операторы редактирования) | Да | Да | Да | Нет | Нет |
Оболочка Гамильтона C | Да (:s и другие операторы редактирования + substr, strlen, strindex, printf,verse, Upper, Lower, Concat и другие встроенные функции) | Да | Нет | Да | Нет | Да (через неопределенный каталог "..." подстановочный знак [63] ) |
Скш | ? | ? | Да | Да | Нет | Нет |
кш (кш93т+) | Частичное (удаление префикса, суффикса и замена строки в расширении переменной) | Да [64] | Да | Да ( * , ? , [...] ) | Нет | Да (с set -G , никаких подписок по символическим ссылкам) |
например | ? | Да [64] | Нет | Да | Нет | Нет |
zsh | Да (посредством обработки переменных: например, извлечение подстроки, различные преобразования посредством расширения параметров) | Да | Да | Да ( * , ? , [...] , расширенное подстановка [65] ) | Да | Да ( **/... или ***/... для перехода по символическим ссылкам) |
пепел | ? | ? | Нет | Да | Нет | Нет |
КПК | Нет | Нет | Нет | Нет | Нет | Нет |
COMMAND.COM | Нет | Нет | Нет | Да ( * , ? ) | Нет | Нет |
ОС/2 CMD.EXE | Нет | Нет | Нет | Да ( * , ? ) | Частичный (только в DIR /A:... команда) | Нет |
Windows CMD.EXE | Частичный (только через ДЛЯ /F и НАБОР /А ) | Нет | Нет [номер 17] | Да ( * , ? ) | Частичный (только в DIR /A:... команда) | Да (через FOR /R или, если возможно, косвенно через /S опция подкаталога) |
4DOS | Да (через переменные функции %@...[] , расширенная обработка переменных среды, различные строковые команды и ДЛЯ /F и НАБОР /А ) | Нет | Нет | Да ( * , ? , [...] , расширенные подстановочные знаки , Всплывающая команда ВЫБРАТЬ ) | Да (через /A:... атрибут и /I"..." параметры описания и /[S...] размер, /[Т...] время, /[Д...] дата и /[!...] диапазоны исключения файлов) | Да (через Команда FOR /R или косвенно через ГЛОБАЛЬНАЯ команда или, если возможно, /S опция подкаталога) |
4ОС2 | ? | Нет | Нет | ? | ? | ? |
ТСС (ранее 4NT) | Да (через переменные функции %@...[] , расширенная обработка переменных среды, различные строковые команды и ДЛЯ /F и НАБОР /А ) | Нет | Да | Да ( * , ? , [...] , расширенные подстановочные знаки , Всплывающая команда ВЫБРАТЬ ) | Да (через /A:... атрибут и /I"..." параметры описания и /[S...] размер, /[Т...] время, /[Д...] дата, /[О...] владелец, и /[!...] диапазоны исключения файлов) | Да (через Команда FOR /R или косвенно через ГЛОБАЛЬНАЯ команда или, если возможно, /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) | Оператор диапазона для чисел [66] | Да (полная поддержка регулярных выражений) [номер 18] | Да ( * , ? , [...] ) | ? | ? |
RC | ? | ? | Нет | Да | Нет | Нет |
БинШелл | ? | ? | Да | ? | ? | ? |
СМС ДКЛ | Да | Нет | Нет | Да | Нет | Да (через [СУБДИРТ...] ) |
рыба | Да (встроенная строковая функция) | Да | да (через встроенный совпадение строк и функции замены строк ) | Да ( * , ? , {... }) | Нет | Да ( **/... ) |
Межпроцессное взаимодействие
[ редактировать ]Оболочка | Трубы | Замена команды | Замена процесса | Подоболочки | TCP / UDP- соединения в виде потоков | Укладка нажатий клавиш |
---|---|---|---|---|---|---|
Оболочка Борна | байты одновременно | Да | Нет | Да | Нет | Н/Д [номер 19] |
POSIX- оболочка | байты одновременно | Да | Нет | Да | Нет | Н/Д [номер 19] |
Баш (v4.0) | байты одновременно | Да | Да (если система поддерживает /dev/fd/ ⟨n⟩ или именованные каналы) | Да | Да (только клиент) | Н/Д [номер 19] |
csh | байты одновременно | Да | Нет | Да | Нет | Н/Д [номер 19] |
ткш | байты одновременно | Да | Нет | Да | Нет | Н/Д [номер 19] |
Оболочка Гамильтона C | байты одновременно | Да | Нет | Да | Нет | ? |
Скш | текст | ? | ? | ? | Да | Н/Д [номер 19] |
кш (кш93т+) | байты (могут содержать сериализованные объекты, если print -C используется) одновременно | Да ( $(...) и ${<пробел>...; }) | Да (если система поддерживает /dev/fd/ ⟨n⟩ ) | Да | Да (и поддержка SCTP, только клиент) | Н/Д [номер 19] |
например | байты одновременно | Да | Нет | Да | Нет | Н/Д [номер 19] |
zsh | байты одновременно | Да | Да | Да | Да (клиент и сервер, но только TCP) | Н/Д [номер 19] |
пепел | байты одновременно | Да | Нет | Да | Нет | Н/Д [номер 19] |
КПК | Нет | Нет | Нет | Нет | Нет | Нет |
COMMAND.COM | текстовые последовательные временные файлы | Нет | Нет | Частичный (только в многозадачном режиме DR-DOS через КОМАНД.КОМ/Т ) | Нет | Нет |
ОС/2 CMD.EXE | текст одновременно | Нет | Нет | ? | Нет | Нет |
Windows CMD.EXE | текст одновременно | Да (через FOR/F Команда ) | Нет | Да (обратный апостроф: ` в FOR /F использовать обратноq ) | Нет | Нет |
4DOS | текстовые последовательные временные файлы | Да (через FOR/F Команда ) | ? | Частично (через %@EXECSTR[] и %@EXEC[] или через НАБОР /М , ESET/M и ОТМЕНА /М и %@ВЛАДЕЛЕЦ[...] ) | Нет | Да (через КЛАВИАТУРА и КСТАК ) [67] |
4ОС2 | текст одновременно | ? | ? | ? | Нет | Да (через КЛАВИАТУРА ) |
ТСС (ранее 4NT) | текст одновременно | Да (через FOR/F Команда ) | ? | Частично (через %@EXECSTR[] и %@EXEC[] ) | Да (через ФТП , ТФТП , FTPS , СФТП , HTTP , HTTPS и IFTP , только клиент) | Да (через КЛАВИАТУРА ) |
PowerShell | объекты одновременно | Да | Нет | Да | Да | ? |
RC | текст одновременно | Да | Да (через: <{cmd }, если система поддерживает /dev/fd/ ⟨n⟩ ) | Да | Нет | ? |
БинШелл | не поддерживается | ? | ? | ? | Да | ? |
СМС ДКЛ | текст (через команда ТРУБА ) | Да | Нет | Да (спаун) | Да (только TCP сервера) | Нет |
рыба | байты одновременно | Да ( ... ) | Нет (сломанный) [68] | Нет | Нет | Н/Д [номер 19] |
Укладка нажатий клавиш
[ редактировать ]В ожидании того, что данное запущенное приложение может принять в качестве ввода с клавиатуры, пользователь оболочки инструктирует оболочку сгенерировать последовательность имитированных нажатий клавиш, которые приложение будет интерпретировать как ввод с клавиатуры от интерактивного пользователя. Отправляя последовательности нажатий клавиш, пользователь может иметь возможность указать приложению выполнить действия, которые было бы невозможно достичь с помощью перенаправления ввода или которые иным образом потребовали бы интерактивного пользователя. Например, если приложение действует на нажатия клавиш, которые не могут быть перенаправлены, различает обычные и расширенные клавиши, очищает очередь перед принятием нового ввода при запуске или при определенных условиях или потому, что оно вообще не считывает стандартный ввод. Стекирование нажатий клавиш обычно также обеспечивает средства для управления временем отправки имитированных клавиш или задержки новых клавиш до тех пор, пока очередь не будет очищена и т. д. Оно также позволяет имитировать клавиши, которых нет на клавиатуре (поскольку соответствующие клавиши физически не существуют или поскольку используется другая раскладка клавиатуры), и поэтому пользователь не сможет вводить текст.
Функции безопасности
[ редактировать ]![]() | В этом разделе может содержаться информация, не важная и не относящаяся к теме статьи. ( Июль 2014 г. ) |
Оболочка | Запрос безопасного пароля (пароль) | Пароли файлов/каталогов | Разрешение на выполнение | Ограниченное подмножество оболочки | Подмножество безопасных данных |
---|---|---|---|---|---|
Оболочка Борна | с помощью Стти [номер 20] | ? | Н/Д [номер 21] | Да | Нет |
POSIX- оболочка | с помощью Стти [номер 20] | ? | Н/Д [номер 21] | Нет | Нет |
Баш (v4.0) | читать -с | ? | Н/Д [номер 21] | Да | Нет |
csh | с помощью Стти [номер 20] | ? | Н/Д [номер 21] | Да | Нет |
ткш | с помощью Стти [номер 20] | ? | Н/Д [номер 21] | Да | Нет |
Оболочка Гамильтона C | Нет | Нет | Нет | Нет | Нет |
Скш | с помощью Стти [номер 20] | ? | Н/Д [номер 21] | Нет | Нет |
кш (кш93т+) | с помощью Стти [номер 20] | ? | Н/Д [номер 21] | Да | Нет |
например | с помощью Стти [номер 20] | ? | Н/Д [номер 21] | Да | Нет |
zsh | читать -с | ? | Н/Д [номер 21] [номер 22] | Да | Нет |
пепел | с помощью Стти [номер 20] | ? | Н/Д [номер 21] | Да | Нет |
КПК | Нет | Нет | Нет | Нет | Нет |
COMMAND.COM | Частичный (только под DR-DOS, запрашивает пароль, если файл/каталог защищен) | Частичный (только под DR-DOS через \dirname;dirpwd\имя_файла; синтаксис filepwd) [номер 23] | Частичный (только под DR-DOS, если файлы защищены паролем на чтение и/или выполнение) [номер 24] | Нет | Нет |
ОС/2 CMD.EXE | Нет | Нет | Нет | Нет | Нет |
Windows CMD.EXE | Нет | Нет | Нет | Нет | Нет |
4DOS | Да (через ВВОД /P или ИНКИ /П ) [номер 25] | Частичный (только под DR-DOS через \имя_каталога;;dirpwd\имя_файла;; синтаксис filepwd) [номер 23] | Частичный (только под DR-DOS, если файлы защищены паролем на чтение и/или выполнение) [номер 24] | Нет | Нет |
4ОС2 | ? | Нет | Нет | Нет | Нет |
ТСС (ранее 4NT) | Да (через ВВОД /П , ИНКЕЙ /P или ЗАПРОС /P ) [номер 25] | Нет | Нет | Нет | Нет |
PowerShell | Да [номер 26] | Нет | Нет [номер 27] | Да [номер 28] | Да [69] |
RC | с помощью Стти [номер 20] | ? | Н/Д [номер 21] | Да [70] | Нет |
БинШелл | ? | ? | ? | ? | ? |
СМС ДКЛ | Да | Нет | Да | Да | Нет |
рыба | читать -с | ? | Н/Д [номер 21] [номер 22] | Да (через рыба -л ) | ? |
Безопасная подсказка
[ редактировать ]Некоторым сценариям оболочки необходимо запрашивать у пользователя конфиденциальную информацию, такую как пароли , личные цифровые ключи, PIN-коды или другую конфиденциальную информацию. Конфиденциальный ввод не должен возвращаться на экран/устройство ввода, где его могут получить неуполномоченные лица. Также следует избегать представления конфиденциальной информации в памяти в виде открытого текста, поскольку это может привести к компрометации информации, например, через файлы подкачки, дампы ядра и т. д. [71]
Оболочки bash, zsh и PowerShell предлагают эту особенность. [72] [73] Оболочки, которые не предлагают это как специальную функцию, все равно могут отключить эхо другими способами. Оболочки, выполняющиеся в операционной системе Unix/Linux, могут использовать stty внешняя команда для включения/выключения отображения вводимых символов. [74] Помимо отсутствия повторного отображения символов, PowerShell -AsSecureString
Опция также шифрует вводимый символ посимвольно во время процесса ввода, гарантируя, что строка никогда не будет представлена в памяти в незашифрованном виде, где она может быть скомпрометирована посредством дампов памяти, сканирования, транскрипции и т. д.
Разрешение на выполнение
[ редактировать ]Некоторые операционные системы определяют разрешение на выполнение , которое может быть предоставлено пользователям/группам для файла, если сама файловая система поддерживает это.
В системах Unix разрешение на выполнение контролирует доступ к вызову файла как программы и применяется как к исполняемым файлам, так и к сценариям.Поскольку разрешение применяется в загрузчике программы , ни от вызывающей программы, ни от вызываемой программы не требуется никаких обязательств по обеспечению разрешения на выполнение – это также относится к оболочкам и другим программам-интерпретаторам.Такое поведение определяется библиотекой POSIX C , которая используется для взаимодействия с ядром. POSIX указывает, что exec
семейства функций завершится с ошибкой EACCESS (отказано в разрешении), если файлу отказано в разрешении на выполнение (см. – Справочник по системным интерфейсам, Единая спецификация UNIX , версия 4 от The Open Group ).
Разрешение на выполнение применяется только при непосредственном запуске сценария. Если сценарий вызывается в качестве аргумента интерпретирующей оболочки, он будет выполнен независимо от того, имеет ли пользователь разрешение на выполнение этого сценария.
Хотя Windows также указывает разрешение на выполнение , ни одна из специфичных для Windows оболочек не блокирует выполнение сценария, если разрешение не было предоставлено.
Ограниченное подмножество оболочки
[ редактировать ]Несколько оболочек можно запустить или настроить для запуска в режиме, в котором пользователю доступен только ограниченный набор команд и действий. безопасности Хотя это и не граница (блокируется команда, обращающаяся к ресурсу, а не сам ресурс), тем не менее, это обычно используется для ограничения действий пользователей перед входом в систему.
Ограниченный режим является частью спецификации POSIX для оболочек, и большинство оболочек Linux/Unix поддерживают такой режим, в котором некоторые встроенные команды отключены и могут быть вызваны только внешние команды из определенного каталога. [75] [76]
PowerShell поддерживает ограниченные режимы через файлы конфигурации сеанса или конфигурации сеанса. Файл конфигурации сеанса может определять видимые (доступные) командлеты, псевдонимы, функции, поставщики путей и многое другое. [77]
Подмножество безопасных данных
[ редактировать ]Сценарии, вызывающие другие сценарии, могут представлять угрозу безопасности, поскольку потенциально могут выполнять внешний код в контексте пользователя, запустившего исходный сценарий. Сценарии обычно разрабатываются таким образом, чтобы включать сценарии исключительно из известных безопасных мест; но в некоторых случаях, например, когда пользователю предлагается настроить среду или загрузить локализованные сообщения, в сценарий может потребоваться включить другие сценарии/файлы. [78] Одним из способов устранения этого риска является предоставление оболочке безопасного подмножества команд, которые могут выполняться включенным сценарием.
PowerShell Разделы данных могут содержать константы и выражения с использованием ограниченного подмножества операторов и команд. [79] Разделы данных PowerShell используются, когда, например, локализованные строки необходимо прочитать из внешнего источника, защищая при этом от нежелательных побочных эффектов.
Примечания
[ редактировать ]- ^ С середины 1990-х гг.
- ^ если скомпилировано с -DACCT.
- ^ Компонент MS-DOS и Windows – на него распространяется действующая лицензия для MS-DOS или Microsoft Windows.
- ^ Компонент OS/2 – на него распространяется действующая лицензия на OS/2.
- ^ Расширения команд включены или «CMD / X».
- ^ Компонент Windows – на него распространяется действующая лицензия для Microsoft Windows.
- ^ Microsoft PowerShell устанавливается по умолчанию в Windows 7 и более поздних версиях. Это дополнительная загрузка для пользователей Windows Vista или Windows XP.
- ^ Перейти обратно: а б с текущие версии от Йорга Шиллинга.
- ^ Alt-Shift-8 или Alt-* раскроет полный список соответствующих имён файлов.
- ^ Доступно через DOSKEY . Дополнение
- ^ Доступно в DR-DOS через ИСТОРИЯ .
- ^ Альтернативно доступно через DOSKEY . Дополнение
- ^ Альтернативно доступно в DR-DOS через ИСТОРИЯ тоже.
- ^ TCC имеет специальные функции подсказок для ответов «Да», «Нет», «Отмена», «Закрыть», «Повторить».
- ^ Перейти обратно: а б с Обрабатывается rio , GNU readline , editline или vrl .
- ^ Рыбья раковина представляет собой интерактивную поверхность ввода/вывода на основе символов.
- ^ Недоступно во встроенной оболочке. Внешний Команда FINDSTR /R доступна в большинстве выпусков Windows.
- ^ PowerShell использует полный механизм регулярных выражений .NET , который поддерживает именованные захваты, просмотр вперед/назад с нулевой шириной, жадный/нежадный режим, классы символов, подсчет уровней и т. д.
- ^ Перейти обратно: а б с д и ж г час я дж к xautomation и xdotool можно использовать для генерации нажатий клавиш в системе X Window ; или программа может быть запущена в псевдотерминале, чтобы иметь возможность управлять ею (как в случае с ожидаем инструмент).
- ^ Перейти обратно: а б с д и ж г час я Оболочка может использовать stty — утилита для подавления отображения набранных символов на экране. Для этого требуется несколько шагов: 1. чтение текущего состояния эха, 2. отключение эха, 3. чтение входных данных, 4. переключение состояния эха обратно в исходное состояние.
- ^ Перейти обратно: а б с д и ж г час я дж к л Разрешение на выполнение сценария обеспечивается отдельной программой, загрузчиком программы, путем отказа вызывать интерпретатор (возможно, оболочку), указанный в хеш-банге . Интерпретатор не применяет разрешение на выполнение, если он вызывается напрямую, как это сделал бы загрузчик программы, с файлом в качестве аргумента; для этого требуется только разрешение на чтение, а также передача файла в качестве входных данных интерпретатору, и в этом случае интерпретатор не может видеть разрешение на выполнение.
- ^ Перейти обратно: а б Оболочки zsh и fish также учитывают разрешение на выполнение для завершения команды.
- ^ Перейти обратно: а б В DR-DOS разделителем паролей файлов и каталогов является точка с запятой. Это также поддерживается в 4DOS, пока команда не поддерживает списки включения. В 4DOS разделитель паролей должен быть удвоен для всех команд, поддерживающих списки включения, чтобы отличать пароли от списков включения. Команды, не поддерживающие списки включения, принимают обе формы. DR-DOS 7.02 и выше также дополнительно принимают двойную точку с запятой, так что двойные точки с запятой работают как в COMMAND.COM, так и в 4DOS независимо от выполняемой команды.
- ^ Перейти обратно: а б DR-DOS поддерживает пароли файлов для чтения/записи/удаления и, при необходимости, разрешения на выполнение. По умолчанию файлы не защищены, но систему можно настроить так, чтобы для чтения некоторых пакетных сценариев требовался пароль.
- ^ Перейти обратно: а б ВВОД /P и INKEY /P возвращает звездочки для каждого введенного символа.
- ^ Read-Host -AsSecureString считывает строку символов с устройства ввода в зашифрованную строку, по одному символу за раз, таким образом гарантируя, что в памяти нет образа открытого текста, который можно было бы получить при сканировании памяти или из аварийных дампов памяти. дампы, файлы подкачки, файлы журналов и т.п.
- ^ Файлы сценариев PowerShell ( файлы .ps1 ) по умолчанию связаны с редактором «Блокнот», а не с механизмом выполнения PowerShell. Вызов Файл .ps1 запустит Блокнот, а не выполнит скрипт.
- ^ Сценарии запуска для каждого компьютера/пользователя могут импортировать модули и предоставлять подмножество команд/функций, доступных в модулях.
Ссылки
[ редактировать ]- ^ , Независимая от платформы версия основанная на историческом исходном исходном коде UNIX V7, доступна у Джеффа Коллайера.
- ^ Историческая версия UNIX V7 доступна по лицензии BSD через The Unix Heritage Society и другие.
- ^ , Независимая от платформы версия основанная на исходном коде SVr4/Solaris, доступна у Йорга Шиллинга.
- ^ Феррелл, Джон, «Глава 2. Оболочка по умолчанию» , Краткое руководство FreeBSD для пользователей Linux , Проект документации FreeBSD , получено 24 июля 2015 г.
- ^ "SchilliX-ON / SchilliX-ON Mercurial / [b1d9a2] /usr/src/cmd/sh" . Sourceforge.net . Проверено 2 июля 2015 г.
- ^ IEEE и Открытая группа (2008). Стандарт IEEE 1003.1 для информационных технологий — интерфейс переносимой операционной системы (POSIX): оболочка и утилиты, выпуск 7 .
- ^ Как часть IEEE Std.1003.2-1992 (POSIX.2); интегрирован в IEEE Std.1003.1 редакции 2001 года.
- ^ Фокс, Брайан (7 июня 1989 г.). Тауэр-младший, Леонард Х. (ред.). «Bash находится в бета-версии!» . Группа новостей : gnu.announce . Usenet: [электронная почта защищена] . Проверено 28 октября 2010 г.
- ^ Купер, Мендель, «Глава 37.3.2. Bash, версия 4.2» , Расширенное руководство по написанию сценариев Bash , Проект документации Linux , получено 30 апреля 2015 г. , «Bash теперь поддерживает escape-коды \u и \U Unicode».
- ^ Грир, Кен (3 октября 1983 г.). «Оболочка C с распознаванием/дополнением команд и имен файлов» . Группа новостей : net.sources . Проверено 29 декабря 2010 г.
- ^ «Краткое руководство FreeBSD для пользователей Linux®» . Портал документации FreeBSD . Проверено 4 февраля 2024 г.
- ^ Сассман, Энн (26 декабря 1988 г.). «Hamilton C Shell ускоряет разработку приложений OS/2» (PDF) . Неделя ПК (26 декабря 1988 г. - 02 января 1989 г.): 37 . Проверено 22 ноября 2010 г.
- ^ Гомес, Рон (9 июня 1983 г.). «Расписание конференции USENIX в Торонто (предварительное)» . Группа новостей : net.usenix . Проверено 29 декабря 2010 г.
- ^ Харрис, Гай (10 октября 1983). «вопрос csh» . Группа новостей : net.flame . Проверено 29 декабря 2010 г.
- ^ Перейти обратно: а б ksh93(1) справочная страница
- ^ Перейти обратно: а б Оболочкой по умолчанию в OpenBSD является ksh (pdksh).
- ^ Редактор командной строки zsh полностью настраиваемый и может обеспечивать поддержку мыши различными способами, например, с помощью Стефана Шазеласа. мышь.зш .
- ^ zsh(1) man-страница и подстраницы
- ^ zshbuiltins(1) справочная страница
- ^ Лефевр, Винсент (11 февраля 2015 г.). «многозначные дескрипторы файлов» . zsh-users (список рассылки) . Проверено 23 декабря 2021 г.
- ^ «#782228 — busybox sh не поддерживает многобайтовые символы при обработке строк — журналы отчетов об ошибках Debian» . Багс.debian.org. 09.04.2015 . Проверено 2 июля 2015 г.
- ^ «Словарь HP OpenVMS DCL» . Архивировано из оригинала 25 марта 2007 г. Проверено 23 марта 2009 г.
- ^ Ларабель, Майкл (23 марта 2021 г.). «Авторские права на Plan 9 переданы Фонду, выпущен лицензионный код MIT» . Фороникс . Проверено 28 марта 2021 г.
- ^ Лильенкранц, Аксель (17 мая 2005 г.). «Рыба – Дружелюбная интерактивная ракушка» . Проверено 08 апреля 2013 г.
- ^ Соллер, Джереми (15 ноября 2015 г.). "d79c8f511573fb7710abc63b4236a40022914520" . Проверено 3 августа 2019 г.
- ^ «Система завершения [Z Shell]» . Zsh.sourceforge.io . Проверено 24 февраля 2015 г.
- ^ Это применимо только к зарезервированным словам и другим синтаксическим функциям.
- ^ например, через третью сторону, например, zsh-autosuggestions
- ^ zsh не поддерживает подсветку синтаксиса, но существует сторонний проект, который предлагает эту возможность в качестве дополнения: zsh-syntax-highlighting
- ^ Пол, Матиас Р. (02 октября 1997 г.) [29 сентября 1997 г.]. «Caldera OpenDOS 7.01/7.02 Update Alpha 3 IBMBIO.COM — README.TXT и BOOT.TXT — краткое описание загрузки OpenDOS» . Архивировано из оригинала 4 октября 2003 г. Проверено 29 марта 2009 г. [1]
- ^ Перейти обратно: а б с д и Ширк, Джейсон (15 февраля 2018 г.). «PSReadLine: реализация строки чтения для PowerShell, вдохновленная bash» — через GitHub.
- ^ «Windows PowerShell 5.0» . Архивировано из оригинала 17 сентября 2016 года . Проверено 8 сентября 2016 г.
- ^ Перейти обратно: а б с д и ж «Интегрированная среда сценариев Windows PowerShell (ISE)» . Майкрософт Технет . Проверено 12 сентября 2015 г.
- ^ «Get-ChildItemColor» . Гитхаб . 18 марта 2022 г.
- ^ sdwheeler. «Write-Host (Microsoft.PowerShell.Utility) — PowerShell» . docs.microsoft.com . Проверено 18 января 2022 г.
- ^ Push-Location (с псевдонимом
pushd
) и Pop-Location (с псевдонимомpopd
несколько типов местоположений (каталоги файловых систем, организационные единицы Active Directory , узлы реестра Windows и т. д.) из стеков местоположений. ) позволяет помещать и извлекать - ^ Функция $host.ui.PromptForChoice позволяет использовать подсказку для выбора в виде меню. Приглашение работает как в фоновых заданиях, так и в удаленных сеансах, отображая приглашение меню на консоли управляющего сеанса.
- ^ Командлет Write-Progress записывает индикатор выполнения, который может указывать процент, оставшиеся секунды и т. д. Сообщения индикатора выполнения работают из фоновых заданий или удаленных сеансов в дополнение к интерактивным сценариям, т. е. индикатор выполнения отображается на консоли управляющего сеанса, а не как часть регулярного выпуска.
- ^ Командлет Show-Command проверяет определение команды и открывает интерактивные окна с именованным полем ввода для каждого параметра/переключателя.
- ^ Перейти обратно: а б «рыба: Документация» . раздела Завершение вкладки . Проверено 10 января 2016 г.
- ^ «set_color — установить цвет терминала — документация fish-shell 3.1.2» . fishshell.com . Архивировано из оригинала 17 февраля 2020 г. Проверено 23 февраля 2021 г.
- ^ «abbr — управление сокращениями рыб — документация fish-shell 3.1.2» . fishshell.com . Проверено 23 февраля 2021 г.
- ^ sdwheeler. «Запуск-Процесс (Microsoft.PowerShell.Management) — PowerShell» . Learn.microsoft.com . Проверено 21 октября 2022 г.
- ^ sdwheeler. «Start-Job (Microsoft.PowerShell.Core) — PowerShell» . Learn.microsoft.com . Проверено 21 октября 2022 г.
- ^ "zsh: 20. Система завершения" . Zsh.sourceforge.io. 06 марта 2013 г. Проверено 18 августа 2013 г.
- ^ «Используйте PowerShell для создания обязательных параметров» . Блоги.technet.com. 22 мая 2011 г. Проверено 24 февраля 2015 г.
- ^ sdwheeler. «Что нового в PowerShell 5.0 ISE — PowerShell» . docs.microsoft.com . Проверено 25 июля 2021 г.
- ^ «GitHub — marlonrichert/zsh-autocomplete: 🤖 Упреждающее ввод в реальном времени для Zsh. Асинхронное автодополнение по мере ввода» . Гитхаб . Проверено 25 июля 2021 г.
- ^ «Интерактивное использование — документация fish-shell 3.3.1» . fishshell.com . Проверено 25 июля 2021 г.
- ^ Хан, Харли (2009). Руководство Харли Хана по Unix и Linux . Бостон: Высшее образование Макгроу-Хилла. ISBN 978-0-07-313361-4 . OCLC 184828059 .
- ^ Concurrent DOS 386 — Многопользовательская/многозадачная операционная система — Руководство пользователя (PDF) . Цифровые исследования .
- ^ «pv(1): отслеживать ход передачи данных по каналу — справочная страница Linux» . Linux.die.net . Проверено 24 февраля 2015 г.
- ^ «рыба: Учебник» . fishshell.com . Проверено 21 октября 2022 г.
- ^ «zsh-users/zsh-syntax-highlighting: подсветка синтаксиса в стиле рыбной оболочки для Zsh» . Гитхаб . Проверено 18 августа 2013 г.
- ^ sdwheeler. «Модуль PSReadLine — PowerShell» . Learn.microsoft.com . Проверено 26 апреля 2023 г.
- ^ Представляем «функцию», встроенную Матеусом Гарсией.
- ^ «Ясеневые варианты» . Архивировано из оригинала 10 марта 2010 г. Проверено 15 декабря 2014 г.
- ^ «Установить — Переменная среды — Windows CMD» . SS64.com . Проверено 24 февраля 2015 г.
- ^ «Как перебрать массив в пакетном режиме?» . Переполнение стека . Проверено 24 февраля 2015 г.
- ^ Класс .NET System.Math определяет математические функции, которые можно использовать с помощью ярлыка [Математика] , например [Математика]::Sin для функции синуса . [2]
- ^ «Получите закрытие с помощью GetNewClosure» . devblogs.microsoft.com . 27 марта 2009 г. Проверено 12 сентября 2022 г.
- ^ «строка — манипулирование строками — документация fish-shell 3.1.2» . fishshell.com . Проверено 23 февраля 2021 г.
- ^ Справочник по языку оболочки Hamilton C: подстановочные знаки и сопоставление с образцом , Hamilton Laboratories , получено 29 октября 2013 г. ,
... Неопределенный каталог: сопоставьте любое количество уровней каталогов – ноль или более – независимо от того, что необходимо для соответствия остальной части шаблона.
- ^ Перейти обратно: а б Зеебах, Питер (21 ноября 2008 г.). Начало написания сценариев для переносимой оболочки: от новичка до профессионала . Голос эксперта в открытом доступе. Апресс (опубликовано в 2008 г.). п. 149. ИСБН 9781430210436 . Проверено 17 сентября 2014 г.
Расширение скобок доступно в ksh93, pdksh, bash и zsh.
- ^ Zsh предлагает множество вариантов подстановки .
- ^ sdwheeler. «об операторах — PowerShell» . docs.microsoft.com . Проверено 18 января 2022 г.
- ^ Братья Хардин; Роусон, Том ; Конн, Рекс К .; Пол, Матиас Р.; Дай, Чарльз Э.; Георгиев, Лучезар И. (27 февраля 2002 г.). Онлайн-справка по 4DOS 8.00 .
- ^ "найдите способ сделать 'psub --fifo' безопасным от тупиковой ситуации · Проблема № 1040 · fish-shell/fish-shell" . Гитхаб .
- ^ «О разделах данных» . Technet.microsoft.com . Проверено 24 февраля 2015 г.
- ^ «Страница руководства Ubuntu: rc — оболочка» . Manpages.ubuntu.com. 17 июля 2003 г. Проверено 24 февраля 2015 г.
- ^ Провос, Нильс. «Шифрование виртуальной памяти» . Центр интеграции информационных технологий Мичиганского университета . Проверено 20 декабря 2012 г.
- ^ «bash — GNU Bourne-Again Shell» .
прочитайте -s Тихий режим. Если ввод поступает с терминала, символы не отображаются.
- ^ «Использование командлета Read-Host» .
Добавив параметр -assecurestring, вы можете замаскировать данные, вводимые в командной строке.
- ^ «Команда Linux/Unix: stty» . Linux.about.com. Архивировано из оригинала 25 февраля 2015 г. Проверено 24 февраля 2015 г.
- ^ «man sh — оболочка, стандартный интерпретатор командного языка /posix» (на французском языке). Pwet.fr. Архивировано из оригинала 21 декабря 2014 г. Проверено 18 августа 2013 г.
- ^ «Справочное руководство Bash: Ограниченная оболочка» . Гну.орг. 28 декабря 2010 г. Проверено 18 августа 2013 г.
- ^ «Новый-PSSessionConfigurationFile» . Technet.microsoft.com . Проверено 18 августа 2013 г.
- ^ Альбинг, Карл; Воссен, JP; Ньюхэм, Кэмерон (2007). Кулинарная книга Баш (1-е изд.). Севастополь, Калифорния, США: O'Reilly Media . ISBN 978-0-596-52678-8 .
[...] вряд ли можно назвать пассивным списком настроенных переменных. Он может запускать другие команды (например, cat) и использовать операторы if для изменения своего выбора. Это даже заканчивается повторением сообщения. Будьте осторожны при выборе источника, поскольку это широко открытая дверь в ваш сценарий.
- ^ «О разделах данных» . Майкрософт . Проверено 18 декабря 2012 г.
Внешние ссылки
[ редактировать ]- Насарек, Маркус (май 2007 г.). «Статья» (PDF) . Сравнение Bash с оболочкой Windows Vista: Shell Games . Журнал Линукс . Архивировано (PDF) из оригинала 10 октября 2014 г.
- «Базовые характеристики — оболочка и утилиты» . Стандарт IEEE 1003.1 для информационных технологий – интерфейс портативной операционной системы (POSIX) (изд. 2018 г.). Открытая группа. 2017.