Bash (оболочка Unix) - Bash (Unix shell)
Скриншот сеанса Bash | |
Оригинальный автор (ы) | Брайан Фокс |
---|---|
изначальный выпуск | 8 июня 1989 г. |
Стабильный выпуск | 5.0 (7 января 2019 г.[±][1][2] | )
Репозиторий | |
Написано в | C |
Операционная система | |
Платформа | GNU |
Доступно в | Многоязычный (gettext ) |
Тип | Оболочка Unix, командный язык |
Лицензия | GPLv3 +[6] |
Интернет сайт | www |
Баш это Оболочка Unix и командный язык написано Брайан Фокс для Проект GNU как бесплатно программное обеспечение замена для Оболочка Борна.[7][8] Впервые выпущен в 1989 г.[9] он использовался по умолчанию авторизоваться оболочка для большинства Linux дистрибутивы и все выпуски Apple macOS до macOS Catalina.[10] Версия для Windows 10 также доступна через Подсистема Windows для Linux.[11] Это также оболочка пользователя по умолчанию в Солярис 11.[12]
Баш - это командный процессор который обычно проходит в текстовое окно где пользователь вводит команды, вызывающие действия. Bash также может читать и выполнять команды из файла, называемого сценарий оболочки. Как и все оболочки Unix, он поддерживает имя файла шарик (соответствие подстановочного знака), трубопровод, здесь документы, подстановка команд, переменные, и управляющие структуры за проверка состояния и итерация. В ключевые слова, синтаксис, динамически ограниченный переменные и другие основные функции язык все скопированы из ш. Другие функции, например, история, скопированы из csh и кш. Баш - это POSIX -соответствующая оболочка, но с рядом расширений.
Название оболочки является аббревиатурой от Bourne Again Shell, а каламбур на имя Оболочка Борна что он заменяет[13] и понятие бытия "рожденный заново ".[14][15]
А дыра в безопасности в Bash, начиная с версии 1.03 (август 1989 г.),[16] дублированный Shellshock, был обнаружен в начале сентября 2014 г. и быстро привел к целому ряду нападения через Интернет.[17][18][19] Патчи для исправления ошибок были доступны вскоре после того, как ошибки были обнаружены.
История
Брайан Фокс началось кодирование Баш 10 января 1988 г.[20] после Ричард Столмен стал недоволен отсутствием прогресса, достигнутого предыдущим разработчиком.[7] Столмен и Фонд свободного программного обеспечения (FSF) считала бесплатную оболочку, которая могла бы запускать существующие сценарии оболочки, настолько стратегически важной для полностью бесплатной системы, построенной из кода BSD и GNU, что это был один из немногих проектов, которые они финансировали сами, а Fox выполняла работу в качестве сотрудника FSF.[7][21] Fox выпустила бета-версию Bash версии .99 8 июня 1989 г.[9] и оставался основным сопровождающим до середины 1992 г.[22] и середина 1994 г.,[23] когда его уволили из ФСПО[24] и его ответственность была передана другому раннему участнику, Чету Рэми.[25][26][27]
С тех пор Bash стал самой популярной оболочкой среди пользователей Linux, став интерактивной оболочкой по умолчанию в различных дистрибутивах этой операционной системы.[28][29] (несмотря на то что Раковина альмквиста может быть оболочкой сценариев по умолчанию) и в выпусках MacOS от Apple до Каталина в октябре 2019 года.[30][31][10] Bash также был перенесен на Майкрософт Виндоус и распространяется с Cygwin и MinGW, к ДОС посредством DJGPP проект, чтобы Novell NetWare, к OpenVMS проектом GNV,[32] к ArcaOS,[33] и чтобы Android через различные приложения эмуляции терминала.
В сентябре 2014 года Стефан Шазелас, специалист по Unix / Linux,[34] обнаружил ошибка безопасности в программе. Ошибка, впервые обнаруженная 24 сентября, получила название Shellshock и присвоил номера CVE -2014-6271, CVE-2014-6277 и CVE-2014-7169. Ошибка была расценена как серьезная, поскольку CGI скрипты, использующие Bash, могут быть уязвимы, что позволяет выполнение произвольного кода. Ошибка была связана с тем, как Bash передает определения функций в подоболочки через переменные среды.[35]
Функции
Баш команда синтаксис - это суперсет синтаксиса команд оболочки Bourne. Bash поддерживает расширение скобки, завершение командной строки (Программируемое завершение),[36] базовая отладка[37] и обработка сигналов (с помощью ловушка
) начиная с bash 2.05a[38] среди других функций. Bash может выполнять подавляющее большинство сценариев оболочки Bourne без изменений, за исключением сценариев оболочки Bourne, которые натыкаются на поведение синтаксиса краев, интерпретируемое по-разному в Bash, или пытаются запустить системную команду, соответствующую более новой встроенной программе Bash, и т. Д. Синтаксис команд Bash включает в себя нарисованные идеи. от KornShell (ksh) и Оболочка C (csh) такие как редактирование командной строки, история команд (история
команда),[39] стек каталогов, $ RANDOM
и $ PPID
переменные и POSIX подстановка команд синтаксис $(…)
.
Когда пользователь нажимает кнопку клавиша табуляции в интерактивной командной оболочке Bash автоматически использует завершение командной строки, начиная с бета-версии 2.04,[40] для соответствия частично набранным именам программ, именам файлов и именам переменных. Система завершения командной строки Bash очень гибкая и настраиваемая, и часто содержит функции, которые завершают аргументы и имена файлов для определенных программ и задач.
Синтаксис Bash имеет множество расширений, отсутствующих в оболочке Bourne. Bash может выполнять целочисленные вычисления («арифметические вычисления») без создания внешних процессов. Он использует ((…))
команда и $((…))
синтаксис переменной для этой цели. Его синтаксис упрощает Перенаправление ввода / вывода. Например, он может перенаправить стандартный вывод (stdout) и стандартная ошибка (stderr) одновременно используя &>
оператор. Это проще набрать, чем эквивалент оболочки Борна 'команда> файл 2> & 1
'. Bash поддерживает замена процесса с использованием <(команда)
и > (команда)
синтаксис, который заменяет вывод (или ввод) команды, где обычно используется имя файла. (Это реализовано через / proc / fd / безымянные каналы в системах, которые поддерживают это, или через временные именованные каналы где необходимо).
При использовании ключевого слова 'function' объявления функций Bash несовместимы со скриптами Bourne / Korn / POSIX (у KornShell такая же проблема при использовании 'function'), но Bash принимает тот же синтаксис объявления функций, что и оболочки Bourne и Korn, и является POSIX-совместимым. Из-за этих и других различий сценарии оболочки Bash редко запускаются под интерпретаторами оболочки Bourne или Korn, если они специально не написаны с учетом этой совместимости, что становится все менее распространенным, поскольку Linux становится все более распространенным. Но в режиме POSIX Bash более точно соответствует POSIX.[41]
Bash поддерживает здесь документы. Начиная с версии 2.05b Bash может перенаправлять стандартный ввод (stdin) из "здесь строки" с помощью <<<
оператор.
Bash 3.0 поддерживает внутрипроцессное регулярное выражение сопоставление с использованием синтаксиса, напоминающего Perl.[42][43]
В феврале 2009 г.[44] Bash 4.0 представил поддержку ассоциативные массивы.[45] Индексы ассоциативных массивов представляют собой строки, аналогично AWK или же Tcl.[46] Их можно использовать для имитации многомерных массивов. Bash 4 также меняет свою лицензию на GPLv3; некоторые пользователи подозревают, что это изменение лицензирования является причиной того, что MacOS продолжает использовать более старые версии.[47]
Расширение скобы
Расширение скобок, также называемое чередованием, - это функция, скопированная из Оболочка C. Он генерирует набор альтернативных комбинаций. Сгенерированные результаты не обязательно должны существовать в виде файлов. Результаты каждой развернутой строки не сортируются и сохраняется порядок слева направо:
$ эхо а{п, в, г, б}еобезьяна ace ade abe$ эхо {а, б, в}{г, д, е}ad ae af bd be bf cd ce cf
Пользователи не должны использовать расширения скобок в переносимых сценариях оболочки, потому что Оболочка Борна не дает такой же результат.
$ # Традиционная оболочка не производит такой же результат$ / bin / sh -c 'echo a {p, c, d, b} e'а {п, в, г, б} д
Когда фигурные скобки комбинируются с подстановочными знаками, фигурные скобки сначала раскрываются, а затем полученные подстановочные знаки заменяются обычным образом. Следовательно, список изображений JPEG и PNG в текущем каталоге можно получить, используя:
ls *.{jpg, jpeg, png} # расширяется до * .jpg * .jpeg * .png - после чего # подстановочные знаки обрабатываютсяэхо *.{png, jp{е,}грамм} # echo просто показать расширения - # и фигурные скобки в фигурных скобках возможны.
В дополнение к чередованию, расширение скобок может использоваться для последовательных диапазонов между двумя целыми числами или символами, разделенными двойными точками. Более новые версии Bash позволяют третьему целому числу указывать приращение.
$ эхо {1..10}1 2 3 4 5 6 7 8 9 10$ эхо файл{1..4}.текстfile1.txt file2.txt file3.txt file4.txt$ эхо {а..е}а б в г д$ эхо {1..10..3}1 4 7 10$ эхо {a..j..3}а д ж
Когда расширение фигурных скобок комбинируется с расширением переменной, выполняется расширение переменной. после расширение скоб, что в некоторых случаях может потребовать использования оценка
встроенный, таким образом:
$ Начните=1; конец=10$ эхо {$ start..$ конец} # не раскрывается из-за порядка оценки{1..10}$ оценка эхо {$ start..$ конец} # происходит расширение переменной, после чего вычисляется результирующая строка1 2 3 4 5 6 7 8 9 10
Сценарии запуска
Эта секция содержит инструкции, советы или практические советы.Январь 2019) ( |
Когда Bash запускается, он выполняет команды в различных точечные файлы. В отличие от сценариев оболочки Bash, точечные файлы обычно не имеют разрешения на выполнение или директива интерпретатора подобно #! / bin / bash
.
Пример запуска Bash, совместимого с устаревшими версиями
Скелет ~ / .bash_profile
ниже совместим с оболочкой Bourne и дает семантику, аналогичную csh для ~ / .bashrc
и ~ / .bash_login
. В [ -р имя файла ] && cmd
это оценка короткого замыкания это проверяет, если имя файла существует и читается, пропуская часть после &&
если это не так.
[ -r ~ / .profile ] && . ~ / .profile # настроить среду, один раз, только синтаксис Bourne-shесли [ -n "$ PS1" ] ; тогда # мы интерактивны? [ -r ~ / .bashrc ] && . ~ / .bashrc # tty / prompt / настройка функций для интерактивных оболочек [ -r ~ / .bash_login ] && . ~ / .bash_login # любые задачи при входе только для оболочки входафи # Конец блока "if"
Проблемы операционной системы при запуске Bash
Некоторые версии Unix и Linux содержат сценарии запуска системы Bash, обычно под /так далее
каталоги. Bash вызывает их как часть своей стандартной инициализации, но другие файлы запуска могут читать их в другом порядке, чем задокументированная последовательность запуска Bash. Содержимое по умолчанию файлов пользователя root также может иметь проблемы, как и файлы скелета, которые система предоставляет новым учетным записям пользователей при настройке. Скрипты запуска, запускающие X оконная система может также делать удивительные вещи с пользовательскими сценариями запуска Bash при попытке установить переменные пользовательской среды перед запуском оконный менеджер. Эти проблемы часто можно решить с помощью ~ / .xsession
или же ~ / .xprofile
файл, чтобы прочитать ~ / .profile
- который предоставляет переменные среды, которые нужны окнам оболочки Bash из оконного менеджера, например xterm или же Терминал гномов.
Портативность
Вызов Bash с помощью --posix
вариант или указание установить -o posix
в сценарии заставляет Bash очень близко соответствовать Стандарт POSIX 1003.2.[48] Скрипты оболочки Bash, предназначенные для переносимость следует учитывать как минимум стандарт оболочки POSIX. Некоторые функции bash, которых нет в POSIX:[48][49]
- Некоторые расширенные параметры вызова
- Расширение скобы
- Массивы и ассоциативные массивы
- Двойная скобка
[[ ... ]]
расширенная тестовая конструкция и ее соответствие регулярному выражению - Конструкция арифметической оценки в двойных скобках (только
(( ... ))
;$(( ... ))
это POSIX) - Некоторые операции со строками при раскрытии параметров
местный
для переменных с ограниченным объемом- Замена процесса
- Встроенные функции для Bash
- Сопроцессы
- Переменные $ EPOCHSECONDS и $ EPOCHREALTIME [50]
Если фрагмент кода использует такую возможность, это называется «башизмом» - проблемой для портативного использования. Debian проверка
и Видара Холена Shellcheck
можно использовать, чтобы убедиться, что сценарий не содержит этих частей.[51][52] Список варьируется в зависимости от фактической целевой оболочки: политика Debian допускает некоторые расширения в своих сценариях (как в бросаться
),[49] в то время как сценарий, намеревающийся поддерживать оболочки Bourne до POSIX, например autoconf с настроить
, еще более ограничены в возможностях, которые они могут использовать.[53]
Горячие клавиши
Bash использует readline для предоставления сочетаний клавиш для редактирования командной строки с использованием значения по умолчанию (Emacs ) привязки клавиш. Vi-привязки можно включить, запустив установить -o vi
.[54]
Управление процессом
Оболочка Bash имеет два режима выполнения команд: партия, и параллельный режим.
Для выполнения команд в пакетном режиме (т. Е. Последовательно) они должны быть разделены символом «;» или в отдельных строках:
command1; command2
в этом примере, когда команда 1 завершена, выполняется команда 2.
[Фоновый процесс | выполнение в фоновом режиме] команды 1 может происходить с использованием (символа &) в конце команды выполнения, и процесс будет выполняться в фоновом режиме, немедленно возвращая управление оболочке и позволяя продолжить выполнение команд.
command1 &
Или для одновременного выполнения двух команд command1 и command2 они должны выполняться в оболочке Bash следующим образом:
command1 & command2
В этом случае command1 выполняется в фоновом режиме & символ, немедленно возвращающий управление оболочке, которая выполняет command2 на переднем плане.
Процесс можно остановить и вернуть управление в bash, набрав Ctrl+z пока процесс выполняется на переднем плане.[55]
Список всех процессов, как в фоновом режиме, так и в остановленном, можно получить, запустив рабочие места
:
$ рабочие места[1] - Запуск command1 &[2] + Остановлена команда2
В выходных данных число в скобках относится к идентификатору задания. Знак плюс обозначает процесс по умолчанию для bg
и фг
. Тексты «Работает» и «Остановлен» относятся к Состояние процесса. Последняя строка - это команда, запустившая процесс.
Состояние процесса можно изменить с помощью различных команд. В фг
команда выводит процесс на передний план, а bg
устанавливает остановленный процесс, работающий в фоновом режиме. bg
и фг
могут принимать идентификатор задания в качестве первого аргумента, чтобы указать процесс, над которым нужно действовать. Без него они используют процесс по умолчанию, обозначенный знаком плюс в выводе рабочие места
. В убийство
можно использовать для преждевременного завершения процесса, отправив ему сигнал. Идентификатор задания необходимо указывать после знака процента:
убийство %1
Условное исполнение
Bash предоставляет разделители команд "условного выполнения", которые делают выполнение команды зависимым от код выхода устанавливается предыдущей командой. Например:
CD "$ ГДЕ-ТО" && ./сделай что-нибудь || эхо "Произошла ошибка" >&2
Где ./сделай что-нибудь выполняется только в том случае, если CD (сменить каталог) команда была "успешной" (вернула нулевой статус выхода) и эхо команда будет выполнена, только если CD или ./сделай что-нибудь команда вернет "ошибку" (ненулевой статус выхода).
Для всех команд статус выхода сохраняется в специальной переменной. $?
. Bash также поддерживает если ...;тогда ...;еще ...;фи
и дело $ VARIABLE в $ шаблон)...;;$ other_pattern)...;; esac
формы условной оценки команд.
Сообщение об ошибке
Внешняя команда называется башбаг сообщает об ошибках оболочки Bash. Когда команда вызывается, она вызывает редактор пользователя по умолчанию с формой для заполнения. Форма отправляется сопровождающим Bash (или, необязательно, на другие адреса электронной почты).[56][57]
Программируемое завершение
Программируемое завершение Bash, полный
и compgen
команды[58] доступны с бета-версии 2.04[59] в 2000 г.[60] Эти средства позволяют выполнять сложное интеллектуальное завершение, например, предлагая заполнить доступные параметры программы с помощью табуляции, а затем, после того, как пользователь выберет параметр, для которого требуется имя файла в качестве следующего ввода, только автоматически заполняются пути к файлам (а не другие параметры) для следующего токен.
История выпуска
Версия | Дата выхода |
---|---|
bash-5.0 | 2019-01-07 |
Баш-5.0-RC1 | 2018-12-20 |
bash-5.0-beta2 | 2018-11-28 |
Баш-5.0-бета | 2018-09-17 |
Баш-5.0-Альфа | 2018-05-22 |
bash-4.4 | 2016-09-15 |
Баш-4.4-RC2 | 2016-08-22 |
Баш-4.4-RC1 | 2016-02-24 |
Баш-4.4-бета2 | 2016-07-11 |
Баш-4.4-бета | 2015-10-12 |
Баш-4.3 | 2014-02-26 |
bash-4.2 | 2011-02-13 |
bash-4.1 | 2009-12-31 |
bash-4.0 | 2009-02-20 |
Баш-4.0-RC1 | 2009-01-12 |
bash-3.2 | 2006-10-11 |
Баш-3.1 | 2005-12-08 |
Баш-3.0 | 2004-08-03 |
bash-2.05b | 2002-07-17 |
bash-2.05a | 2001-11-16 |
bash-2.05 | 2001-04-09 |
bash-2.04 | 2000-03-21 |
bash-2.03 | 1999-02-19 |
bash-2.02 | 1998-04-18 |
bash-2.01 | 1997-06-05 |
Баш-2.0 | 1996-12-31 |
Смотрите также
Рекомендации
- ^ "Индекс / gnu / bash". ftp.gnu.org. Получено 19 марта, 2019.
- ^ Рэми, Чет (7 января 2019 г.). "Доступен релиз Bash-5.0". lists.gnu.org. В архиве с оригинала 8 января 2019 г.. Получено 19 марта, 2019.
- ^ "Bash FAQ, версия 4.14". Архивировано из оригинал 1 сентября 2018 г.. Получено 9 апреля, 2016.
- ^ «Отсутствует исходный код - соответствие GPL? · Проблема № 107 · Microsoft / WSL». GitHub.
- ^ "GNU Bash". Софтпедия. SoftNews. Получено 9 апреля, 2016.
- ^ Проект GNU. "README файл".
Bash - бесплатное программное обеспечение, распространяемое в соответствии с условиями Стандартной общественной лицензии [GNU], опубликованной Free Software Foundation, версия 3 лицензии (или любая более поздняя версия).
- ^ а б c Ричард Столмен (отправлено с комментариями Четом Рэми) (10 февраля 1988 г.). "GNU + BSD =?". Группа новостей: comp.unix.questions. Usenet: [email protected]. Получено 22 марта, 2011.
В течение полутора лет оболочка GNU была «почти готова». Автор неоднократно обещал выполнить то, что он сделал, но никогда не сдерживал их. В конце концов я больше не мог поверить, что он когда-либо что-нибудь доставит. Итак, сотрудник Фонда Брайан Фокс сейчас реализует имитацию оболочки Борна.
- ^ Гамильтон, Наоми (30 мая 2008 г.), «Азбука языков программирования: BASH / Bourne-Again Shell», Computerworld: 2, получено Двадцать первое марта, 2011,
Когда Ричард Столлман решил создать полную замену тогда перегруженным системам Unix, он знал, что в конечном итоге ему придется заменить все общие утилиты, особенно стандартную оболочку, и эти замены должны иметь приемлемую лицензию.
- ^ а б Брайан Фокс (направленный Леонардом Х. Тауэром-младшим) (8 июня 1989 г.). "Bash находится в стадии бета-тестирования!". Группа новостей: gnu.announce. Получено 28 октября, 2010.
- ^ а б Уоррен, Том (4 июня 2019 г.). «Apple заменяет bash на zsh в качестве оболочки по умолчанию в macOS Catalina». Грани. Получено 13 июня, 2019.
- ^ «Как установить инструмент командной строки оболочки Bash в Windows 10». 28 сентября 2016 г.
- ^ «Изменения функций пользовательской среды». Oracle.
- ^ «У меня почти есть редактор и компилятор Linux». Доктора Добба. Получено 12 сентября, 2020.
- ^ Ричард Столмен (12 ноября 2010 г.). «О проекте GNU». Фонд свободного программного обеспечения. В архиве из оригинала 24 апреля 2011 г.. Получено 13 марта, 2011.
"Bourne Again Shell" - это игра на имя Bourne Shell, которая была обычной оболочкой в Unix.
- ^ Гаттол, Маркус (13 марта 2011 г.), Bourne-again Shell, заархивировано из оригинал 9 марта 2011 г., получено 13 марта, 2011,
Это каламбур от имени оболочки Bourne (sh), ранней и важной оболочки Unix, написанной Стивеном Борном и распространяемой с версией 7 Unix около 1978 года, а также концепции «рождения свыше».
- ^ Хазелас, Стефан (4 октября 2014 г.). "архивы списков рассылки oss-sec". Seclists.org. Получено 4 октября, 2014.
- ^ Лейден, Джон (24 сентября 2014 г.). «Патч Bash СЕЙЧАС: ошибка Shell Shock широко раскрывает OS X и Linux». Реестр. Получено 25 сентября, 2014.
- ^ Перлрот, Николь (25 сентября 2014 г.). «Эксперты по безопасности ожидают, что программная ошибка Shellshock в Bash будет значительной». Нью-Йорк Таймс. Получено 25 сентября, 2014.
- ^ Зельцер, Ларри (29 сентября 2014 г.). "Shellshock делает Heartbleed незначительным". ZDNet. Архивировано из оригинал 14 мая 2016 г.
- ^ Брайан Фокс (29 августа 1996 г.), shell.c, Фонд свободного программного обеспечения,
Дата рождения: воскресенье, 10 января 1988 г. Первоначальный автор: Брайан Фокс.
- ^ Ричард Столмен (3 октября 2010 г.). «О проекте GNU». Фонд свободного программного обеспечения. В архиве из оригинала 24 апреля 2011 г.. Получено Двадцать первое марта, 2011.
Сотрудники Free Software Foundation написали и обслуживают ряд программных пакетов GNU. Двумя примечательными из них являются библиотека C и оболочка. … Мы финансировали разработку этих программ, потому что проект GNU был не только об инструментах или среде разработки. Нашей целью была полная операционная система, и эти программы были необходимы для этой цели.
- ^ len (g ... @ Prep.ai.mit.edu) (20 апреля 1993 г.). "Бюллетень GNU за январь 1993 г.". Группа новостей: gnu.announce. Usenet: [email protected]. Получено 28 октября, 2010.
- ^ Рэми, Чет (1 августа 1994 г.). «Bash - оболочка GNU (размышления и извлеченные уроки)». Linux журнал. В архиве с оригинала 5 декабря 2008 г.. Получено 13 ноября, 2008.
- ^ Чет Рэйми (31 октября 2010 г.), Даты вашего собеседования в Computerworld, получено 31 октября, 2010
- ^ Чет Рэми (12 июня 1989 г.). "Исправления и улучшения Bash 0.99". Группа новостей: gnu.bash.bug. Получено 1 ноября, 2010.
- ^ Чет Рэми (24 июля 1989 г.). "Некоторые исправления в bash-1.02". Группа новостей: gnu.bash.bug. Получено 30 октября, 2010.
- ^ Брайан Фокс (2 марта 1990 г.). "Доступность bash 1.05". Группа новостей: gnu.bash.bug. Получено 30 октября, 2010.
- ^ Бреснахан, Кристина; Блюм, Ричард (апрель 2015 г.). CompTIA Linux + Powered by Linux Учебное пособие профессионального института: экзамен LX0-103 и экзамен LX0-104 (3-е изд.). John Wiley & Sons, Inc. стр. 5. ISBN 978-1-119-02122-3. Получено 6 июня, 2016.
В Linux большинство пользователей запускают bash, потому что это самая популярная оболочка.
- ^ Данеш, Арман; Янг, Майкл (февраль 2006 г.). Освоение Linux. John Wiley & Sons, Inc. стр. 363. ISBN 978-0-7821-5277-7. Получено 6 июня, 2016.
Bourne Again Shell (bash) - наиболее распространенная оболочка, устанавливаемая с дистрибутивами Linux.
- ^ Фостер-Джонсон, Эрик; Уэлч, Джон С .; Андерсон, Мика (апрель 2005 г.). Начало написания сценария оболочки. John Wiley & Sons, Inc. стр. 6. ISBN 978-0-7645-9791-6. Получено 6 июня, 2016.
Bash, безусловно, является самой популярной оболочкой и является оболочкой по умолчанию в системах Linux и Mac OSX.
- ^ «Используйте zsh в качестве оболочки по умолчанию на вашем Mac - служба поддержки Apple». Получено 1 июля, 2019.
- ^ «Установка новых пакетов GNV». Получено 4 сентября, 2020.
- ^ «Подсистемы совместимости». Получено 4 сентября, 2020.
- ^ Юлиана, Кино (10 июня 2017 г.). "Статус выхода Linux bash и как установить статус выхода в bash - Techolac". Получено 21 июня, 2019.
- ^ Хузайфа Сидхпурвала (24 сентября 2014 г.). "Атака путем внедрения кода специально созданных переменных среды Bash". Красная шляпа.
- ^ "Справочное руководство по Bash". www.gnu.org.
- ^ «Отладка скриптов Bash». tldp.org.
- ^ "Изменения в Bash [Bash Hackers Wiki (DEV 20200708T2203)]". wiki-dev.bash-hackers.org.
- ^ "Справочное руководство по Bash". www.gnu.org.
- ^ "Более продуктивная работа с bash 2.x / 3.x". www.caliban.org.
- ^ «Режим 6.11 Bash POSIX», Справочное руководство GNU Bash для Bash, версия 4.1, 23 декабря 2009 г., в архиве с оригинала 3 декабря 2010 г., получено 26 октября, 2010
- ^ "Расширенное руководство по сценариям на Bash". www.tldp.org. Раздел 37.2 (Bash, версия 3). Получено 5 марта, 2017.
- ^ Комиссия по двухсотлетию Конституции Соединенных Штатов. Коллекция Линкольнианы Фрэнка и Вирджинии Уильямс (Государственный университет Миссисипи. Библиотеки). Верховный суд Соединенных Штатов: истоки и судьи, 1790-1991 гг.. OCLC 25546099.
- ^ «Баш, версия 4». tldp.org.
- ^ "Рекомендации", Справочный диагностический указатель клинической неврологии, Elsevier, pp. Ref – 1a – Ref-70, 1986, Дои:10.1016 / b978-0-409-90016-3.50033-9, ISBN 978-0-409-90016-3, получено 12 сентября, 2020
- ^ "Массивы (Справочное руководство по Bash)". www.gnu.org.
- ^ "macos - Обновите bash до версии 4.0 в OS X". Спросите другое.
- ^ а б Мендель Купер. «Проблемы переносимости». Проект документации Linux. ibiblio.org.
- ^ а б «10. Файлы». Руководство по политике Debian, версия 4.5.0.2.
- ^ «Как форматировать дату и время в Linux, MacOS и Bash?». Советы Shell!. Получено 3 июня, 2020.
- ^ Linux Общие команды Руководство –
- ^ Linux Общие команды Руководство –
- ^ «Переносная оболочка». Autoconf. Получено 20 января, 2020.
- ^ «Справка BASH - Учебное пособие по Bash». Hypexr.org. 5 октября 2012 г.. Получено 21 июля, 2013.
- ^ "Справочное руководство по Bash". www.gnu.org.
- ^ башбаг (1), die.net
- ^ "Команда Linux / Unix: bashbug", apple.com
- ^ "Справочное руководство по Bash". tiswww.case.edu.
- ^ "Более продуктивная работа с bash 2.x / 3.x". www.caliban.org.
- ^ "Индекс / gnu / bash". ftp.swin.edu.au.
внешняя ссылка
- Официальный веб-сайт
- Интервью 2008 года с сопровождающим GNU Bash Четом Рэми
- MPI-Bash: А MPI -подключен плагин для Bourne-Again Shell от Скотт Пакин
- Список изменений bash
- Bash Acedemy