Переменные Окружения, 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-скрипт.
Именно там команды перестают быть отдельными действиями и становятся автоматизацией.
Терминал скоро начнёт делать скучную работу за тебя.
Наконец-то.