Когда вы создали сценарий Bash и сохранили его в папке, вы обнаружите, что можете выполнить его только тогда, когда находитесь в этой папке. Вы когда-нибудь замечали, что ls
, imagemagick
, apache
и squid
могут быть установлены в разные каталоги, но доступны везде? ? Это потому, что их отдельные пути были добавлены в переменную «Путь». Добавив к нему больше путей, вы сможете сделать свои сценарии исполняемыми повсюду.
Совет. Ознакомьтесь с нашими шпаргалка по регулярным выражениям .
Читайте также: Руководство для начинающих по написанию сценариев оболочки в Linux
Добавление путей в Bash
Прежде чем мы начнем, мы должны объяснить, что благодаря тому, как работает безопасность Linux, вы можете настроить Path на трех разных уровнях. Баш — первый из них. Все, что мы здесь видим, повлияет на Bash и все, что в нем работает, но не будет иметь эффекта «за пределами Bash».
Предположим, у вас есть коллекция скриптов в папке, к которой вы хотите иметь доступ отовсюду.
Чтобы реализовать это, вы можете добавить их путь в «~/.bashrc». Вы можете открыть файл «.bashrc» (он находится в вашем домашнем каталоге, но по умолчанию скрыт) в вашем любимом текстовом редакторе, например gedit.
Перейдите в самый конец файла и добавьте:
export PATH="/path_of/the_folder_we/want_to_add_to:$PATH"
Например, если вы храните исполняемые сценарии в папке «/home/myname/scripts», команда будет такой:
export PATH="/home/myname/scripts:$PATH"
Чтобы зарегистрировать изменения, сохраните файл, выйдите из текстового редактора и введите в терминале:
source ~/.bashrc
После этого перейдите в разные каталоги и попробуйте запустить свои скрипты оттуда.
Добавление путей к вашему профилю
Если вы хотите, чтобы содержимое вашей папки было доступно за пределами ограничений Bash, вместо этого добавьте его в переменную профиля.
Откройте файл «.profile» в своем любимом текстовом редакторе.
В самом конце файла введите:
export PATH="$PATH:$HOME/scripts"
Вам необходимо выйти из системы и повторно войти в систему, чтобы изменения вступили в силу.
В Ubuntu и ее производных предлагается редактировать файл «.pam Environment» вместо «.profile».
Откройте файл «.pam_environment» в текстовом редакторе. Если файл не существует, создайте его.
В нем введите:
PATH DEFAULT=${PATH}:/home/@{PAM_USER}/scripts
Обратите внимание, что вместо полностью жестко заданного пути, в отличие от файла профиля, здесь мы используем переменную. Таким образом, папка «/home/USER_NAME/scripts» каждого пользователя будет добавлена к его пути.
Как и при редактировании файла «.profile», вам необходимо выйти из системы и повторно войти в систему, чтобы изменения вступили в силу.
Добавление путей к среде
Правильный способ обеспечить доступ к содержимому папки нескольким пользователям, использующим один и тот же компьютер, — добавить его в переменную пути среды. Запустите терминал и введите:
sudo nano /etc/environment
Переменная пути содержит набор папок в кавычках, разделенных двоеточиями, аналогично:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin"
Чтобы включить в этот список свою папку, сразу после последнего пути, перед закрывающей кавычкой, введите двоеточие и путь к вашей папке. Если ваша папка снова называлась «/home/your_username/scripts», она должна выглядеть так:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/YOUR_USERNAME/scripts"
Обратите внимание, что это не обязательно должно быть написано заглавными буквами — мы использовали их для акцента, чтобы помочь определить, где и как вам следует включить папку.
Как и прежде, выйдите из системы и войдите снова, чтобы применить изменения.
С помощью описанных выше приемов вы сможете запускать свои сценарии из любой точки Linux.
Связано:
- Как получить объяснение команд в терминале с помощью Kmdr
- Еще лучший способ поиска в истории командной строки
- Основные команды Bash для новичков в Linux