← Back to course

Переменные Окружения, Alias и Основы Shell

Переменные Окружения, Alias и Основы Shell

С возвращением.

В предыдущем уроке ты научился упаковывать и распаковывать файлы через архивы.

Теперь мы заходим в мир shell.

Именно здесь терминал начинает запоминать вещи.

Переменные. Пути. Alias. Конфигурационные файлы.

По сути, мы учим терминал нескольким привычкам.

Желательно хорошим.

Что Ты Изучишь

В этом уроке ты научишься:

Миссия

Твоя миссия простая:

Понять, как 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

Затем ответь:

  1. Что делает echo?
  2. Что показывает $HOME?
  3. Что делает $PATH?
  4. Что создаёт alias?
  5. Почему alias исчезают после закрытия терминала?

Мини-Задание

Создай три alias:

alias ll="ls -la"
alias home="cd ~"
alias ports="ss -tuln"

Затем:

  1. Запусти ll.
  2. Запусти home.
  3. Запусти ports.
  4. Сохрани эти alias в .bashrc или .zshrc.
  5. Перезагрузи конфигурационный файл через source.

Без мышки.

Мышка теперь наблюдает с пенсии.

Итог

Сегодня ты узнал, что:

Shell — это не просто место, где ты вводишь команды.

Это окружение, которое можно настраивать.

Осторожно.

С силой.

И желательно без превращения терминала в цирк.

Следующий Урок

В следующем уроке мы напишем наш первый Bash-скрипт.

Именно там команды перестают быть отдельными действиями и становятся автоматизацией.

Терминал скоро начнёт делать скучную работу за тебя.

Наконец-то.