Змінні Середовища, Alias і Основи Shell

З поверненням.
У попередньому уроці ти навчився пакувати й розпаковувати файли через архіви.
Тепер ми заходимо у світ shell.
Саме тут термінал починає запам’ятовувати речі.
Змінні. Шляхи. Alias. Конфігураційні файли.
По суті, ми навчаємо термінал кількох звичок.
Бажано хороших.
Що Ти Вивчиш
У цьому уроці ти навчишся:
- виводити текст через
echo; - розуміти shell-змінні;
- читати змінні середовища типу
$HOMEі$PATH; - створювати тимчасові змінні;
- експортувати змінні;
- створювати alias;
- зберігати alias у
.bashrcабо.zshrc; - розуміти, чому
$PATHважливий.
Місія
Твоя місія проста:
Зрозуміти, як shell зберігає інформацію і як створювати скорочення для команд, які ти часто використовуєш.
Бо вводити довгі команди знову і знову — це не дисципліна.
Це страждання з додатковими кроками.
Вивести Текст через echo
Команда echo виводить текст.
Спробуй:
echo "Привіт, термінале!"
Ти маєш побачити:
Привіт, термінале!
Просто.
Корисно.
Дуже ввічливо.
echo часто використовують, щоб виводити значення, тестувати змінні або створювати маленькі текстові файли.
Що Таке Змінна?
Змінна — це ім’я, яке зберігає значення.
Створи змінну:
name="Viktor"
Тепер виведи її:
echo $name
Ти маєш побачити:
Viktor
Важливо: не став пробіли навколо =.
Це правильно:
name="Viktor"
Це неправильно:
name = "Viktor"
Shell бачить пробіли і плутається.
Дуже потужний.
Дуже чутливий.
Як геніальний кіт.
Вбудовані Змінні Середовища
Linux уже має багато змінних середовища.
Спробуй:
echo $HOME
Можеш побачити:
/home/viktor
HOME зберігає шлях до твоєї домашньої директорії.
Спробуй:
echo $USER
Можеш побачити своє ім’я користувача.
Спробуй:
echo $SHELL
Можеш побачити щось таке:
/bin/bash
або:
/usr/bin/zsh
Це показує, яку shell ти використовуєш.
Змінна PATH
Одна з найважливіших змінних — PATH.
Спробуй:
echo $PATH
Можеш побачити щось таке:
/usr/local/bin:/usr/bin:/bin:/home/viktor/.local/bin
PATH каже shell, де шукати команди.
Коли ти вводиш:
ls
shell проходить по директоріях у PATH, поки не знайде програму ls.
Без PATH довелося б писати повні адреси команд, як дуже втомлений робот.
Знайти, Де Живе Команда
Використай:
command -v ls
Можеш побачити:
/usr/bin/ls
Спробуй:
command -v bash
command -v zsh
command -v python
command -v node
Деякі можуть існувати.
Деякі — ні.
Термінал чесний.
Іноді жорстко чесний.
Тимчасові Змінні
Змінні, створені в shell, зазвичай тимчасові.
Спробуй:
course="Linux Terminal"
echo $course
Ти маєш побачити:
Linux Terminal
Тепер закрий термінал і відкрий знову.
Спробуй:
echo $course
Скоріш за все, буде порожньо.
Shell забув.
Не тому, що він грубий.
А тому, що ти це не зберіг.
Експорт Змінної
Щоб зробити змінну доступною для дочірніх процесів, використовуй export.
Приклад:
export COURSE_NAME="Linux Terminal"
Тепер виконай:
echo $COURSE_NAME
Ти маєш побачити:
Linux Terminal
Змінні середовища часто використовують для конфігурації.
Наприклад:
export API_URL="http://localhost:8080"
export NODE_ENV="development"
Розробники використовують це постійно.
Бо хардкодити секрети в код — це спосіб перетворити проєкт на місце злочину.
Показати Змінні Середовища
Щоб побачити багато змінних середовища, використай:
env
Це може вивести багато тексту.
Можна шукати всередині:
env | grep HOME
Або:
env | grep PATH
Символ | передає результат env у grep.
Це називається pipe.
Pipe — одна з причин, чому термінал такий потужний.
І одна з причин, чому люди починають дивно усміхатися, коли користуються Linux.
Що Таке Alias?
Alias — це скорочення для команди.
Приклад:
alias ll="ls -la"
Тепер виконай:
ll
Це працює як:
ls -la
Це корисно, бо деякі команди довгі, а життя коротке.
Корисні Alias
Ось кілька корисних прикладів:
alias ll="ls -la"
alias gs="git status"
alias c="clear"
alias ..="cd .."
Тепер:
..
працює як:
cd ..
Виглядає як шахрайство.
Але це дозволено.
Linux не проти скорочень.
Linux проти дурниць.
Переважно.
Перевірити Існуючі Alias
Щоб побачити існуючі alias:
alias
Можливо, у тебе вже є кілька.
Багато систем створюють alias для безпеки або зручності.
Наприклад:
alias rm="rm -i"
Це питає перед видаленням.
Дуже обережно.
Дуже по-батьківськи.
Видалити Alias
Щоб видалити alias:
unalias ll
Тепер спробуй:
ll
Може більше не працювати.
Це нормально.
Ти видалив скорочення.
Термінал не тримає образ.
Зазвичай.
Зберегти Alias Назавжди
Alias, створені в терміналі, зникають після його закриття.
Щоб зберегти їх, додай у конфігураційний файл shell.
Якщо використовуєш Bash:
nano ~/.bashrc
Якщо використовуєш Zsh:
nano ~/.zshrc
Додай:
alias ll="ls -la"
alias c="clear"
alias ..="cd .."
Збережи файл.
Потім перезавантаж його.
Для Bash:
source ~/.bashrc
Для Zsh:
source ~/.zshrc
Тепер alias залишаються.
Термінал навчився.
Гордий момент.
Майже емоційний.
Перевірити, Яку Shell Ти Використовуєш
Виконай:
echo $SHELL
Якщо бачиш Bash:
/bin/bash
використовуй .bashrc.
Якщо бачиш Zsh:
/usr/bin/zsh
використовуй .zshrc.
Якщо ти використовуєш Arch Linux із Zsh, так, ти, мабуть, саме та людина, яка буде занадто сильно любити alias.
Типові Помилки
Пробіли навколо =
Неправильно:
name = "Viktor"
Правильно:
name="Viktor"
Shell тут строгий.
Без пробілів.
Не обговорюється.
Забути $
Це виведе слово name:
echo name
А це виведе значення змінної:
echo $name
$ означає:
Дай мені значення, яке зберігається в цій змінній.
Без $ shell думає, що тобі просто подобається говорити імена.
Зберегти alias не в той файл
Якщо ти використовуєш Zsh і редагуєш .bashrc, може нічого не змінитися.
Якщо використовуєш Bash і редагуєш .zshrc, може нічого не змінитися.
Спочатку перевір shell:
echo $SHELL
Потім редагуй правильний файл.
Сім разів відміряй.
Один раз редагуй.
Практика
Спробуй:
echo "Shell practice"
echo $HOME
echo $USER
echo $SHELL
echo $PATH
course="Linux Terminal"
echo $course
alias ll="ls -la"
ll
unalias ll
Потім дай відповіді:
- Що робить
echo? - Що показує
$HOME? - Що робить
$PATH? - Що створює
alias? - Чому alias зникають після закриття термінала?
Міні-Завдання
Створи три alias:
alias ll="ls -la"
alias home="cd ~"
alias ports="ss -tuln"
Потім:
- Запусти
ll. - Запусти
home. - Запусти
ports. - Збережи ці alias у
.bashrcабо.zshrc. - Перезавантаж конфігураційний файл через
source.
Без мишки.
Мишка тепер спостерігає з пенсії.
Підсумок
Сьогодні ти дізнався, що:
echoвиводить текст і значення змінних;- змінні зберігають значення;
$HOMEзберігає домашню директорію;$USERзберігає ім’я користувача;$SHELLпоказує твою shell;$PATHкаже shell, де шукати команди;exportробить змінні доступними дочірнім процесам;aliasстворює скорочення команд;.bashrcі.zshrcможуть зберігати alias назавжди;sourceперезавантажує конфігураційний файл shell.
Shell — це не просто місце, де ти вводиш команди.
Це середовище, яке можна налаштовувати.
Обережно.
З силою.
І бажано без перетворення термінала на цирк.
Наступний Урок
У наступному уроці ми напишемо наш перший Bash-скрипт.
Саме там команди перестають бути окремими діями і стають автоматизацією.
Термінал скоро почне робити нудну роботу за тебе.
Нарешті.