Bash скрипты
Bash-скрипты — это набор команд, записанных в текстовом файле.
Когда баш-скрипт запускается, команды, записанные в нём, начинают последовательно выполняться.
📌 Зачем нужны bash-скрипты?
- Автоматизация рутины: Вы можете автоматизировать часто повторяющиеся действия.
- Упрощение рабочих процессов: Запуск одного скрипта вместо набора команд вручную.
- Управление системными задачами: Скрипты часто используют для бэкапов, мониторинга и сборки проектов.
📌 Создание простого bash скрипта:
- Откройте терминал и выполните команду:
vim script.sh
- Вставьте следующий код в файл:
#!/bin/bash echo "Hello, World!"
#!/bin/bash
– это так называемая шебанг-строка, которая указывает, какой интерпретатор следует использовать для выполнения команд (в данном случае Bash).echo "Hello, World!"
– команда, которая выводит текст в терминал.
- Сохраните файл и сделайте его исполняемым:
chmod +x script.sh
. Эта команда даёт разрешение на исполнение (запуск) файла. - Запустите скрипт:
./script.sh
.
В результате вы увидите в терминалеHello, World!
.
📌 Более сложный пример:
#!/bin/bash
SOURCE="$HOME/Desktop"
BACKUP_DIR="$HOME/backups"
DATE=$(date +%Y-%m-%d_%H-%M-%S)
BACKUP_FILE="$BACKUP_DIR/backup_$DATE.tar.gz"
mkdir -p $BACKUP_DIR
tar -czf $BACKUP_FILE $SOURCE
echo "Резервная копия создана: $BACKUP_FILE"
Этот скрипт архивирует указанный каталог ("$HOME/Desktop"
) и сохраняет бэкап в
"$HOME/backups"
.
Разбор строк
#!/bin/bash
– указывает, что скрипт должен выполняться в оболочке Bash.SOURCE="$HOME/Desktop"
– переменная, которая содержит путь к каталогу, который будем архивировать.BACKUP_DIR="$HOME/backups"
– куда будем сохранять бэкапы.DATE=$(date +%Y-%m-%d_%H-%M-%S)
– текущая дата и время (чтобы файлы не перезаписывались).BACKUP_FILE="$BACKUP_DIR/backup_$DATE.tar.gz"
– путь к файлу резервной копии.mkdir -p $BACKUP_DIR
– создаёт папку для бэкапов, если её нет.tar -czf $BACKUP_FILE $SOURCE
– создаёт архив с содержимым папки.echo "Резервная копия создана: $BACKUP_FILE"
– выводит сообщение о создании бэкапа.
Выполните этот скрипт и проверьте, что архив появился.
В баш скриптах вы также можете использовать переменные, условия, циклы, функции, получать ввод от пользователя, собственно как и в любом другом языке программирования.
Этот инструмент поможет вам автоматизировать многие рутинные задачи в системе.
Задачи
- Создать Bash-скрипт, который собирает информацию о системе: загрузку процессора, оперативной памяти, использование диска и активных пользователей и сохраняет это в файл.
- Напишите Bash-скрипт, который будет принимать ввод имени пользователя и отдавать в ответ всю информацию о нём (последний вход, запущенные им процессы и есть ли он в sudoers), а также выводить "Does not exist", если указанного пользователя в системе нет.