Ysa-k05-ru: Difference between revisions

From
Jump to navigation Jump to search
Content deleted Content added
Jpr (talk | contribs)
Jpr (talk | contribs)
 
(6 intermediate revisions by the same user not shown)
Line 48: Line 48:
* `Ctrl + O` → Enter
* `Ctrl + O` → Enter
* `Ctrl + X`
* `Ctrl + X`

---


=== Объяснение ===
=== Объяснение ===


'''#! shebang''' — Обязательно должно быть в самом начале файла. Указывает системе, что файл нужно выполнять с помощью интерпретатора `/bin/bash`
* `#!/bin/bash` — shebang
<pre>
Указывает системе, что файл нужно выполнять с помощью интерпретатора `/bin/bash`
#!/bin/bash
* `echo` — команда вывода текста на экран
</pre>

'''echo''' — команда вывода текста на экран
<pre>
echo "Hello, Unix Administrator!"
</pre>


---
---
Line 61: Line 69:
Посмотрим права:
Посмотрим права:


<pre>
```bash
ls -l hello.sh
ls -l hello.sh
</pre>
```


Пример вывода:
Пример вывода:


<pre>
```text
-rw-r--r-- 1 user user 45 hello.sh
-rw-r--r-- 1 user user 45 hello.sh
</pre>
```


=== Объяснение прав ===
=== Объяснение прав ===

Latest revision as of 13:30, 30 December 2025

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!"

Сохраняем файл:

  • `Ctrl + O` → Enter
  • `Ctrl + X`

---

Объяснение

#! shebang — Обязательно должно быть в самом начале файла. Указывает системе, что файл нужно выполнять с помощью интерпретатора `/bin/bash`

#!/bin/bash

echo — команда вывода текста на экран

echo "Hello, Unix Administrator!"

---

3. Проверка прав файла

Посмотрим права:

ls -l hello.sh

Пример вывода:

-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

  1. Custom aliases

alias ll='ls -lah' alias gs='git status'

  1. 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.