Добавить мою собственную команду в PATH

Я получил исполняемый файл (edit_envir) в каталоге /home/pshizh/Desktop/. Я обновил файл /etc/environment, чтобы включить /home/pshizh/Desktop в PATH. Затем я запустил команду edit_envir в терминале, но он сказал "dit_envir command not found. Однако после того, как я скопировал файл edit_envir в /usr/bin/ и снова запустил команду edit_envir в терминале, все заработало. Зачем? Я очень ценю вашу помощь.

2
задан 3 November 2013 в 16:55

2 ответа

После редактирования файла /etc/environment, если вы хотите, чтобы изменение вступило в силу, вам необходимо выйти из системы и снова войти в систему или получить этот файл в терминале следующим образом:

source /etc/environment

В любом случае, это не указанный способ для добавления каталога в PATH. В этом смысле смотрите следующий пост:

0
ответ дан 3 November 2013 в 16:55

Не редактируйте файл /etc/environment !!! отменить изменения и вернуть их в исходное состояние. Ваша система должна работать с несколькими пользователями. Представьте, что вы создаете другого пользователя, скажем, johndoe. Что будет, когда он войдет в систему? он будет иметь в своей переменной PATH ваш каталог /home/pshizd/Desktop. Я уверен, что он не заботится об этом!

Вместо этого измените переменную PATH из вашего личного файла .bashrc: добавьте этот фрагмент в конец вашего файла .bashrc:

PATH=/home/pshizd/Desktop:$PATH

Теперь подождите, ваши собственные сценарии не должны находиться на вашем рабочем столе. Вместо этого создайте каталог bin в вашем домашнем каталоге, поместите туда свои сценарии и вместо предыдущей команды в файле .bashrc поместите это:

PATH=$HOME/bin:$PATH

Если вы измените файл .bashrc ], изменения вступят в силу только в новых терминалах.


Теперь, если вы хотите, чтобы этот скрипт был доступен для всех пользователей (например, вы хотите, чтобы johndoe мог его выполнять, но у него не должно быть доступа к вашему личному каталогу), лучшим место для размещения сценария в /usr/local/bin. Этот каталог должен уже существовать (создать его при необходимости) и уже должен быть у каждого пользователя PATH. Проверьте это, проверив файл /etc/profile (но не изменяйте этот файл!); вы также можете grep PATH там, так что (с некоторыми контекстными строками):

grep -C4 PATH /etc/profile

вы должны увидеть, что /usr/local/bin добавлено в PATH пользователя.

Кстати, не вводите свои собственные команды в /usr/bin! Это место для двоичных файлов вашего дистрибутива, а не для ваших личных.


Что касается того, почему он не работал после изменения /etc/environment: вам нужно открыть новый терминал, чтобы изменения вступили в силу.

0
ответ дан 3 November 2013 в 16:55
  • 1
    Спасибо @JavaScriptDude - согласованный. Я закончил тем, что шел в виртуальное поле также. I' m счастливый турист:-), Надо надеяться, комментарии могут помочь другим пользователям Linux. Счастливое кодирование. – Ligemer 28 October 2016 в 21:09

Другие вопросы по тегам:

Похожие вопросы: