Скриншот сеанса Bash | |
Автор (ы) оригинала | Брайан Фокс |
---|---|
Начальная версия | 8 июня 1989 г . |
Стабильный выпуск | 5.1 (7 декабря 2020 г . [±] [1] [2] | )
Репозиторий | |
Написано в | C |
Операционная система | |
Платформа | GNU |
Доступно в | Многоязычный ( gettext ) |
Тип | Оболочка Unix , командный язык |
Лицензия | GPLv3 + [6] |
Интернет сайт | www |
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]
Bash - это командный процессор, который обычно запускается в текстовом окне, где пользователь вводит команды, вызывающие действия. Bash также может читать и выполнять команды из файла, который называется сценарием оболочки . Как и все оболочки Unix, он поддерживает подстановку имен файлов (сопоставление с подстановочными знаками), конвейерную обработку , здесь документы , подстановку команд , переменные и управляющие структуры для проверки условий и итераций . В ключевые слова , синтаксис , с динамической областью видимости переменных и другие основные особенностиязык все скопированы с sh . Другие функции, например история , копируются из 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] Fox выпустила бета-версию 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 (ksh) иС оболочки (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] [44]
В феврале 2009 г. [45] Bash 4.0 представил поддержку ассоциативных массивов . [46] Индексы ассоциативного массива - это строки, аналогичные AWK или Tcl . [47] Их можно использовать для имитации многомерных массивов. Bash 4 также переключает свою лицензию на GPLv3 ; некоторые пользователи подозревают, что это изменение лицензирования является причиной того, что MacOS продолжает использовать более старые версии. [48] 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
Сценарии запуска [ править ]
Этот раздел содержит инструкции, советы или практические советы . Январь 2019 ) ( |
Когда 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 . [49] Сценарии оболочки Bash, предназначенные для переносимости, должны учитывать как минимум стандарт оболочки POSIX. Некоторые функции bash, которых нет в POSIX: [49] [50]
- Некоторые расширенные параметры вызова
- Расширение скобы
- Массивы и ассоциативные массивы
[[ ... ]]
Расширенная тестовая конструкция с двойной скобкой и соответствие ее регулярному выражению- Двойные скобки арифметико-оценка конструкция (только
(( ... ))
;$(( ... ))
это POSIX) - Некоторые операции со строками при раскрытии параметров
local
для переменных с ограниченным объемом- Замена процесса
- Специфичные для Bash встроенные команды
- Сопроцессы
- Переменные $ EPOCHSECONDS и $ EPOCHREALTIME [51]
Если часть кода использует такую возможность, это называется «башизмом» - проблемой для портативного использования. Можно использовать Debian checkbashisms
и Vidar Holen, shellcheck
чтобы убедиться, что сценарий не содержит этих частей. [52] [53] Список изменяется в зависимости от фактической оболочки мишени: политика Debian позволяет некоторым расширения в своих сценариях (как в dash), [50] в то время как сценарий намерен поддерживать предварительно POSIX Bourne оболочки, как Autoconf «s configure
, еще более ограничены в возможностях, которые они могут использовать. [54]
Сочетания клавиш [ править ]
Bash использует readline для предоставления сочетаний клавиш для редактирования командной строки с использованием привязок клавиш по умолчанию ( Emacs ). Привязки Vi можно включить, запустив set -o vi
. [55]
Управление процессами [ править ]
Оболочка Bash имеет два режима выполнения команд: пакетный и параллельный.
Для выполнения команд в пакетном режиме (т. Е. По порядку) они должны быть разделены символом «;» или отдельными строками:
command1 ; command2
в этом примере, когда команда 1 завершена, выполняется команда 2.
Фон исполнение из command1 может происходить с помощью (символ &) в конце выполнение команды, и процесс будет выполняться в фоновом режиме возвращение немедленно контролировать к корпусу и позволяя дальнейшее выполнение команд.
command1 &
Или, чтобы одновременно выполнялись две команды command1 и command2, они должны выполняться в оболочке Bash следующим образом:
команда1 и команда2
В этом случае command1 выполняется в фоновом режиме символа & , немедленно возвращая управление оболочке, которая выполняет command2 на переднем плане.
Процесс можно остановить и вернуть управление bash, набрав Ctrl+, zкогда процесс выполняется на переднем плане. [56]
Список всех процессов, как фоновых, так и остановленных, можно получить, запустив 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 (или, необязательно, на другие адреса электронной почты). [57] [58]
Программируемое завершение [ править ]
Программируемое завершение Bash complete
и compgen
команды [59] были доступны с бета-версии 2.04 [60] в 2000 году. [61] Эти средства позволяют выполнять сложное интеллектуальное завершение, например, предлагая заполнить доступные параметры программы с помощью табуляции, а затем, после того, как пользователь выбирает параметр, который требует имени файла в качестве следующего ввода, только автоматически заполняя пути к файлам (а не другие параметры) для следующего токена.
История выпусков [ править ]
Версия | Дата выпуска | Примечания к выпуску |
---|---|---|
bash-5.1 | 2020-12-07 | история версий github НОВОСТИ [62] |
bash-5.0 | 2019-01-07 | [63] [64] [65] |
Баш-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 года .
- ^ Рэми, Chet (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 лицензии (или любая более поздняя версия).
- ^ a b c Ричард Столлман (отправлено с комментариями Четом Рэми) (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 г. ,
когда Ричард Столлман решил Он знал, что для создания полной замены тогда перегруженных систем Unix ему потребуются замены для всех общих утилит, особенно для стандартной оболочки, и эти замены должны иметь приемлемую лицензию.
- ^ a b Брайан Фокс (направлен Леонардом Х. Тауэром-младшим) (8 июня 1989 г.). "Bash находится в стадии бета-версии!" . Группа новостей : gnu.announce . Архивировано 4 мая 2013 года . Проверено 28 октября 2010 года .
- ^ a b Уоррен, Том (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 года .
- ^ a b Хьюз, Мэтью (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, 2011 ,
название каламбур на имя Bourne оболочки (ш), ранний и важная оболочка Unix, написанная Стивеном Борном и распространяемая вместе с версией 7 Unix около 1978 года, и концепция «рождения свыше».
- ^ Chazelas, Stephane (4 октября 2014). "архивы списков рассылки oss-sec" . Seclists.org . Архивировано 6 октября 2014 года . Проверено 4 октября 2014 года .
- ↑ Лейден, Джон (24 сентября 2014 г.). «Патч Bash СЕЙЧАС: ошибка Shell Shock широко раскрывает системы OS X и Linux» . Реестр . Архивировано 16 октября 2014 года . Проверено 25 сентября 2014 года .
- ^ Perlroth, Николь (25 сентября 2014). «Эксперты по безопасности ожидают, что программная ошибка Shellshock в Bash будет значительной» . Нью-Йорк Таймс . Архивировано 5 апреля 2019 года . Проверено 25 сентября 2014 года .
- ^ Зельцер, Ларри (29 сентября 2014). «Shellshock делает Heartbleed незначительным» . ZDNet . Архивировано из оригинального 14 мая 2016 года.
- ^ Брайан Фокс (29 августа 1996), shell.c , Фонд свободного программного обеспечения , в архиве с оригинала на 28 сентября 2018 года , получен 1 ноября 2010 ,
Дата рождения: воскресенье, 10 января, 1988. Первоначальный автор: Brian Fox
- ↑ Ричард Столмен (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 года .
- ^ Huzaifa Sidhpurwala (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 года .
- ^ Комиссия по двухсотлетию Конституции Соединенных Штатов. Коллекция Линкольнианы Фрэнка и Вирджинии Уильямс (Государственный университет Миссисипи. Библиотеки). Верховный суд Соединенных Штатов: его начало и его судьи, 1790–1991 . OCLC 25546099 . Архивировано 2 марта 2021 года . Проверено 12 сентября 2020 года .
- ^ "Bash, версия 4" . tldp.org . Архивировано 1 июля 2018 года . Проверено 25 июня 2018 года .
- ^ " Список литературы" , Диагностическое Ссылка Индекс клинической неврологии , Elsevier, стр реф-1a-реф-70, 1986,. Дои : 10.1016 / b978-0-409-90016-3.50033-9 , ISBN 978-0-409-90016-3, заархивировано из оригинала 2 марта 2021 г. , получено 12 сентября 2020 г.
- ^ "Массивы (Справочное руководство Bash)" . www.gnu.org . Архивировано 11 июля 2018 года . Проверено 4 июля 2018 года .
- ^ «macos - Обновите bash до версии 4.0 в OSX» . Спросите другого . Архивировано 25 июня 2018 года . Проверено 25 июня 2018 года .
- ^ a b Мендель Купер. «Проблемы переносимости» . Проект документации Linux . ibiblio.org. Архивировано 27 января 2012 года . Проверено 26 января 2012 года .
- ^ a b «10. Файлы» . Руководство по политике Debian, версия 4.5.0.2 . Архивировано 12 мая 2020 года . Проверено 11 мая 2020 года .
- ^ "Как форматировать дату и время в Linux, MacOS и Bash?" . Советы Shell! . Архивировано 3 июня 2020 года . Проверено 3 июня 2020 года .
- ^ - Руководство по основным командам Linux
- ^ - Руководство по основным командам Linux
- ^ "Portable Shell" . 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 v5.0" . GitHub . Архивировано 10 сентября 2020 года . Проверено 1 марта 2021 года .
- ^ "Архивная копия" . Архивировано 18 марта 2020 года . Проверено 25 ноября 2019 года .CS1 maint: archived copy as title (link)
- ^ "Доступен выпуск Bash-5.0" . lists.gnu.org . Архивировано 8 ноября 2020 года . Проверено 1 марта 2021 года .
Внешние ссылки [ править ]
Викискладе есть медиафайлы по теме Баш . |
В Wikibooks есть книга на тему: Bash Shell Scripting. |
- Официальный веб-сайт
- Интервью 2008 года с сопровождающим GNU Bash Четом Рэми