Bash - это оболочка Unix и командный язык, написанный Брайаном Фоксом для проекта GNU в качестве бесплатной замены оболочки Bourne . [7] [8] Впервые выпущенный в 1989 году, [9] он использовался в качестве оболочки входа по умолчанию для большинства дистрибутивов Linux . [10] Также доступна версия для Windows 10 через подсистему Windows для Linux . [11] Это также оболочка пользователя по умолчанию в Solaris 11. [12]Bash также был оболочкой по умолчанию во всех версиях Apple macOS до выпуска macOS Catalina 2019 года , который изменил оболочку по умолчанию на zsh , хотя Bash в настоящее время остается доступным в качестве альтернативной оболочки. [13]
Автор (ы) оригинала | Брайан Фокс |
---|---|
Первый выпуск | 8 июня 1989 г . |
Стабильный выпуск | 5.1 (7 декабря 2020 г . [±] [1] [2] | )
Репозиторий | |
Написано в | C |
Операционная система | |
Платформа | GNU |
Доступно в | Многоязычный ( gettext ) |
Тип | Оболочка Unix , командный язык |
Лицензия | GPLv3 + [6] |
Веб-сайт | www |
Bash - это командный процессор, который обычно запускается в текстовом окне, где пользователь вводит команды, вызывающие действия. Bash также может читать и выполнять команды из файла, называемого сценарием оболочки . Как и большинство оболочек Unix, он поддерживает подстановку имен файлов (сопоставление с подстановочными знаками), конвейерную обработку , здесь документы , подстановку команд , переменные и управляющие структуры для проверки условий и итераций . В ключевые слова , синтаксис , с динамической областью видимости переменных и другие основные особенности языка все скопировано с ш . Другие функции, например история , копируются из csh и ksh . Bash - это оболочка, совместимая с POSIX , но с рядом расширений.
Название оболочки является аббревиатурой от Bourne Again Shell , каламбура от имени оболочки Bourne, которую она заменяет [14], и понятия «быть рожденным заново ». [15] [16]
Брешь в системе безопасности Bash, появившаяся в версии 1.03 (август 1989 г.) [17], получившая название Shellshock , была обнаружена в начале сентября 2014 г. и быстро привела к целому ряду атак через Интернет . [18] [19] [20] Патчи для исправления ошибок были доступны вскоре после того, как ошибки были обнаружены.
История
Брайан Фокс начал кодировать Bash 10 января 1988 г. [21] после того, как Ричард Столлман был недоволен отсутствием прогресса, достигнутого предыдущим разработчиком. [7] Столлман и Фонд свободного программного обеспечения (FSF) рассматривали бесплатную оболочку, которая могла бы запускать существующие сценарии оболочки, настолько стратегически важной по отношению к полностью бесплатной системе, построенной на основе кода BSD и GNU, что это был один из немногих проектов, которые они финансировали сами, с участием Fox работа сотрудником ФСПО. [7] [22] Фокс выпустил бета-версию Bash версии .99 8 июня 1989 г. [9] и оставался основным сопровождающим до середины 1992 [23] и середины 1994 г. [24], когда он был уволен из FSF [25], и его ответственность была передана другому раннему участнику, Чету Рэми. [26] [27] [28]
С тех пор Bash стал самой популярной оболочкой среди пользователей Linux, став интерактивной оболочкой по умолчанию в различных дистрибутивах этой операционной системы [29] [30] (хотя оболочка Almquist может быть оболочкой сценариев по умолчанию) и в выпусках MacOS от Apple. перед тем Каталина в октябре 2019 года [31] [32] [10] Bash также была портирована на Microsoft Windows и распространяется с Cygwin и MinGW , в DOS по DJGPP проект, Novell NetWare , чтобы OpenVMS проекта GNV, [33 ] в ArcaOS , [34] и Android через различные приложения эмуляции терминала.
В сентябре 2014 года Стефан Чазелас, специалист по Unix / Linux, [35] обнаружил ошибку безопасности в программе. Ошибка, впервые обнаруженная 24 сентября, получила название Shellshock и номера CVE - 2014-6271 , CVE- 2014-6277 и CVE- 2014-7169 . Ошибка была расценена как серьезная, поскольку сценарии CGI, использующие Bash, могли быть уязвимыми, что позволяло выполнять произвольный код . Ошибка была связана с тем, как Bash передает определения функций подоболочкам через переменные среды . [36]
Функции
Синтаксис команды Bash - это надмножество синтаксиса команд оболочки Bourne. Bash поддерживает раскрытие скобок , завершение командной строки (программируемое завершение), [37] базовую отладку [38] и обработку сигналов (использование trap
), начиная с bash 2.05a [39] среди других функций. Bash может выполнять подавляющее большинство сценариев оболочки Bourne без изменений, за исключением сценариев оболочки Bourne, которые сталкиваются с поведением внешнего синтаксиса, по-разному интерпретируемым в Bash, или пытаются запустить системную команду, соответствующую более новой встроенной программе Bash, и т. Д. Синтаксис команд Bash включает в себя нарисованные идеи. от KornShell (КШ) и C оболочки (CSH) , такие как редактирование командной строки, история команд ( history
команды), [40] стека каталогов, что $RANDOM
и $PPID
переменные, и POSIX команды подстановки синтаксиса $(…)
.
Когда пользователь нажимает клавишу табуляции в интерактивной командной оболочке, Bash автоматически использует завершение командной строки , начиная с бета-версии 2.04, [41] для сопоставления частично типизированных имен программ, имен файлов и имен переменных. Система завершения командной строки Bash очень гибкая и настраиваемая, и часто содержит функции, которые завершают аргументы и имена файлов для определенных программ и задач.
Синтаксис Bash имеет множество расширений, отсутствующих в оболочке Bourne. Bash может выполнять целочисленные вычисления («арифметические вычисления») без создания внешних процессов. Для этой цели он использует синтаксис ((…))
команды и $((…))
переменной. Его синтаксис упрощает перенаправление ввода-вывода . Например, он может перенаправлять стандартный вывод (stdout) и стандартную ошибку (stderr) одновременно с помощью &>
оператора. Это проще набрать, чем эквивалент оболочки Борна ' command > file 2>&1
'. Bash поддерживает обработку подстановки , используя <(command)
и >(command)
синтаксис, который заменяет выход (или вход) , чтобы команды , где имя файла обычно используется. (Это реализуется с помощью / proc / fd / безымянных каналов в системах, которые это поддерживают, или с помощью временных именованных каналов, если необходимо).
При использовании ключевого слова 'function' объявления функций Bash несовместимы со сценариями Bourne / Korn / POSIX (у KornShell такая же проблема при использовании 'function'), но Bash принимает тот же синтаксис объявления функций, что и оболочки Bourne и Korn, и совместим с POSIX. Из-за этих и других различий сценарии оболочки Bash редко запускаются под интерпретаторами оболочки Bourne или Korn, если они специально не написаны с учетом этой совместимости, что становится все реже по мере распространения Linux. Но в режиме POSIX Bash более точно соответствует POSIX. [42]
Bash поддерживает здесь документы . Начиная с версии 2.05b Bash может перенаправлять стандартный ввод (stdin) из «строки здесь» с помощью <<<
оператора.
Bash 3.0 поддерживает сопоставление регулярных выражений внутри процесса с использованием синтаксиса, напоминающего Perl . [43]
В феврале 2009 г. [44] Bash 4.0 представил поддержку ассоциативных массивов . [45] Индексы ассоциативного массива - это строки, аналогичные AWK или Tcl . [46] Их можно использовать для имитации многомерных массивов. Bash 4 также переключает свою лицензию на GPLv3 ; некоторые пользователи подозревают, что это изменение лицензирования является причиной того, что MacOS продолжает использовать более старые версии. [47] Apple, наконец, прекратила использование Bash в своих операционных системах с выпуском MacOS Catalina в 2019 году. [13]
Расширение скобы
Подстановка скобок, называемая также чередованием, это функция копируется из оболочки C . Он генерирует набор альтернативных комбинаций. Сгенерированные результаты не обязательно должны существовать в виде файлов. Результаты каждой развернутой строки не сортируются и сохраняется порядок слева направо:
$ echo a { p, c, d, b } e ape ace ade abe $ echo { a, b, c } { d, e, f } ad ae af bd be bf cd ce cf
Пользователи не должны использовать расширения скобок в переносимых сценариях оболочки, потому что оболочка Bourne не дает таких же результатов.
$ # Традиционная оболочка не производит такой же вывод $ / bin / sh -c 'echo a {p, c, d, b} e' a {p, c, d, b} e
Когда расширение фигурных скобок комбинируется с подстановочными знаками, фигурные скобки сначала раскрываются, а затем полученные подстановочные знаки заменяются обычным образом. Следовательно, список изображений JPEG и PNG в текущем каталоге можно получить, используя:
ls *. { jpg, jpeg, png } # расширяется до * .jpg * .jpeg * .png - после чего # подстановочные знаки обрабатываются echo *. { png, jp { e, } g } # echo просто показывать расширения - # и фигурные скобки возможны.
В дополнение к чередованию, расширение фигурных скобок может использоваться для последовательных диапазонов между двумя целыми числами или символами, разделенными двойными точками. Более новые версии Bash позволяют третьему целому числу указывать приращение.
$ Эхо { 1 ..10 } 1 2 3 4 5 6 7 8 9 10 $ эхо - файла { 1 ..4 } .txt file1.txt file2.txt file3.txt file4.txt $ эхо { a..e } ABCDE $ echo { 1 ..10..3 } 1 4 7 10 $ echo { a..j..3 } adgj
Когда раскрытие фигурных скобок комбинируется с расширением переменных, расширение переменных выполняется после раскрытия фигурных скобок, что в некоторых случаях может потребовать использования eval
встроенных функций , например:
$ start = 1 ; end = 10 $ echo { $ start .. $ end } # не удается развернуть из-за порядка оценки {1..10} $ eval echo { $ start .. $ end } # происходит расширение переменной, после чего оценивается результирующая строка 1 2 3 4 5 6 7 8 9 10
Скрипты запуска
Когда Bash запускается, он выполняет команды в различных точечных файлах . В отличие от сценариев оболочки Bash, точечные файлы обычно не имеют разрешения на выполнение или директивы интерпретатора, например #!/bin/bash
.
Пример запуска Bash, совместимого с устаревшими версиями
Скелет ~/.bash_profile
ниже совместим с оболочкой Bourne и дает семантику, аналогичную csh для ~/.bashrc
и ~/.bash_login
. Является оценка короткого замыкания , что тесты , если имя файла существует и может быть прочитан, пропуская часть после того , если это не так .[ -r filename ] && cmd
&&
[ -r ~ / .profile ] && . ~ / .profile # один раз настраивать среду, синтаксис Bourne-sh только if [ -n " $ PS1 " ] ; then # мы интерактивны? [ -r ~ / .bashrc ] && . ~ / .bashrc # tty / prompt / настройка функции для интерактивных оболочек [ -r ~ / .bash_login ] && . ~ / .bash_login # любые задачи при входе только для оболочки входа fi # Конец блока "if"
Проблемы операционной системы при запуске Bash
Некоторые версии Unix и Linux содержат сценарии запуска системы Bash, как правило, в /etc
каталогах. Bash вызывает их как часть своей стандартной инициализации, но другие файлы запуска могут читать их в другом порядке, чем задокументированная последовательность запуска Bash. Содержимое по умолчанию файлов пользователя root также может иметь проблемы, как и файлы скелета, которые система предоставляет новым учетным записям пользователей при настройке. Сценарии запуска, которые запускают систему X Window, также могут делать неожиданные вещи с пользовательскими сценариями запуска Bash, пытаясь установить переменные пользовательской среды перед запуском оконного менеджера . Эти проблемы часто можно решить с помощью файла ~/.xsession
или ~/.xprofile
для чтения ~/.profile
- который предоставляет переменные среды, которые окна оболочки Bash порождают из диспетчера окон, таких как xterm или Gnome Terminal .
Портативность
Вызов Bash с --posix
опцией или указанием set -o posix
в скрипте приводит к тому, что Bash очень близко соответствует стандарту POSIX 1003.2 . [48] Сценарии оболочки Bash, предназначенные для переносимости, должны учитывать как минимум стандарт оболочки POSIX. Некоторые функции bash, которых нет в POSIX: [48] [49]
- Некоторые расширенные параметры вызова
- Расширение скобы
- Массивы и ассоциативные массивы
[[ ... ]]
Расширенная тестовая конструкция двойной скобки и соответствие ей регулярного выражения- Двойные скобки арифметико-оценка конструкция (только
(( ... ))
;$(( ... ))
это POSIX) - Некоторые операции со строками при раскрытии параметров
local
для переменных с ограниченным объемом- Замена процесса
- Специфичные для Bash встроенные команды
- Сопроцессы
- Переменные $ EPOCHSECONDS и $ EPOCHREALTIME [50]
Если часть кода использует такую возможность, это называется «башизмом» - проблемой для портативного использования. Можно использовать Debian checkbashisms
и Vidar Holen, shellcheck
чтобы убедиться, что сценарий не содержит этих частей. [51] [52] Список изменяется в зависимости от фактической оболочки мишени: политика Debian позволяет некоторым расширения в своих сценариях (как в dash), [49] в то время как сценарий намерен поддерживать предварительно POSIX Bourne оболочки, как Autoconf «s configure
, еще более ограничены в функциях, которые они могут использовать. [53]
Горячие клавиши
Bash использует readline для предоставления сочетаний клавиш для редактирования командной строки с использованием привязок клавиш по умолчанию ( Emacs ). Привязки Vi можно включить, запустив set -o vi
. [54]
Управление процессом
Оболочка Bash имеет два режима выполнения команд: пакетный и параллельный.
Для выполнения команд в пакетном режиме (т. Е. Последовательно) они должны быть разделены символом «;» или отдельными строками:
command1 ; command2
в этом примере, когда команда 1 завершена, выполняется команда 2.
Фон исполнение из command1 может происходить с помощью (символ &) в конце выполнение команды, и процесс будет выполняться в фоновом режиме возвращение немедленно контролировать к корпусу и позволяя дальнейшее выполнение команд.
command1 &
Или, чтобы одновременно выполнялись две команды command1 и command2, они должны выполняться в оболочке Bash следующим образом:
команда1 и команда2
В этом случае command1 выполняется в фоновом режиме символа & , немедленно возвращая управление оболочке, которая выполняет command2 на переднем плане.
Процесс можно остановить и вернуть управление bash, набрав Ctrl+, zкогда процесс выполняется на переднем плане. [55]
Список всех процессов, как фоновых, так и остановленных, можно получить, запустив jobs
:
$ jobs [1] - Запуск command1 & [2] + Stopped command2
В выходных данных число в скобках относится к идентификатору задания. Знак плюс обозначает процесс по умолчанию для bg
и fg
. Тексты «Выполняется» и «Остановлен» относятся к состоянию процесса . Последняя строка - это команда, запустившая процесс.
Состояние процесса можно изменить с помощью различных команд. Команда fg
выводит процесс на передний план, а bg
остановленный процесс устанавливает в фоновом режиме. bg
и fg
могут принимать идентификатор задания в качестве первого аргумента, чтобы указать процесс, над которым нужно действовать. Без него они используют процесс по умолчанию, обозначенный знаком плюса в выходных данных jobs
. kill
Команда может быть использована , чтобы завершить процесс преждевременно, отправив ему сигнал . Идентификатор задания необходимо указывать после знака процента:
убить % 1
Условное исполнение
Bash предоставляет разделители команд «условного выполнения», которые делают выполнение команды зависимым от кода выхода, установленного предыдущей командой. Например:
cd " $ SOMEWHERE " && ./do_something || echo "Произошла ошибка" > & 2
Где ./do_something выполняется только в том случае, если команда cd (изменить каталог) была "успешной" (вернула нулевой статус выхода), а команда echo будет выполнена, только если команда cd или ./do_something вернет "ошибку" (ненулевой статус выхода).
Для всех команд статус выхода сохраняется в специальной переменной $?
. Bash также поддерживает и формы оценки условной команды.if ...;then ...;else ...;fi
case $VARIABLE in $pattern)...;;$other_pattern)...;; esac
Сообщение об ошибке
Внешняя команда bashbug сообщает об ошибках оболочки Bash. Когда команда вызывается, она вызывает редактор пользователя по умолчанию с формой для заполнения. Форма отправляется сопровождающим Bash (или, необязательно, на другие адреса электронной почты). [56] [57]
Программируемое завершение
Программируемое завершение Bash complete
и compgen
команды [58] были доступны с бета-версии 2.04 [59] в 2000 году. [60] Эти средства позволяют выполнять сложное интеллектуальное завершение, например, предлагая заполнить доступные параметры программы с помощью табуляции и затем, после того, как пользователь выбирает параметр, который требует имени файла в качестве следующего ввода, только автоматически заполняя пути к файлам (а не другие параметры) для следующего токена.
История выпуска
Версия | Дата выпуска | Примечания к выпуску |
---|---|---|
bash-5.1 | 2020-12-07 | история версий github НОВОСТИ [61] |
bash-5.0 | 2019-01-07 | [62] [63] [64] |
Баш-5.0-RC1 | 2018-12-20 | |
Баш-5.0-бета2 | 2018-11-28 | |
Баш-5.0-бета | 2018-09-17 | |
Баш-5.0-Альфа | 2018-05-22 | |
bash-4.4 | 2016-09-15 | История версий github NEWS v4.4 |
Баш-4.4-RC2 | 2016-08-22 | |
Баш-4.4-RC1 | 2016-02-24 | |
Баш-4.4-бета2 | 2016-07-11 | |
Баш-4.4-бета | 2015-10-12 | |
bash-4.3 | 2014-02-26 | |
bash-4.2 | 2011-02-13 | |
bash-4.1 | 2009-12-31 | |
Баш-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 . Проверено 8 декабря 2020 года .
- ^ Рэми, Чет (7 декабря 2020 г.). «Доступен релиз Баш-5.1» . lists.gnu.org . Проверено 8 декабря 2020 года .
- ^ «Bash FAQ, версия 4.14» . Архивировано из оригинала на 1 сентября 2018 года . Проверено 9 апреля 2016 года .
- ^ «Отсутствует исходный код - соответствие GPL? · Проблема № 107 · Microsoft / WSL» . GitHub . Архивировано 24 сентября 2019 года . Проверено 8 июля, 2016 .
- ^ "GNU Bash" . Софтпедия . SoftNews. Архивировано 21 октября 2017 года . Проверено 9 апреля 2016 года .
- ^ Проект GNU . "README файл" . Архивировано 26 апреля 2019 года . Проверено 16 апреля 2014 года .
Bash - бесплатное программное обеспечение, распространяемое в соответствии с условиями Стандартной общественной лицензии [GNU], опубликованной Free Software Foundation, версия 3 лицензии (или любая более поздняя версия).
- ^ а б в Ричард Столмен (направил с комментариями Чет Рэми) (10 февраля 1988 г.). "GNU + BSD =?" . Группа новостей : comp.unix.questions . Usenet: [email protected] . Архивировано 7 ноября 2012 года . Проверено 22 марта 2011 года .
В течение полутора лет оболочка GNU была «почти готова». Автор неоднократно обещал выполнить то, что он сделал, но никогда не сдерживал их. В конце концов я больше не мог поверить, что он когда-либо что-нибудь доставит. Итак, сотрудник Фонда Брайан Фокс сейчас реализует имитацию оболочки Борна.
- ^ Гамильтон, Наоми (30 мая 2008 г.), «Азия языков программирования: BASH / Bourne-Again Shell» , Computerworld : 2, заархивировано из оригинала 6 июля 2011 г. , получено 21 марта 2011 г. ,
когда Ричард Столлман решил он знал, что в конечном итоге ему придется заменить все общие утилиты, особенно стандартную оболочку, и эти замены должны иметь приемлемую лицензию.
- ^ а б Брайан Фокс (направленный Леонардом Х. Тауэром-младшим) (8 июня 1989 г.). "Bash находится в стадии бета-версии!" . Группа новостей : gnu.announce . Архивировано 4 мая 2013 года . Проверено 28 октября 2010 года .
- ^ а б Уоррен, Том (4 июня 2019 г.). «Apple заменяет bash на zsh в качестве оболочки по умолчанию в macOS Catalina» . Грань . Архивировано 10 июня 2019 года . Проверено 13 июня 2019 года .
- ^ «Как установить инструмент командной строки оболочки Bash в Windows 10» . 28 сентября 2016 года. Архивировано 20 ноября 2016 года . Проверено 20 ноября, 2016 .
- ^ «Изменения функций пользовательской среды» . Oracle. Архивировано 12 июня 2018 года . Проверено 8 июня 2018 года .
- ^ а б Хьюз, Мэтью (4 июня 2019 г.). «Почему macOS Catalina использует Zsh вместо Bash? Лицензирование» . Следующая Сеть . Архивировано 31 декабря 2020 года . Проверено 12 января 2021 года .
- ^ «Я почти получил редактор и компилятор Linux» . Доктора Добба . Архивировано 2 марта 2021 года . Проверено 12 сентября 2020 года .
- ^ Ричард Столмен (12 ноября 2010 г.). «О проекте GNU» . Фонд свободного программного обеспечения . Архивировано 24 апреля 2011 года . Проверено 13 марта 2011 года .
«Bourne Again Shell» - это игра имени Bourne Shell , которая была обычной оболочкой в Unix.
- ^ Gattol, Markus (13 марта 2011), Bourne-Again Shell , архивируются с оригинала на 9 марта 2011 года , получен +13 March, 2 011 ,
название каламбур на имя Bourne оболочки (ш), ранний и важная оболочка Unix, написанная Стивеном Борном и распространяемая вместе с версией 7 Unix около 1978 года, а также концепция «рождения свыше».
- ^ Хазелас, Стефан (4 октября 2014 г.). "архивы списков рассылки oss-sec" . Seclists.org . Архивировано 6 октября 2014 года . Проверено 4 октября 2014 года .
- ^ Лейден, Джон (24 сентября 2014 г.). «Патч Bash СЕЙЧАС: ошибка Shell Shock широко раскрывает системы OS X и Linux» . Регистр . Архивировано 16 октября 2014 года . Проверено 25 сентября 2014 года .
- ^ Перлрот, Николь (25 сентября 2014 г.). «Эксперты по безопасности ожидают, что программная ошибка Shellshock в Bash будет значительной» . Нью-Йорк Таймс . Архивировано 5 апреля 2019 года . Проверено 25 сентября 2014 года .
- ^ Зельцер, Ларри (29 сентября 2014 г.). «Shellshock делает Heartbleed незначительным» . ZDNet . Архивировано из оригинального 14 мая 2016 года.
- ^ Брайан Фокс (29 августа 1996 г.), shell.c , Free Software Foundation , заархивировано из оригинала 28 сентября 2018 г. , получено 1 ноября 2010 г. ,
Дата рождения: воскресенье, 10 января 1988 г. Первоначальный автор: Брайан Фокс
- ^ Ричард Столмен (3 октября 2010 г.). «О проекте GNU» . Фонд свободного программного обеспечения . Архивировано 24 апреля 2011 года . Проверено 21 марта 2011 года .
Сотрудники Free Software Foundation написали и обслуживают ряд программных пакетов GNU. Двумя примечательными из них являются библиотека C и оболочка. … Мы финансировали разработку этих программ, потому что проект GNU был не только об инструментах или среде разработки. Нашей целью была полноценная операционная система, и эти программы были необходимы для этой цели.
- ^ len (g ... @ Prep.ai.mit.edu) (20 апреля 1993 г.). "Бюллетень GNU за январь 1993 г." . Группа новостей : gnu.announce . Usenet: [email protected] . Архивировано 2 марта 2021 года . Проверено 28 октября 2010 года .
- ^ Рэми, Чет (1 августа 1994 г.). «Bash - оболочка GNU (размышления и извлеченные уроки)» . Linux Journal . Архивировано 5 декабря 2008 года . Проверено 13 ноября 2008 года .
- ^ Чет Рэйми (31 октября 2010 г.), Даты в интервью Computerworld , заархивировано из оригинала 20 июля 2012 г. , получено 31 октября 2010 г.
- ^ Чет Рэйми (12 июня 1989 г.). «Исправления и улучшения Bash 0.99» . Группа новостей : gnu.bash.bug . Архивировано 10 ноября 2012 года . Проверено 1 ноября 2010 года .
- ^ Чет Рэми (24 июля 1989 г.). "Некоторые исправления в bash-1.02" . Группа новостей : gnu.bash.bug . Архивировано 10 ноября 2012 года . Проверено 30 октября 2010 года .
- ^ Брайан Фокс (2 марта 1990 г.). «Доступность bash 1.05» . Группа новостей : gnu.bash.bug . Архивировано 10 ноября 2012 года . Проверено 30 октября 2010 года .
- ^ Бреснахан, Кристина; Блюм, Ричард (апрель 2015 г.). CompTIA Linux + Powered by Linux Учебное пособие профессионального института: экзамен LX0-103 и экзамен LX0-104 (3-е изд.). John Wiley & Sons, Inc. стр. 5. ISBN 978-1-119-02122-3. Архивировано 2 марта 2021 года . Проверено 6 июня, 2016 .
В Linux большинство пользователей запускают bash, потому что это самая популярная оболочка.
- ^ Данеш, Арман; Янг, Майкл (февраль 2006 г.). Освоение Linux . John Wiley & Sons, Inc. стр. 363. ISBN. 978-0-7821-5277-7. Архивировано 2 марта 2021 года . Проверено 6 июня, 2016 .
Bourne Again Shell (bash) - наиболее распространенная оболочка, устанавливаемая с дистрибутивами Linux.
- ^ Фостер-Джонсон, Эрик; Уэлч, Джон С .; Андерсон, Мика (апрель 2005 г.). Начало написания сценария оболочки . John Wiley & Sons, Inc. стр. 6. ISBN 978-0-7645-9791-6. Архивировано 2 марта 2021 года . Проверено 6 июня, 2016 .
Bash на сегодняшний день является самой популярной оболочкой и является оболочкой по умолчанию в системах Linux и Mac OSX.
- ^ «Используйте zsh в качестве оболочки по умолчанию на вашем Mac - служба поддержки Apple» . Архивировано 2 декабря 2019 года . Проверено 1 июля 2019 года .
- ^ «Установка новых пакетов GNV» . Архивировано 3 октября 2020 года . Проверено 4 сентября 2020 года .
- ^ «Подсистемы совместимости» . Архивировано 23 сентября 2020 года . Проверено 4 сентября 2020 года .
- ^ Юлиана, Кино (10 июня 2017 г.). «Статус выхода Linux bash и как установить статус выхода в bash - Techolac» . Архивировано 21 июня 2019 года . Проверено 21 июня 2019 года .
- ^ Хузайфа Сидхпурвала (24 сентября 2014 г.). «Атака путем внедрения кода специально созданных переменных среды Bash» . Красная шляпа . Архивировано 25 сентября 2014 года . Проверено 25 сентября 2014 года .
- ^ "Справочное руководство по Bash" . www.gnu.org . Архивировано 15 марта 2018 года . Проверено 27 марта 2018 года .
- ^ «Отладка скриптов Bash» . tldp.org . Архивировано 4 ноября 2018 года . Проверено 20 ноября 2018 года .
- ^ «Изменения в Bash [Bash Hackers Wiki (DEV 20200708T2203)]» . wiki-dev.bash-hackers.org . Архивировано 23 сентября 2019 года . Проверено 23 сентября 2019 года .
- ^ "Справочное руководство по Bash" . www.gnu.org . Архивировано 15 сентября 2019 года . Проверено 15 сентября 2019 года .
- ^ «Более продуктивная работа с bash 2.x / 3.x» . www.caliban.org . Архивировано 29 июня 2018 года . Проверено 21 июня 2018 года .
- ^ «6.11 Bash POSIX Mode» , Справочное руководство GNU Bash, для Bash, версия 4.1 , 23 декабря 2009 г., заархивировано из оригинала 3 декабря 2010 г. , получено 26 октября 2010 г.
- ^ «Расширенное руководство по сценариям на Bash» . www.tldp.org . Раздел 37.2 (Bash, версия 3). Архивировано 5 мая 2017 года . Проверено 5 марта 2017 года .
- ^ «Баш, версия 4» . tldp.org . Архивировано 1 июля 2018 года . Проверено 25 июня 2018 года .
- ^ «Баш FAQ061» . mywiki.wooledge.org .
- ^ «Массивы (Справочное руководство по Bash)» . www.gnu.org . Архивировано 11 июля 2018 года . Проверено 4 июля 2018 года .
- ^ «macos - Обновите bash до версии 4.0 в OS X» . Спросите другого . Архивировано 25 июня 2018 года . Проверено 25 июня 2018 года .
- ^ а б Мендель Купер. «Проблемы переносимости» . Проект документации Linux . ibiblio.org. Архивировано 27 января 2012 года . Проверено 26 января 2012 года .
- ^ а б «10. Файлы» . Руководство по политике Debian, версия 4.5.0.2 . Архивировано 12 мая 2020 года . Проверено 11 мая 2020 года .
- ^ «Как форматировать дату и время в Linux, MacOS и Bash?» . Советы Shell! . Архивировано 3 июня 2020 года . Проверено 3 июня 2020 года .
- ^ - Руководство по основным командам Linux
- ^ - Руководство по основным командам Linux
- ^ «Переносная оболочка» . Autoconf . Архивировано 2 марта 2021 года . Проверено 20 января 2020 года .
- ^ «Помощь по BASH - Учебное пособие по Bash» . Hypexr.org. 5 октября 2012 года. Архивировано 2 марта 2021 года . Проверено 21 июля 2013 года .
- ^ "Справочное руководство по Bash" . www.gnu.org . Архивировано 15 марта 2018 года . Проверено 27 марта 2018 года .
- ^ bashbug (1) Архивировано 2 октября 2018 г., на Wayback Machine , die.net.
- ^ «Linux / Unix Command: bashbug». Архивировано 6 октября 2014 г. на Wayback Machine , apple.com.
- ^ "Справочное руководство по Bash" . tiswww.case.edu .
- ^ «Более продуктивная работа с bash 2.x / 3.x» . www.caliban.org . Архивировано 29 июня 2018 года . Проверено 21 июня 2018 года .
- ^ "Индекс / gnu / bash" . ftp.swin.edu.au . Архивировано 8 марта 2020 года . Проверено 15 сентября 2019 года .
- ^ «BashFAQ / 061 - Вики Грега» . mywiki.wooledge.org . Архивировано 2 марта 2021 года . Проверено 1 марта 2021 года .
- ^ "История версий github NEWS v5.0" . GitHub . Архивировано 10 сентября 2020 года . Проверено 1 марта 2021 года .
- ^ «Архивная копия» . Архивировано 18 марта 2020 года . Проверено 25 ноября 2019 года .CS1 maint: заархивированная копия как заголовок ( ссылка )
- ^ «Доступен релиз Баш-5.0» . lists.gnu.org . Архивировано 8 ноября 2020 года . Проверено 1 марта 2021 года .
Внешние ссылки
- Официальный веб-сайт
- Интервью 2008 года с сопровождающим GNU Bash Четом Рэми