Explorar el Código

Загрузить файлы 'Лекции/Bash'

u21koval_nik hace 1 año
padre
commit
da3fddb1a7
Se han modificado 1 ficheros con 48 adiciones y 21 borrados
  1. 48 21
      Лекции/Bash/Bash Ковалев Никита.md

+ 48 - 21
Лекции/Bash/Bash Ковалев Никита.md

@@ -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>