Добавить в корзинуПозвонить
Найти в Дзене
ITень

Что такое Bash и с чем его едят?

Всем привет! С вами 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), который мог бы поддерживать написания скриптов, которые бы выполнялись в

Всем привет! С вами ITень!

Сегодня вы узнаете:

1. Что такое Bash?

2. Какова история Bash?

3. Почему Bash есть только на POSIX системах?

4. Как работать с Bash?

5. Как программировать на Bash?

"Глава 1 - Что такое Bash?"

Логотип Bash
Логотип 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" (это делается на всякий случай).

Фото терминала с выполненной командой "bash"
Фото терминала с выполненной командой "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!">

Фото выводам текста через "echo"
Фото выводам текста через "echo"

Для низкоуровневого вывода (как в C, вы от него не убежите) используют метод printf: <printf "Hello, world! \n">

Фото выводам текста через "printf"
Фото выводам текста через "printf"

Как программировать на Bash?

Сначала, нужно ввести команду "touch main.sh", после "nano main.sh".

Фото этих двух команд
Фото этих двух команд

Первая команда нужна для создания файла, а втора для редактирования. Конечно, можно было бы всё сделать одной командой, но я так привык и так нагляднее.

После этого для вывода "Hello, world!" нам надо ввести данный код:

```Bash

#!/bin/bash

# Но можно так: #!/usr/bin/bash

# Если хотите использовать метод с echo:

echo "Hello, world!"

# Если хотите метод с printf:

printf "Hello, world!\n"

```

Фото Nano с кодом
Фото Nano с кодом

После этого нажимаем на клавиши CTRL + S, а потом CTRL + X. Первая комбинация клавиш нужна для сохранения в файл, а вторая для выхода из программы.

Фото терминала после Nano
Фото терминала после Nano

Потом вводим "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ень, всем пока!