Ysa-k05-ru

From
Jump to navigation Jump to search

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.