17. Bash
Введение
Bash (Bourne Again Shell) — это командная оболочка Linux и одновременно язык сценариев, предназначенный для автоматизации работы в системе. Для системного и сетевого администратора Bash является одним из ключевых инструментов, так как позволяет объединять команды Linux в сценарии (скрипты) и выполнять рутинные операции автоматически.
Bash-скрипты широко применяются для:
- автоматизации администрирования;
- управления файлами и каталогами;
- настройки прав доступа;
- мониторинга процессов;
- резервного копирования;
- выполнения задач по расписанию (cron).
В отличие от языков программирования общего назначения, Bash ориентирован именно на управление операционной системой и работу с командной строкой.
Что такое Bash-скрипт
Bash-скрипт — это текстовый файл, содержащий набор команд Linux, которые выполняются последовательно.
Основные особенности:
- выполняется интерпретатором Bash;
- состоит из обычных команд терминала;
- может принимать аргументы;
- может использовать условия и циклы.
Пример простейшего скрипта:
echo "Hello, Linux!"
Интерпретатор Bash и shebang
Чтобы система понимала, каким интерпретатором выполнять скрипт, в начале файла указывается shebang:
#!/bin/bash
#!— специальная последовательность;/bin/bash— путь к интерпретатору Bash.
Полный пример:
#!/bin/bash
echo "Это bash-скрипт"
Для запуска скрипта необходимо:
-
Сделать его исполняемым:
bash chmod +x script.sh -
Запустить:
bash ./script.sh
Комментарии в Bash
Комментарии используются для пояснения кода и игнорируются интерпретатором.
# Это комментарий
echo "Команда выполнится"
Комментарии особенно важны в администраторских скриптах для понимания логики работы.
Переменные в Bash
Переменные хранят данные (строки, числа, пути).
Объявление переменной
name="student"
⚠ Пробелы вокруг = недопустимы.
Использование переменной
echo $name
Пример
#!/bin/bash
user="admin"
echo "Текущий пользователь: $user"
Ввод данных от пользователя
Для получения данных используется команда read:
read username
Пример:
#!/bin/bash
echo "Введите имя:"
read name
echo "Здравствуйте, $name"
Аргументы командной строки
Скрипт может принимать аргументы при запуске.
$0— имя скрипта$1,$2,$3— аргументы$#— количество аргументов$@— все аргументы
Пример:
#!/bin/bash
echo "Имя скрипта: $0"
echo "Первый аргумент: $1"
Запуск:
./script.sh test
Условия (if)
Условия позволяют выполнять команды в зависимости от результата проверки.
Синтаксис
if [ условие ]; then
команды
fi
Пример: проверка существования файла
if [ -f "/etc/passwd" ]; then
echo "Файл существует"
else
echo "Файл не найден"
fi
Часто используемые проверки
f— файл существуетd— каталог существуетe— объект существуетr— доступен для чтенияw— доступен для записиx— исполняемый
Коды возврата команд
Каждая команда возвращает код:
0— успешное выполнение;- не
0— ошибка.
Получить код последней команды:
echo $?
Пример:
ls /etc
if [ $? -eq 0 ]; then
echo "Команда выполнена успешно"
else
echo "Ошибка выполнения"
fi
Циклы
Цикл for
Используется для перебора значений.
for i in 1 2 3
do
echo $i
done
Пример для администратора:
for dir in /etc /var /home
do
echo "Каталог: $dir"
done
Практическое применение Bash для администратора
Bash-скрипты позволяют:
- выполнять массовые операции;
- избегать ручного ввода одних и тех же команд;
- снижать количество ошибок;
- ускорять администрирование.
Пример: создание резервной копии каталога
#!/bin/bash
tar -czf backup.tar.gz /etc
echo "Резервная копия создана"
Ограничения Bash
Bash не предназначен для:
- сложных вычислений;
- крупных программных проектов;
- обработки больших объёмов данных.
Для таких задач используются другие языки (Python, Go и др.).
Заключение
Bash — основной инструмент автоматизации в Linux. Для системного и сетевого администратора знание Bash является обязательным, так как:
- большинство серверов работают без графического интерфейса;
- автоматизация администрирования строится на shell-скриптах;
- Bash используется в cron, systemd, init-скриптах, Ansible и других инструментах.
Итог: Bash позволяет администратору работать быстрее, надёжнее и профессиональнее, превращая отдельные команды Linux в мощные автоматизированные сценарии.
Документация: https://ruvds.com/doc/bash.pdf