|
@@ -1,7 +1,17 @@
|
|
|
# Интегрированная среда разработки Bash (Ковалев Никита 47 группа)
|
|
|
-__Bash__ (Bourne again shell) — это стандартная командная оболочка в большинстве дистрибутивов Linux и macOS, а также язык для этой оболочки.
|
|
|
+## Что такое Bash
|
|
|
+__BASH__ (Bourne-Again Shell) — один из наиболее распространенных командных интерпретаторов в UNIX-подобных системах, а также язык интерфейса командной строки, который поддерживает использование переменных, массивов, циклов, функций, арифметических операторов, операций ввода-вывода и прочих возможностей.
|
|
|
+
|
|
|
+Bash был создан и выпущен в 1989 году Брайаном Фоксом как open source замена для Bourne Shell, вышедшей в 1976 году. Его название является аббревиатурой от Bourne Again SHell.
|
|
|
+
|
|
|
+Большинство современных операционных систем, кроме WINDOWS, основаны на UNIX. Это, в том числе, дистрибутивы Linux, macOS, iOS и Android. UNIX характеризуется модульной архитектурой, в которой каждая функция выполняется отдельной программой, а взаимодействие между ними происходит через общую файловую систему. Shell используется для управления этими программами и исполнения команд.
|
|
|
+
|
|
|
+__Shell (оболочка)__ — это программа, обеспечивающая взаимодействие пользователя с системой. В командной строке вы вводите команды, которые оболочка интерпретирует, вызывает соответствующие программы и отображает результаты. Команды могут подаваться не только в текстовом режиме, но и считываться из файла, называемого shell-скриптом или оболочкой shell-программы.
|
|
|
+
|
|
|
+Для обеспечения интерфейса командной строки в операционных системах используются командные интерпретаторы. Они могут представлять собой самостоятельные языки программирования со своим синтаксисом и функциональными возможностями.
|
|
|
+
|
|
|
+Самые популярные командные интерпретаторы — это __Terminal__ (Linux, macOS) и __Konsole__ (Windows). Именно с их помощью можно взаимодействовать с командной оболочкой shell, которая будет принимать специальные команды и передавать их на выполнение операционной системе.
|
|
|
|
|
|
-Bash создан Брайаном Фоксом и выпущен в 1989 году как open source замена для Bourne Shell, вышедшей в 1976 году. Его название является аббревиатурой от Bourne Again SHell.
|
|
|
|
|
|
Язык Bash поддерживает переменные, массивы, циклы, функции, условные и арифметические операторы, операции ввода-вывода и другие средства. Но главная его фишка — возможность создавать скрипты для ускорения работы на компьютере и автоматизации рутины. Например, с их помощью можно:
|
|
|
|
|
@@ -11,14 +21,31 @@ Bash создан Брайаном Фоксом и выпущен в 1989 год
|
|
|
* проверять и обновлять систему и приложения;
|
|
|
* одной командой очищать кэш браузера.
|
|
|
|
|
|
-## Основы Bash: синтаксис, переменные и команды
|
|
|
+## Основы Bash
|
|
|
+Для начала — три главных особенности, с которых стоит начать знакомство с Bash:
|
|
|
+
|
|
|
+1. Написание любого скрипта нужно начинать со строки: #!/bin/bash. После символа #! следует путь к bash-интерпретатору. Вы можете узнать путь к нему (возможно, интерпретатор был установлен в другое место) с помощью команды whereis bash.
|
|
|
+2. Комментарии и примечания нужно указывать после символа # (кроме первой строки, где мы указываем путь к bash-интерпретатору)
|
|
|
+3. Bash не имеет строгой системы типов
|
|
|
+
|
|
|
+Тип данных определяется в зависимости от контекста использования переменной и ее содержимого. Bash устанавливает следующие правила для именования переменных:
|
|
|
+
|
|
|
+* Имена переменных должны начинаться с латинской буквы (в верхнем или нижнем регистре) или символа подчеркивания.
|
|
|
+
|
|
|
+* В имени переменной запрещено использовать пробелы или специальные символы.
|
|
|
+
|
|
|
+* Регистр букв в именах переменных учитывается. Переменные name1 и Name1 считаются разными.
|
|
|
+
|
|
|
+* Рекомендуется избегать использования ключевых слов Bash в качестве названий переменных
|
|
|
+
|
|
|
+## Синтаксис, переменные и команды
|
|
|
|
|
|
### Переменные
|
|
|
|
|
|
Переменные в Bash объявляются просто:
|
|
|
|
|
|
```
|
|
|
-message="Hello, World!"
|
|
|
+message="Good morning!"
|
|
|
```
|
|
|
|
|
|
Теперь переменная message хранит значение — текстовое сообщение «Hello, World!».
|
|
@@ -28,15 +55,7 @@ message="Hello, World!"
|
|
|
echo $message
|
|
|
```
|
|
|
|
|
|
-В Bash пробелы являются разделителями. Если пробелы есть, то Bash будет считать их отдельными токенами и выдавать ошибки.
|
|
|
-
|
|
|
-Следующий код приведёт к ошибке:
|
|
|
-
|
|
|
-```
|
|
|
-message = "Hello, World!"
|
|
|
-bash: message: command not found
|
|
|
-```
|
|
|
-Также обратите внимание на символ __$__ — в Bash он называется символом расширения (expansion character). Поставленный перед именем переменной, он указывает на то, что нужно использовать именно значение переменной, а не одноимённую строку.
|
|
|
+В Bash символ __$__ называется символом расширения (expansion character). Поставленный перед именем переменной, он указывает на то, что нужно использовать именно значение переменной, а не одноимённую строку.
|
|
|
|
|
|
Следующий код выведет сообщение «message»:
|
|
|
```
|
|
@@ -56,12 +75,6 @@ read -p "Enter your name: " name # Будет выведено «Enter your name
|
|
|
# Пользователь вводит что-то
|
|
|
echo $name
|
|
|
```
|
|
|
-В Bash есть несколько правил именования переменных:
|
|
|
-
|
|
|
-* Имя переменной должно начинаться с буквы латинского алфавита (нижнего или верхнего регистра) или символа подчёркивания _.
|
|
|
-* Оно может включать буквы, цифры и символ подчёркивания, но не может содержать пробелы или специальные символы.
|
|
|
-* Регистр букв в именах переменных имеет значение. Например, переменные var1 и Var1 будут рассматриваться как разные.
|
|
|
-* Не рекомендуется использовать зарезервированные слова Bash в качестве имён переменных.
|
|
|
|
|
|
### Типы данных
|
|
|
|
|
@@ -156,7 +169,20 @@ fi
|
|
|
```
|
|
|
В этом случае команды будут выполнены, только если условие истинно.
|
|
|
|
|
|
-Кроме того, в Bash есть логические операторы __& & (логическое И)__ и __|| (логическое ИЛИ)__, которые позволяют комбинировать несколько условий и возвращать соответствующее булево значение.
|
|
|
+Cписок логических операторв, которые используются для конструкции if-then-else-fi:
|
|
|
+* -z # строка пуста
|
|
|
+* -n # строка не пуста
|
|
|
+* =, (==) # строки равны
|
|
|
+* != # строки неравны
|
|
|
+* -eq # равно
|
|
|
+* -ne # неравно
|
|
|
+* -lt,(< ) # меньше
|
|
|
+* -le,(<=) # меньше или равно
|
|
|
+* -gt,(>) #больше
|
|
|
+* -ge,(>=) #больше или равно
|
|
|
+* ! #отрицание логического выражения
|
|
|
+* -a,(&&) #логическое «И»
|
|
|
+* -o,(||) # логическое «ИЛИ»
|
|
|
|
|
|
### Циклы
|
|
|
Как и в большинстве языков программирования, в Bash есть циклы. Они бывают двух видов:
|
|
@@ -211,4 +237,5 @@ done
|
|
|
## Литература
|
|
|
|
|
|
1. <https://skillbox.ru/media/code/kak-polzovatsya-bash-ekspressrukovodstvo-dlya-nachinayushchikh/>
|
|
|
-2. <https://cloud.vk.com/blog/detali-raboty-bash>
|
|
|
+2. <https://cloud.vk.com/blog/detali-raboty-bash>
|
|
|
+3. <https://1cloud.ru/blog/bash_basics>
|