Перейти к содержанию

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-скрипт"

Для запуска скрипта необходимо:

  1. Сделать его исполняемым:

    bash chmod +x script.sh

  2. Запустить:

    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

https://ruvds.com/doc/bash.pdf