Как добавить директории в PATH в Linux

Когда вы создаёте Bash-скрипт и сохраняете его в папке, по умолчанию вы сможете запускать его только находясь в этой папке. Команды вроде ls, ImageMagick, Apache и Squid доступны в любой директории, потому что их пути добавлены в переменную PATH. Добавив путь к вашей папке в PATH, вы сможете запускать свои скрипты из любого места.
Важно понять три уровня, где можно изменить PATH:
- Уровень оболочки Bash — влияет только на Bash и процессы, запущенные из него.
- Уровень пользователя (профиль) — влияет на сеансы пользователя в графическом и консольном входе.
- Глобальный уровень окружения — влияет на всех пользователей системы.
Ниже подробно описаны каждый уровень, примеры, возможные ошибки и рекомендации по безопасности.
Быстрая проверка перед началом
- Проверьте текущий PATH:
echo $PATH- Убедитесь, что ваши скрипты исполняемые:
chmod +x /путь/к/скрипту- Для удобства храните пользовательские скрипты в ~/scripts или /usr/local/bin.
Добавление пути для текущей Bash-сессии
Если нужно быстро и временно добавить путь только на время текущей сессии, выполните:
export PATH="/путь/до/папки:$PATH"Это изменение действует только в текущем терминале. После закрытия окна или выхода из сессии PATH вернётся к прежнему значению.
Добавление пути в ~/.bashrc для постоянного эффекта в Bash
Если вы хотите, чтобы путь был доступен всегда при запуске интерактивного Bash, отредактируйте файл ~/.bashrc. Откройте его в любимом редакторе, например:
gedit ~/.bashrcВ конец файла добавьте строку:
export PATH="/home/имя_пользователя/scripts:$PATH"Сохраните файл и примените изменения без выхода из сессии:
source ~/.bashrcПроверка:
which имя_скрипта || command -v имя_скриптаЕсли команда возвращает путь — всё настроено правильно.

Добавление пути в профиль пользователя
Чтобы путь был доступен вне ограничений Bash (например, в графической среде), добавьте его в ~/.profile.
Откройте ~/.profile:
gedit ~/.profileВ конец добавьте:
export PATH="$PATH:$HOME/scripts"Важное замечание: на Ubuntu и её производных часто предпочтительнее редактировать ~/.pam_environment. В этом файле синтаксис другой, и он читается PAM при входе в сеанс.
Откройте или создайте ~/.pam_environment и добавьте строку:
PATH DEFAULT=${PATH}:/home/@{PAM_USER}/scriptsИспользование @{PAM_USER} позволяет автоматически подставлять имя текущего пользователя, так что каждому пользователю будет добавляться его собственная ~/scripts-папка.
После правки выйдите из системы и войдите снова, чтобы изменения вступили в силу.

Добавление пути в системное окружение для всех пользователей
Чтобы сделать папку доступной всем пользователям, отредактируйте /etc/environment или создайте скрипт в /etc/profile.d/.
Пример редактирования /etc/environment (потребуются права администратора):
sudo nano /etc/environmentВ файле PATH представлен как строка в кавычках, пути разделяются двоеточием:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"Добавьте в конец, перед закрывающей кавычкой, двоеточие и ваш путь:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/ВАШЕ_ИМЯ/scripts"После изменения выйдите и зайдите в систему или перезагрузите. Альтернатива — создать файл /etc/profile.d/my-scripts.sh и поместить туда:
export PATH="/home/ВАШЕ_ИМЯ/scripts:$PATH"Файлы в /etc/profile.d/ читаются при входе в систему и применяют настройки для всех пользователей.

Полезные альтернативы и подходы
- Символическая ссылка в /usr/local/bin вместо модификации PATH:
sudo ln -s /home/имя_пользователя/scripts/мой_скрипт /usr/local/bin/мой_скрипт- Используйте dotfiles-менеджеры (Ansible, GNU Stow) для развёртывания PATH на нескольких машинах.
- Для zsh изменяйте ~/.zshrc; для fish — config.fish.
Когда изменение PATH не работает
- Вы забыли сделать скрипт исполняемым (chmod +x).
- Порядок в PATH важен: если в PATH раньше встречается другой исполняемый файл с тем же именем, он будет выбран первым.
- Правки в ~/.bashrc не будут действовать для графических сессий — используйте ~/.profile или ~/.pam_environment.
- /etc/environment не поддерживает командную подстановку; используйте абсолютные пути.
Безопасность и лучшие практики
- Не добавляйте в PATH директории, доступные для записи всем (world-writable) — это риск выполнения вредоносного кода.
- Не ставьте пользовательские каталоги в начало PATH в системных конфигурациях: это может переопределить системные утилиты.
- Для общесистемных скриптов предпочтительнее /usr/local/bin с корректными правами доступа.
- Проверяйте содержимое PATH командой echo $PATH после изменения.
Проверки и критерии приёмки
Критерии приёмки:
- Скрипт с правом исполнения запускается из любой директории без указания полного пути.
- which или command -v возвращают ожидаемый путь к скрипту.
- Изменения персистентны после выхода и повторного входа.
Тесты:
- chmod +x ~/scripts/test && echo $PATH && test-command
- which test-command
- logout и login, затем which test-command
Рольовые чек-листы
Разработчик:
- Поместить часто используемые локальные утилиты в ~/scripts.
- Сделать исполняемым и добавить в PATH в ~/.bashrc.
- Обновить README с описанием установки.
Системный администратор:
- Для общесистемных утилит использовать /usr/local/bin.
- При массовом развёртывании прописать /etc/profile.d/скрипт.
- Проверить права и владельцев файлов.
Новичок:
- Использовать ~/scripts и добавить в ~/.bashrc.
- Перезапустить терминал и проверить which.
Мини-методика добавления папки в PATH (шаги)
- Выберите уровень: временно, пользователь или системно.
- Сделайте скрипты исполняемыми (chmod +x).
- Добавьте export PATH=… к соответствующему файлу.
- Примените изменения: source или переавторизация.
- Проверьте which и echo $PATH.
Миграция между оболочками
- Bash (.bashrc/.profile) → Zsh: скопируйте полезные export в ~/.zshrc.
- Fish использует другой синтаксис: set -U PATH /home/you/scripts $PATH.
Краткая глоссарий
- PATH — переменная окружения со списком директорий, где ищутся исполняемые файлы.
- export — команда Bash, делающая переменную окружения доступной дочерним процессам.
- ~/.bashrc, ~/.profile, /etc/environment — файлы конфигурации на разных уровнях.
Итог
Добавление директорий в PATH делает ваши скрипты удобными для запуска из любой точки системы. Выберите правильный уровень (локальный для быстрого теста, профиль для пользователя или системный для всех), соблюдайте права доступа и безопасность, и проверяйте результат командами which и echo $PATH.
Полезные ссылки:
- How to Get Commands Explanation in Terminal with Kmdr
- An Even Better Way to Search Your Command Line History
- Basic Bash Commands for Linux Newbies
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента