Ysa-k05-ru
Kapitel 5: Простые Bash-скрипты, переменные окружения, PATH и Aliases
Цели главы
В этой главе ученик:
- поймёт, что такое Bash-скрипты и зачем они нужны системному администратору
- научится создавать и запускать простые Bash-скрипты
- разберётся с правами на выполнение файлов
- поймёт, что такое переменные окружения
- узнает, что такое PATH и зачем он нужен
- научится создавать aliases (псевдонимы команд)
- научится настраивать PATH и aliases в файле ~/.bashrc
---
1. Что такое Bash-скрипт
Bash-скрипт — это обычный текстовый файл, в котором записана последовательность команд Bash. Скрипты используются для:
- автоматизации повторяющихся задач
- упрощения администрирования
- запуска нескольких команд одной командой
Пример задач для скрипта:
- резервное копирование файлов
- очистка временных каталогов
- проверка доступности сервера
- автоматическая установка и настройка ПО
---
2. Создание первого Bash-скрипта
2.1 Создание файла с помощью nano
Создадим файл:
nano hello.sh
Вставим следующий текст:
#!/bin/bash echo "Hello, Unix Administrator!"
Объяснение
- `#!/bin/bash` — shebang
Указывает системе, что файл нужно выполнять с помощью интерпретатора `/bin/bash`
- `echo` — команда вывода текста на экран
Сохраняем файл:
- `Ctrl + O` → Enter
- `Ctrl + X`
---
3. Проверка прав файла
Посмотрим права:
```bash ls -l hello.sh ```
Пример вывода:
```text -rw-r--r-- 1 user user 45 hello.sh ```
Объяснение прав
- `-` — обычный файл
- `rw-` — владелец может читать и писать
- `r--` — группа может только читать
- `r--` — остальные могут только читать
⚠️ Обратите внимание: **нет права на выполнение (`x`)**
---
4. Добавление права на выполнение
Сделаем файл исполняемым:
```bash chmod +x hello.sh ```
Проверим:
```bash ls -l hello.sh ```
Теперь:
```text -rwxr-xr-x 1 user user 45 hello.sh ```
---
5. Запуск Bash-скрипта
Запуск из текущего каталога:
```bash ./hello.sh ```
Вывод:
```text Hello, Unix Administrator! ```
⚠️ Важно: Скрипты **не запускаются просто по имени**, если каталог не находится в PATH.
---
6. Переменные окружения
6.1 Что такое переменные окружения
Переменные окружения — это значения, которые доступны программам и скриптам. Они используются для:
- хранения настроек
- определения поведения программ
- передачи информации между процессами
Примеры:
- `USER`
- `HOME`
- `SHELL`
- `PATH`
---
6.2 Просмотр переменных окружения
Показать все переменные:
```bash env ```
Или:
```bash printenv ```
Показать конкретную переменную:
```bash echo $USER echo $HOME echo $SHELL ```
---
6.3 Создание переменной
В текущей сессии:
```bash MYVAR="test" echo $MYVAR ```
⚠️ После выхода из терминала переменная исчезнет.
---
7. Переменная PATH
7.1 Что такое PATH
PATH — это список каталогов, в которых Bash ищет исполняемые файлы.
Посмотрим PATH:
```bash echo $PATH ```
Пример:
```text /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin ```
Как работает PATH
Когда вы вводите:
```bash ls ```
Bash ищет `ls`:
- в `/usr/local/bin`
- затем `/usr/bin`
- затем `/bin`
- и т.д.
---
7.2 Добавление каталога в PATH (временно)
```bash export PATH=$PATH:/home/user/scripts ```
Теперь скрипты из этого каталога можно запускать без `./`
---
8. Aliases (псевдонимы команд)
8.1 Что такое alias
Alias — это сокращённое имя для команды.
Пример:
```bash alias ll='ls -lah' ```
Теперь:
```bash ll ```
Просмотр alias
```bash alias ```
---
8.2 Удаление alias
```bash unalias ll ```
---
9. Файл ~/.bashrc
9.1 Назначение ~/.bashrc
Файл `~/.bashrc` выполняется:
- при запуске интерактивной Bash-сессии
- для настройки окружения пользователя
Используется для:
- aliases
- переменных окружения
- настройки PATH
- пользовательских функций
---
9.2 Редактирование ~/.bashrc
Открываем:
```bash nano ~/.bashrc ```
Добавляем в конец файла:
```bash
- Custom aliases
alias ll='ls -lah' alias gs='git status'
- Custom PATH
export PATH=$PATH:$HOME/scripts ```
Сохраняем и применяем:
```bash source ~/.bashrc ```
---
10. Практические задания
Задание 1: Первый скрипт
- Создать скрипт `date_info.sh`
- Скрипт должен выводить:
* текущую дату * имя пользователя * текущий каталог
Подсказка:
```bash date whoami pwd ```
---
Задание 2: Права доступа
- Убрать право на выполнение у скрипта
- Попробовать запустить его
- Вернуть право на выполнение
---
Задание 3: Переменные окружения
- Создать переменную `ADMIN_NAME`
- Использовать её в скрипте для вывода приветствия
---
Задание 4: PATH
- Создать каталог `~/scripts`
- Переместить туда скрипт
- Добавить каталог в PATH через ~/.bashrc
- Запустить скрипт без `./`
---
Задание 5: Aliases
- Создать alias:
* `ll` → `ls -lah` * `psg` → `ps aux | grep`
- Проверить их работу
- Убедиться, что они сохраняются после перезапуска терминала
---
11. Дополнительные материалы для самообучения
- `man bash`
- `man chmod`
- `man env`
- Bash scripting guide (Advanced Bash-Scripting Guide)
- Практика: переписать ежедневные команды в виде скриптов
- Экспериментировать с `.bashrc` в тестовой системе
---
Итог
После этой главы ученик умеет:
- создавать и запускать Bash-скрипты
- работать с правами на выполнение
- понимать и использовать переменные окружения
- настраивать PATH
- создавать aliases
- настраивать пользовательское окружение Bash
Это фундамент для автоматизации и профессиональной работы Unix System Administrator.