Всем привет! С вами ITень!
Сегодня вы узнаете:
1. Что такое Bash?
2. Какова история Bash?
3. Почему Bash есть только на POSIX системах?
4. Как работать с Bash?
5. Как программировать на Bash?
"Глава 1 - Что такое Bash?"
Bash - Скриптовый "язык программирования", который был создан в 1989 году. Да, сейчас будут коментарии по типу "Bash это не язык программирования, а командная оболочка", но нужно для понятия всей картины углубляться внутрь.
Как это было: В конце 80-х в мире командной оболочкой был так называемый SH (но я его буду называть BSH), которая была потомком TSH. Она была полноценным языком для написания скриптов, но была эта оболочка проприетарной. И фонд свободного программного обеспечения (FSF - Free Software Foundation) искал замену. В итоге, эту задачу поручили Брайану Фоксу - первому сотруднику фонда.
В чём суть: Брайану Фоксу нужно было создать замену старому и проприетарному BSH (или просто - SH), который мог бы поддерживать написания скриптов, которые бы выполнялись в терминале. И он сделал! Ещё 10 января 1988 годя он начал разработку, а 8 июня 1989 года уже выложил бета-версию Bash.
Вывод: Bash - Скриптовый язык программирования, который был создан в 1989 году как замена проприетарному BSH.
Кому интересна история Bash, то слушайте:
Начнём ещё с 1971 года. В этом году Кен Томпсон создал первую оболочку для Unix - Thompson shell. Это была довольно простая оболочка, которая не поддерживала написание скриптов, только как интерактивный интерпретатор команд. (как раз именно по этому и назвал я его так: TSH - Thompson shell)
После, в 1977 году Стивен Борн представил Bourne shell, которая и называлась SH (но я её назвал BSH - Bourne shell). Эта оболочка решала главную проблему TSH - она была не просто интерактивным интерпретатором команд, а полноценным языком программирования, который поддерживал написание скриптов в формате *.sh. Но была одна проблема: оболочка данная была проприетарной.
И вот, в конце 80-х, BSH был стандартом для всех. Но FSF нужно было искать замену BSH, так как фонд - открытого программного обеспечения. Потом, Браян Фокс разработал BASH в 1989 году.
После его выхода, он начал набирать популярность. С 1990 года основным разработчиком и сопровождающим проекта стал Чет Рамей, который занимается этим и сегодня. В 1996 году вышла версия 2.0.
Но ключевым моментом здесь было то, что сделал великий программист - Линус Торвальдс. Сделав первые версии ядра Linux, он переписал Bash одной из первых на своё ядро. Именно поэтому в большинстве дистрибутивов стоит сейчас не какой-нибудь NNTFGSH, а Bash.
"Глава 2 - Почему Bash есть только на POSIX системах?"
Ах да, я же ещё не сказал что такое POSIX...
POSIX - это стандарт операционных систем, в который входят Linux, Unix, FreeBSD, Mac OS и другие (об этом отдельная статья).
"Так почему же так?" - спросите вы меня.
А потому, что Windows использует терминал как "просто есть", а не для большинства людей. Но есть чудесная штуковина под названием WSL (помните, я вас просил не удалять его?). Там можно как раз работать с Bash.
"Глава 3 - Как работать и программировать на Bash?"
Да, я отдельно сделал подглавы для работы с интерактивным интерпретатором и для программирования.
Как работать в Bash?
Как запустить для Linux:
1. Запустите терминал (у вас он может быть другим);
2. Введите команду "bash" (это делается на всякий случай).
Как запустить для Windows:
1. Проверьте, установлен ли у вас WSL;
2. Если не установлен, установите его из магазина приложений Microsoft с Debian;
3. Запустите WSL;
4. Введите команду Bash.
Далее нужно будет вводить команды... Всё...
Вот теперь все команды будут не только для Linux, так как на Windows есть WSL (пожалуйста, не закрывайте его, в нём вы будете работать).
Для вывода "Hello, world!" мы можем использовать 2 метода:
1. Echo - Самый простой способ;
2. Printf - Более низкоуровневый.
Для простого вывода обычно используют метод с echo: <echo "Hello, world!">
Для низкоуровневого вывода (как в C, вы от него не убежите) используют метод printf: <printf "Hello, world! \n">
Как программировать на Bash?
Сначала, нужно ввести команду "touch main.sh", после "nano main.sh".
Первая команда нужна для создания файла, а втора для редактирования. Конечно, можно было бы всё сделать одной командой, но я так привык и так нагляднее.
После этого для вывода "Hello, world!" нам надо ввести данный код:
```Bash
#!/bin/bash
# Но можно так: #!/usr/bin/bash
# Если хотите использовать метод с echo:
echo "Hello, world!"
# Если хотите метод с printf:
printf "Hello, world!\n"
```
После этого нажимаем на клавиши CTRL + S, а потом CTRL + X. Первая комбинация клавиш нужна для сохранения в файл, а вторая для выхода из программы.
Потом вводим "bash ./main.sh", и видим либо 1 строку, либо 2 строки (если вы не закомментировали одну из строк символом #).
Поздравляю! Вы начали работу в Bash!
Если захотите сделать чуть побольше в терминале, чем вывод "Hello, world!", то вот список базовых программ:
grep - для поиска строки в файле, которая имеет при себе слово, которое вы указали в аргументах;
cat - вывод содержимого файла, который вы указали в аргументах;
ls - вывод содержимого каталога;
cd - переход в директорию, которую вы указали;
nano - редактирование файлов;
touch - создание файлов;
И так далее, их очень много.
"Глава 4 - Что в итоге?"
Вы за сегодня узнали:
1. Что такое Bash;
2. Историю Bash;
3. Как работать с Bash;
4. Как программировать на Bash;
5. Почему Bash доступен только для POSIX систем (с лазейками).
Пишите в комментариях:
* Знали ли вы про Bash раньше?
* Программировали ли вы на Bash раньше?
* Как вы относитесь к Bash?
Даже если вам статья не понравилась, то напишите, почему именно, либо просто комментарий напишите, мне приятно будет почитать.
С вами был ITень, всем пока!