Как удалить запись из $PATH на Mac

Я пытался установить Sencha Touch SDK tools 2.0.0, но не смог запустить его должным образом. Он создал запись в переменной $PATH. Позже я удалил папку инструментов sencha sdk, но не понял, что переменная пути все еще там.

Когда я сделал echo $PATH, я получил -

/Applications/SenchaSDKTools-2.0.0-beta3:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

Я искал, как удалить переменные из $PATH, и выполнил следующие шаги:

  1. Дал команду PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin"
  2. Сделал echo $PATH, что показало /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
  3. дал команду export PATH
  4. Закрыл терминал и снова открыл. Дал команду echo $PATH. На этот раз я получил /Applications/SenchaSDKTools-2.0.0-beta3:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

Может ли кто-нибудь сказать мне, что я делаю неправильно?


person Tushar Koul    schedule 08.04.2013    source источник


Ответы (9)


То, что вы делаете, действительно для текущего сеанса (ограничено терминалом, в котором вы работаете). Вам нужно сохранить эти изменения. Рассмотрите возможность добавления команд в шагах 1–3 выше в файл ${HOME}/.bashrc.

person devnull    schedule 08.04.2013
comment
извините, я не совсем понял, что вы говорите. Куда добавить команду ${HOME}\.bashrc? - person Tushar Koul; 08.04.2013
comment
и я знал, что команды действительны для текущего сеанса терминала. Вот почему я думал, что экспорт будет работать - person Tushar Koul; 08.04.2013
comment
Добавьте команды из шагов 1 и 3 в файл ${HOME}/.bashrc (в конец файла). Откройте новый терминал и выполните echo $PATH. - person devnull; 08.04.2013
comment
Просто export VARIABLE=VALUE не будет сохраняться VARIABLE для всех сеансов. Вам нужно сказать, что в файле запуска, например. ${HOME}/.bashrc или /etc/profile (если изменения предназначены для всех пользователей системы). - person devnull; 08.04.2013
comment
Я открыл файл, используя nano ~\.bashrc.. там уже было export PATH=/Applications/SenchaSDKTools-2.0.0-beta3:$PATH. Кроме того, когда я пытаюсь отредактировать и сохранить, я получаю отказ в доступе. - person Tushar Koul; 08.04.2013
comment
добавление в bash_profile помогло мне удалить его из переменной PATH. Я открыл его с помощью sudo nano ~/.bash_profile - person Tushar Koul; 09.04.2013

  1. echo $PATH и скопируйте его значение
  2. export PATH=""
  3. export PATH="/path/you/want/to/keep"
person user3890550    schedule 30.07.2014
comment
Также обратите внимание, что после запуска export PATH="" вы можете увидеть такие ошибки, как: -bash: tail: Нет такого файла или каталога -bash: sed: Нет такого файла или каталога Ожидается. - person schalkneethling; 25.07.2016
comment
Совсем прямо!! Спасибо - person analyst 47; 20.07.2021

Проверьте следующие файлы:

/etc/bashrc
/etc/profile
~/.bashrc
~/.bash_profile
~/.profile
~/.MacOSX/environment.plist

Некоторые из этих файлов могут не существовать, но они, скорее всего, содержат $PATH определений.

person Ansgar Wiechers    schedule 08.04.2013
comment
~/.profile не вернул такого файла, а все остальные вернули отказ в разрешении - person Tushar Koul; 08.04.2013
comment
Вам нужны права суперпользователя для редактирования файлов в /etc. Однако вы должны иметь возможность хотя бы прочитать все файлы (при условии, что они существуют). Какие права на файлы? (ls -el filename) - person Ansgar Wiechers; 08.04.2013
comment
в чем разница между bashrc в каталоге /etc и bashrc в каталоге ~/? - person Tushar Koul; 09.04.2013
comment
Тот, что в /etc, влияет на всех пользователей, тот, что в вашем домашнем каталоге (~), — только на вашего пользователя. И настройки в ~/.bashrc имеют приоритет над настройками в /etc/bashrc. - person Ansgar Wiechers; 09.04.2013
comment
Мне сработало изменение в ~/.profile. Я использую MAC OS X El Capitan. Я думаю, что по умолчанию он берет от ~/.profile - person Crocode; 23.10.2016
comment
Другие варианты: ~/.zshrc и ~/.zprofile. - person Noumenon; 09.02.2021
comment
@AnsgarWiechers Вы также должны добавить в список файл /etc/paths и каталог /etc/paths.d. - person BannerMan; 12.04.2021

В MAC OS X Leopard и выше

cd /etc/paths.d

В указанном выше каталоге может быть текстовый файл, содержащий путь, который вы пытаетесь удалить.

vim textfile //check and see what is in it when you are done looking type :q 
//:q just quits, no saves

Если это тот, который вы хотите удалить, сделайте это

rm textfile //remove it, delete it

Вот ссылка на сайт, на котором есть больше информации, хотя он иллюстрирует «добавление» пути. Тем не менее, вы можете получить некоторое представление.

person Timothy L.J. Stewart    schedule 15.09.2016

Используйте sudo pico /etc/paths в окне терминала и измените записи на те, которые вы хотите удалить, затем откройте новый сеанс терминала.

person Community    schedule 28.08.2013
comment
На будущее советую читать тело вопроса перед ответом. - person Mike Furlender; 27.12.2015
comment
Также не забудьте заглянуть внутрь /etc/paths.d/ - person zapstar; 25.10.2018

Если вы конкретно удаляете путь для Python 3, я нашел его в ~/.zprofile и ~/.zshrc.

person Noumenon    schedule 09.02.2021

$PATH содержит данные, на которые есть ссылки из реальных файлов. Следовательно, вы должны найти файл, содержащий ссылку, которую вы хотите удалить, а затем удалить указанную ссылку.

Вот хороший список для последовательного прохождения [скопировано из ответа @Ansgar с небольшими обновлениями].

/etc/bashrc
/etc/profile
~/.bashrc
~/.bash_profile
~/.profile
~/.MacOSX/environment.plist
/etc/paths
/etc/paths.d/

Обратите внимание, что /etc/paths.d/ — это каталог, содержащий файлы со ссылками на пути. Например, внутри этого каталога может быть файл с именем, скажем, fancy-app, и внутри этого файла вы увидите запись, как показано ниже:

/path/to/fancy-app

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

person BannerMan    schedule 12.04.2021
comment
Это было именно то, что мне было нужно, чтобы найти виновного. В файле /etc/paths.d/ была неверная запись. Спасибо @BannerMan - person Brod; 26.05.2021

когда вы входите в систему или запускаете оболочку bash, переменные среды загружаются/настраиваются в соответствии с .bashrc или .bash_profile. Какой бы экспорт вы ни делали, он действителен только для текущего сеанса. поэтому export PATH=/Applications/SenchaSDKTools-2.0.0-beta3:$PATH эта команда выполняется каждый раз, когда вы открываете оболочку, вы можете переопределить ее, но опять же, только для текущего сеанса. отредактируйте файл .bashrc в соответствии с вашими потребностями. Если он говорит, что разрешение отклонено, возможно, файл защищен от записи, ссылка на какой-то другой файл (многие организации хранят главный файл .bashrc и дают каждому пользователю ссылку на его домашний каталог, вы можете скопировать файл вместо ссылки и начать добавлять в него контент)

person abasu    schedule 08.04.2013

Закройте терминал (завершите текущий сеанс). Откройте его снова.

person franc    schedule 21.05.2020