Как я могу редактировать $ PATH в Linux?

45

Я использую Ubuntu 9.04, мне нужно добавить какую-то папку в мой $ PATH. Я знаю, как читать путь:

echo $PATH

Я хочу иметь возможность редактировать его и добавить 2 других пути.

Благодарность

Артур
источник
2
Как только вы сможете это сделать, вы можете захотеть выполнять более сложные операции с PATH: stackoverflow.com/questions/273909/…
dmckee
Принадлежит к сайтам Unix или Ubuntu.
Томас Братт

Ответы:

43

Чтобы навсегда сохранить свой путь, у вас есть несколько вариантов.

Я предлагаю вам прочитать вики сообщества Ubuntu по переменным среды, но краткий ответ - лучшее место ~/.profileдля ваших настроек PATH для каждого пользователя или /etc/profileдля глобальных настроек.

Сделать что-то вроде export PATH=$PATH:/your/new/path/here

akent
источник
8
Важно отметить, что во многих случаях ваш профиль не запускается (например, когда скрипт запускается cron). Если вам нужно указать конкретный путь в PATH, сценарий должен установить этот путь. При этом сценарии никогда не должны полагаться на что-либо, находящееся на их пути, и всегда должны использовать абсолютные пути, все остальное является проблемой безопасности.
час. Оуэнс
14
PATH=$PATH:newPath1:newPAth2
export PATH
лощина
источник
3
Я думаю, что вы можете сделать это все на одной линии, если хотите. экспорт PATH = $ PATH: newPath1: newPAth2
2
Это зависит от используемой вами оболочки. В Solaris (я знаю, что речь идет о Linux), одна из оболочек (не помню, какая из них у меня в голове) требует, чтобы вы выполняли экспорт отдельно от установки значения в скрипте. Так что я только вошел в привычку делать это в 2 строки.
Глен
7

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

sudo emacs /etc/environment

Добавить к записи уже в вашем пути

PATH="/path/to/file:/other/paths"

Перезагрузить среду

source /etc/environment
jaketrent
источник
1
Редактирование файла среды было единственным способом, которым я мог заставить PATH меняться и оставаться неизменным.
2

О том, как это сделать, уже отвечали, но я хотел бы дать вам небольшой совет. Вот что я делаю:

У меня есть каталог, который называется .bash.dв моем, $HOMEи в нем я храню набор сценариев оболочки, которые делают что-то для моей среды (например, правильная настройка maven, изменение пути, установка моего приглашения и т. Д.). Я держу это под контролем версий с помощью git , который позволяет легко вернуться к рабочей версии вашего env, если вы что-то испортили. Чтобы получить все модификации, я просто поставляю все файлы в этом каталоге в конце моего .bashrc следующим образом:

for i in $HOME/.bash.d/*; do source $i; done
unset i

Это дает вам очень гибкую среду, которую вы можете легко изменять и восстанавливать + вы можете экспортировать ее на другие машины, просто используя git.

Андре
источник
1

Вариант сверху, если вы не хотите изменять файл / etc / profile напрямую. Вы можете создать новый файл yourpath.sh в каталоге /etc/profile.d/ . Затем отредактируйте этот файл вот так. В редакторе vim (но вы можете редактировать его в другом редакторе): vim /etc/profile.d/yourpath.sh

MYPATH='/your/new/path/'
export MYPATH
export PATH=$PATH:$MYPATH

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

Артур Вандергуд
источник
(1) До тех пор, PATHпока экспортируется, MYPATHне должно быть (если вам это не нужно для других целей). (2) Быстрый способ сохранить (записать) и выйти в vim ZZ- нет :или (Enter) требуется.
Скотт
0

echo PATH = $ PATH: путь1: путь2> tmp

Отредактируйте файл tmp в вашем любимом текстовом редакторе, чтобы значение PATH было именно тем, что вам нужно

, ./tmp

mealnor
источник