Linux

Переменная PATH в Linux: полное руководство по настройке

Этот гайд подробно объясняет, что такое переменная PATH в Linux, как она работает и как её правильно настроить. Вы научитесь добавлять каталоги с исполняемыми файлами, проверять конфигурацию и решать типичные проблемы, чтобы ваши команды работали из любого места.

Обновлено 15 февраля 2026 г.
10-15 мин
Низкая
FixPedia Team
Применимо к:Ubuntu 22.04+Debian 11+Fedora 36+Arch LinuxBash 4.0+Zsh 5.0+

Введение / Зачем это нужно

Переменная окружения PATH — один из ключевых механизмов работы командной строки Linux. Она представляет собой упорядоченный список каталогов, в которых система ищет исполняемые файлы (программы) при вводе команды без указания полного пути.

Без корректной настройки PATH вам пришлось бы запускать каждую программу через полный путь, например /usr/bin/python3 вместо простого python3. Этот гайд поможет вам понять, как работает PATH, как безопасно добавлять в него свои каталоги и избегать распространённых ошибок, которые приводят к сообщению command not found.

Требования / Подготовка

Перед началом убедитесь, что у вас есть:

  1. Доступ к терминалу Linux (локально или через SSH).
  2. Права на запись в домашний каталог (~) для постоянных изменений.
  3. Базовое понимание командной строки (навигация, редактирование файлов).
  4. Знание, какой каталог с вашими программами нужно добавить (например, ~/go/bin для Go или ~/.local/bin для пользовательских скриптов).

Шаг 1: Изучите текущую конфигурацию PATH

Сначала посмотрите, что уже настроено в вашей системе. Откройте терминал и выполните:

echo $PATH

Вывод будет выглядеть примерно так:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Каждая часть, разделённая двоеточием :, — это абсолютный путь к каталогу. Система ищет команды в них строго по порядку. Если нужная команда найдена в первом каталоге, поиск останавливается.

💡 Совет: Чтобы понять, откуда берётся конкретный путь, проверьте системные файлы конфигурации: /etc/environment, /etc/profile, ~/.bashrc, ~/.profile, ~/.bash_profile.

Шаг 2: Добавьте каталог временно (для текущей сессии)

Иногда нужно быстро протестировать программу из нового каталога. Используйте команду export:

export PATH="/home/ваше_имя/myapp/bin:$PATH"

Ключевые моменты:

  • /home/ваше_имя/myapp/bin:$PATH — мы добавляем новый путь в начало списка. Это даёт ему приоритет над системными командами с такими же именами (осторожно!).
  • Чтобы добавить путь в конец (безопаснее, чтобы не перекрывать системные утилиты), используйте export PATH="$PATH:/home/ваше_имя/myapp/bin".
  • Изменение действует только в текущем окне терминала и всех дочерних процессах. После закрытия терминала настройка сбросится.

Шаг 3: Добавьте каталог постоянно (на все сессии)

Чтобы изменения сохранялись, нужно прописать их в файле конфигурации вашей командной оболочки (shell).

  1. Определите, какую оболочку вы используете:
    echo $SHELL
    

    Результат: /bin/bash (Bash), /bin/zsh (Zsh) и т.д.
  2. Откройте соответствующий файл в текстовом редакторе (например, nano или vim):
    • Для Bash (самая частая): nano ~/.bashrc
    • Для Zsh: nano ~/.zshrc
    • Для большинства оболочек (универсально): nano ~/.profile
  3. Добавьте в конец файла строку. Рекомендуемый, безопасный формат:
    # Добавление каталога с пользовательскими скриптами
    export PATH="$HOME/.local/bin:$PATH"
    
    • $HOME — переменная, автоматически указывающая на ваш домашний каталог. Это делает конфигурацию переносимой.
    • Мы добавляем путь в начало ($HOME/.local/bin:$PATH), чтобы ваши скрипты имели приоритет. Если вы просто хотите расширить PATH без приоритета, поставьте $PATH на первое место: export PATH="$PATH:$HOME/.local/bin".
  4. Сохраните файл (Ctrl+O в nano, :wq в vim) и закройте редактор.

Шаг 4: Примените изменения без перезагрузки

Чтобы изменения из ~/.bashrc (или другого файла) вступили в силу в текущем открытом терминале, выполните команду source:

source ~/.bashrc

Или, что то же самое:

. ~/.bashrc

Теперь новая конфигурация PATH активна. Просто откройте новое окно терминала — там изменения применятся автоматически.

Шаг 5: Проверьте результат

  1. Убедитесь, что путь добавился:
    echo $PATH | tr ':' '\n' | grep ".local/bin"
    

    Команда выше разбивает PATH по разделителю и ищет нужный каталог.
  2. Проверьте, что система видит вашу программу. Предположим, вы добавили каталог с исполняемым файлом mytool.
    which mytool
    

    Если команда вернёт полный путь (например, /home/username/.local/bin/mytool), значит, всё настроено правильно. Если вывод пуст — проверьте, что файл mytool существует в указанном каталоге и имеет право на выполнение (chmod +x mytool).

Проверка результата

Главный признак успеха — команда which <ваша_команда> находит исполняемый файл в добавленном вами каталоге. Также можно проверить порядок поиска: система всегда будет использовать первую найденную команду. Убедитесь, что вы не перекрыли важную системную утилиту (например, ls, cp) своей версией с тем же именем.

Возможные проблемы

1. Ошибка command not found после добавления пути

  • Причина: Файл не является исполняемым.
  • Решение: Дайте права: chmod +x /путь/к/файлу.
  • Причина: В пути есть опечатка или используется относительный путь.
  • Решение: Указывайте только абсолютные пути (/home/user/bin, а не ~/bin или ./bin в конфигурационном файле).

2. Система находит "не ту" версию программы

  • Причина: В PATH есть несколько каталогов с программой одного имени. Приоритет у того, что указан раньше.
  • Решение: Переставьте ваш каталог в конец PATH (export PATH="$PATH:/ваш/путь"), чтобы использовалась системная версия. Или переименуйте вашу программу.

3. PATH стал слишком длинным

  • Причина: Множественное дублирование путей или добавление целых каталогов (/usr/bin).
  • Решение: Очистите PATH от дублей. В файле конфигурации оставляйте только уникальные и необходимые пути. Используйте echo $PATH | tr ':' '\n' | sort | uniq для анализа.

4. Проблемы с пробелами или специальными символами в пути

  • Причина: Путь содержит пробелы или символы, которые интерпретируются оболочкой.
  • Решение: Избегайте пробелов в путях к исполняемым файлам. Если unavoidable, экранируйте их: /home/user/My\ Apps/program.

5. Изменения в ~/.bashrc не применяются

  • Причина: Вы редактируете не тот файл для вашей оболочки.
  • Решение: Уточните оболочку (echo $SHELL) и отредактируйте правильный файл (~/.bashrc для Bash, ~/.zshrc для Zsh). После правки обязательно выполните source или перезайдите в систему.

Часто задаваемые вопросы

Почему после добавления пути в ~/.bashrc он не работает?
Можно ли добавить путь только для одной команды?
Что опаснее: дублирование путей в PATH или слишком длинный PATH?
Почему система не находит программу, хотя путь в PATH указан?

Полезное

Проверьте текущий PATH
Добавьте каталог временно
Добавьте каталог навсегда
Перезагрузите конфигурацию
Проверьте результат

Эта статья помогла вам решить проблему?