瀏覽代碼

Merge branch 'master' of http://213.155.192.79:3001/ypv/ISRPO

ypv 2 年之前
父節點
當前提交
210d155384

二進制
Лекции/Bash/Aspose.Words.37828ec9-38e1-4906-8d34-877ca1aed47b.001.png


二進制
Лекции/Bash/Aspose.Words.37828ec9-38e1-4906-8d34-877ca1aed47b.002.png


二進制
Лекции/Bash/Aspose.Words.37828ec9-38e1-4906-8d34-877ca1aed47b.003.png


二進制
Лекции/Bash/Aspose.Words.37828ec9-38e1-4906-8d34-877ca1aed47b.004.png


二進制
Лекции/Bash/Aspose.Words.37828ec9-38e1-4906-8d34-877ca1aed47b.005.png


二進制
Лекции/Bash/Aspose.Words.37828ec9-38e1-4906-8d34-877ca1aed47b.006.png


二進制
Лекции/Bash/Aspose.Words.37828ec9-38e1-4906-8d34-877ca1aed47b.007.png


二進制
Лекции/Bash/Aspose.Words.37828ec9-38e1-4906-8d34-877ca1aed47b.008.png


二進制
Лекции/Bash/Aspose.Words.37828ec9-38e1-4906-8d34-877ca1aed47b.009.png


二進制
Лекции/Bash/Aspose.Words.37828ec9-38e1-4906-8d34-877ca1aed47b.010.png


二進制
Лекции/Bash/Aspose.Words.37828ec9-38e1-4906-8d34-877ca1aed47b.011.png


二進制
Лекции/Bash/Aspose.Words.37828ec9-38e1-4906-8d34-877ca1aed47b.012.png


二進制
Лекции/Bash/Aspose.Words.37828ec9-38e1-4906-8d34-877ca1aed47b.013.png


+ 150 - 0
Лекции/Bash/Bash.md

@@ -0,0 +1,150 @@
+# Терминал
+
+Командная оболочка Bash является одним из нескольких главных компонентов в дистрибутивах Linux. Она позволяет читать и запускать команды, выполнять скрипты, работать с файлами. Наличие Bash не менее важно для полноценного функционирования операционных систем семейства Linux, чем ядро или рабочее окружение.
+
+Рассмотрим, как и для чего был создан программный продукт, разберем его преимущества, области применения и расскажем о начале работы с Bash. Обзор будет полезен всем, кто начинает свое практическое знакомство с Linux, а также тем, кто хочет иметь под рукой удобную шпаргалку с основным функционалом командного интерпретатора.
+
+**Что такое Bash**
+
+**Bash** (Bourne again shell или «возрождённый» shell) – это модифицированная версия программной оболочки Bourne-shell (sh или «Оболочка Борна»). Она является командным процессором, работающим интерактивно в текстовом окне. Bash нужен для приема команд пользователя и их отправки операционной системе для последующей обработки.
+
+![](Aspose.Words.37828ec9-38e1-4906-8d34-877ca1aed47b.001.png)
+
+**Bash** – это универсальный инструмент для выполнения различных задач, который в некоторых случаях позволяет избежать установки специализированного программного обеспечения. Одновременно, это скриптовый язык программирования, позволяющий создавать сценарии для автоматизации различных операций.
+
+**История создания**
+
+Предшественница Bash  –  Bourne-shell (sh, «Оболочка Борна») была одной из первых оболочек для операционных систем Unix. Ее создал в 1978 году британский ученый Стивен Борн, давший Bourne-shell свое имя.
+
+Изначально оболочка sh обладала относительно небольшим набором функций. Но в 1987 году Bourne-shell заинтересовался программист Брайан Фокс, сумевший доработать и значительно расширить ее функционал. В 1989 году Брайан создал бета-версию Bash и продолжал поддерживать свое детище вплоть до 1993 года.
+
+![](Aspose.Words.37828ec9-38e1-4906-8d34-877ca1aed47b.002.png)
+
+Брайан Фокс — создатель оболочки Bash.
+
+Основные команды, правила их написания и прочие особенности Bash были перенесены из sh. Прочие возможности, включая историю, позаимствованы из Korn Shell и C Shell (других вариаций Bourne-shell). Bash практически полностью соответствует стандартам POSIX.
+
+Сегодня оболочка Bash предустановлена в большей части дистрибутивов Unix/Linux. Взаимодействие оболочки и операционной системы обеспечивается с помощью специальной программы – терминала (например, lxterm, xterm, eterm, gnome-terminal).
+
+**Синтаксис**
+
+Правила написания Bash представляют собой расширенный синтаксис Bourne-shell. Узнать подробности про основы взаимодействия с оболочкой, а также спецификации конкретных команд можно в руководстве [Bash Reference Manual](https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html), распространяемом GNU. Это полезная шпаргалка для начинающих, позволяющая быстрее сориентироваться в оболочке.
+
+**Пример скрипта**
+
+Ниже рассмотрен пример самого простого скрипта, выводящего надпись «Hello world».
+
+#!/usr/bin/env bash
+
+**echo** 'Hello World!'
+
+Данный сценарий состоит из двух строк, где первая указывает операционной системе, что файл должен запускаться при помощи оболочки Bash. Во второй строчке указывается действие – его и должен выполнить скрипт. Это действие должно напечатать в окне терминала соответствующую надпись.
+
+![](Aspose.Words.37828ec9-38e1-4906-8d34-877ca1aed47b.003.png)
+
+**Отличие Bash от Bourne-shell**
+
+Bash в Linux способна выполнять практически все важные сценарии Bourne-shell без внесения дополнительных изменений. Исключение составляют те, где необходимо ссылаться на спецпеременные Bourne-shell или, где применяются ее встроенные команды.
+
+В синтаксисе Bash применяются приемы из Korn Shell и C Shell:
+
+- редактирование командной строки;
+- вывод истории команд;
+- создание стеков директорий;
+- правила замены команд «$(…)»;
+- переменные «$PPID» и «$RANDOM».
+
+Используя консоль Bash в качестве интерактивного интерпретатора, можно прибегать к автодополнению названий файлов, программ, переменных и команд нажатием клавиши Tab (↹).
+
+**Для чего нужен Bash**
+
+![](Aspose.Words.37828ec9-38e1-4906-8d34-877ca1aed47b.004.png)
+
+**Основные преимущества**
+
+На данный момент разработано множество различных вариаций Bourne-Shell. Но, по сравнению с ними, командный интерпретатор Bash обладает рядом преимуществ.
+
+- Позволяет работать со структурами «[[» (в sh доступна только «[» с ограничениями).
+- Поддерживает работу с массивами в Линуксе.
+- Доступно множество расширений, выполненных по стандартам C, включая циклы с тремя аргументами «for((i=0;i<=3;i++))», возможность присваивать инкремент «+=» и многое другое.
+- Поддерживает синтаксис «<<<‘here strings’».
+- Работает с расширениями «.{png,jpg}».
+- Доступны алиасы для перенаправления, подобно «Csh», подобно «&|» для «2>&1 |» и «&>» для «> … 2>&1».
+- Поддерживает сопроцессы с перенаправлением «<>».
+- Огромный комплект расширений нестандартных конфигураций, включая изменение регистра.
+- Существенно увеличены возможности арифметики (правда, нет поддержки чисел с плавающей точкой).
+- Переменные «$RANDOM», «$SECONDS», «$PIPESTATUS[@]» и «$FUNCNAME» в Bash являются расширениями.
+- Доступно огромное количества функций, обеспечивающих работу в интерактивном режиме. Хотя на поведение скриптов они не влияют.
+
+*Примечание. Чем новее интерпретатор, тем больше функций он предоставляет. Узнать версию Bash в Linux можно командой:*
+
+**$SHELL** --version
+
+![](Aspose.Words.37828ec9-38e1-4906-8d34-877ca1aed47b.005.png)
+
+**Примеры применения**
+
+- Вывести указанное количество строчек из лога.
+- Найти и составить выборку ключевых слов, сохранив их в новом файле.
+- Очистить экран терминала.
+- Приостановить работающие задачи и перезапустить ранее приостановленные.
+- Создать архив директории с файлами и отправить его на другой компьютер в одной сети через определенный сетевой протокол.
+- Произвести настройку системы создания резервных копий файлов баз данных, используя дампинг.
+- Послать запрос о конфигурации других компьютеров в сети. Отправить файл с собранной информацией на электронную почту.
+- Найти на диске дублированные файлы, отобразить их список и выполнить запрос их удалить.
+- Рекурсивно заменить владельцев указанных файлов и папок.
+
+**Как работать с Bash**
+
+Рассмотрим, как пользоваться Bash на примере подключения к веб-серверу (где находятся файлы сайта) с установленным дистрибутивом Linux через протокол SSH с нуля.
+
+![](Aspose.Words.37828ec9-38e1-4906-8d34-877ca1aed47b.006.png)
+
+Для этого можно воспользоваться любым предпочитаемым [способом](https://eternalhost.net/base/vps-vds/ssh-podklyuchenie). В данном случае рассматривается веб-сервер с Ubuntu, хотя в других дистрибутивах принцип остается тем же.
+
+1. После успешного ввода логина и пароля программа Терминал Linux в автоматическом режиме запустит Bash. Собственно, пользователь уже подключится к системе и увидит приглашение на ввод команд.
+
+2. Приглашение отображается относительно стандартно и имеет следующий вид:
+
+<имя пользователя>@<имя компьютера>:<текущий каталог><знак>.
+
+![](Aspose.Words.37828ec9-38e1-4906-8d34-877ca1aed47b.007.png)
+
+В примере:
+
+- размытием закрыто имя пользователя;
+- «vPro» – название компьютера;
+- графема тильда (~) в Линуксе обозначает домашнюю папку пользователя в сокращенном виде (/home/user). Она в Bash по умолчанию является текущей
+- знак доллара ($) указывает, что пользователь не имеет прав администратора. Работая как администратор, вместо знака доллара отображается знак решетки (#).
+
+3. Когда приглашение выполнено, терминал автоматически поставит пробел и будет находиться в ожидании ввода команд. На предложенном изображении была нажата кнопка «Enter». В следующей строчке введена команда «cd» перейти в существующий каталог «/opt». Еще ниже отображается результат вывода – рабочей папкой стала «/opt» и это показано в приглашении.
+
+![](Aspose.Words.37828ec9-38e1-4906-8d34-877ca1aed47b.008.png)
+
+4. Командная строка Linux позволит запускать любое установленное в системе приложение. Как правило, каталоги со списком исполняемых программ расположены в папках «/bin, /usr/bin». Проверяемые каталоги интерпретатор сохраняет в переменной «$PATH». Просмотреть их список можно командой:
+
+**echo** **$PATH**
+
+5. Далее можно воспользоваться командой «ls» и добавить к ней один из каталогов, найденных в «$PATH», чтобы увидеть список доступных программ. Например:
+
+![](Aspose.Words.37828ec9-38e1-4906-8d34-877ca1aed47b.009.png)
+
+6. Если приложение консольное, Bash произведет его запуск в терминале. Ниже показан пример запуска редактора Nano.
+
+![](Aspose.Words.37828ec9-38e1-4906-8d34-877ca1aed47b.010.png)
+
+7. Bash также позволяет осуществлять запуск приложений в фоновом режиме. Для запуска в фоне, после ввода названия программы в конце следует добавить знак амперсанда (&).
+
+![](Aspose.Words.37828ec9-38e1-4906-8d34-877ca1aed47b.011.png)
+
+Здесь строка «[2] 23258» – это номер и PID процесса. При этом nano находится в фоновом режиме. Вернуться к нему можно командой «fg» (добавив номер задачи, если их запущено несколько) или «jobs».
+
+![](Aspose.Words.37828ec9-38e1-4906-8d34-877ca1aed47b.012.png)
+
+Поскольку в фоне может работать достаточно много команд, проверить номер требуемой можно командой «bg». Она отобразит список активных задач.
+
+![](Aspose.Words.37828ec9-38e1-4906-8d34-877ca1aed47b.013.png)
+
+#Cписок использованной литературы:
+
+https://eternalhost.net/blog/sistemnoe-administrirovanie/linux-bash-chto-eto#p0