Переменная PATH всегда сбрасывается Как это исправить?

9

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

Вы знаете, как решить эту проблему?

Потому что, когда я хочу запустить несколько сценариев с командами терминала, я не хочу расширять переменную PATH каждый раз, прежде чем ...

Jenne
источник
1
Положите это в свой .bashrc?
gniourf_gniourf
Как это сделать? Я новичок в Linux;)
Jenne
2
откройте .bashrcфайл следующим образом: gedit ~/.bashrcи поместите туда все, что вы хотите (лучше внизу файла), например, PATH="~/my/cool/path/:$PATH"и экспортируйте эту переменную: после строки, которую вы только что ввели, поместите, export PATHсохраните файл, затем закройте свой терминал и снова откройте это и теперь ваши исполняемые файлы в ~/my/cool/pathбудут найдены.
gniourf_gniourf
Я написал это как полный ответ для вас ...:)
gniourf_gniourf
Возможный дубликат Как добавить каталог в PATH?
Дэвид Фёрстер

Ответы:

15

Я понимаю, что у вас есть несколько исполняемых файлов в одной из ваших домашних папок, например, в, ~/binи вы хотите иметь возможность выполнять их, не всегда вводя полный путь ~/bin/my_cool_executable.

Вы уже заметили, что вход PATH=~/bin:$PATHв ваш терминал заставил вещи работать ... но только до тех пор, пока вы не закроете терминал. Когда вы открываете новую, ваша прежняя PATHпеременная возвращается к исходному значению. Кстати, я думаю, вы знаете, как в любое время проверить значение PATHпеременной: вот так:

echo "$PATH"

Как сделать ваши изменения постоянными, чтобы PATHпри повторном открытии нового терминала вы не изменились ? Это очень просто, вам просто нужно отредактировать .bashrcфайл. Давайте использовать geditредактор: в терминале введите:

gedit ~/.bashrc

Это открывает geditредактор. Прокрутите до конца файла и добавьте это:

# Added by me on 2013/06/24
PATH=~/bin:$PATH
export PATH

и сохраните файл и выйдите gedit. Затем закройте свой терминал и откройте новый. Теперь перед вами должна стоять PATHпеременная, ~/binчтобы ваши команды ~/binбыли доступны без ввода полного пути. И вы знаете, как это проверить echo "$PATH".

Наслаждайтесь!

Предупреждение . Это считается плохой практикой и уязвимостью безопасности для помещения .вашей PATHпеременной.

gniourf_gniourf
источник
Итак, это было действительно хорошо, но теперь я не могу запускать программы, когда я root. Знаете почему и как это исправить? :)
Дженн
В этом случае один из вариантов - поместить ваши программы /usr/local/binвместо того, чтобы возиться с PATHпеременной ... или /usr/local/sbinесли они должны быть доступны только пользователю root.
gniourf_gniourf
Некоторые из них должны быть запущены с правами root, а некоторые нет. Так что было бы хорошо, если бы это не имело значения, и они могли бы быть в пользовательском каталоге. Так может ли он это сделать? :)
Jenne