如何在Mac上从$ PATH删除条目


73

我试图安装Sencha Touch SDK工具2.0.0,但无法正常运行。它在$ PATH变量中创建了一个条目。后来我删除了sencha sdk tools文件夹,但没有意识到path变量仍然存在。

当我做的时候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

谁能告诉我我在做什么错?

Answers:


15

您正在执行的操作对当前会话有效(仅限于您正在使用的终端)。您需要坚持这些更改。考虑将上述步骤1-3中的命令添加到您的${HOME}/.bashrc


4
对不起,我不太明白你在说什么。我应该在哪里添加$ {HOME} \。bashhrc命令?
Tushar Koul

而且我知道这些命令对于当前的终端会话有效。那就是为什么我认为“出口”会起作用的原因
Tushar Koul

将步骤1和3中的命令添加到文件中${HOME}/.bashrc(在文件末尾)。打开一个新的终端并执行echo $PATH
devnull

只是export VARIABLE=VALUE不会坚持VARIABLE所有会议。您需要在启动文件中说,例如${HOME}/.bashrc/etc/profile(如果更改是针对系统上的所有用户的)。
devnull

1
在bash_profile中添加有助于我将其从PATH变量中删除。我使用sudo nano ~/.bash_profile
Tushar Koul

167
  1. echo $PATH 并复制它的价值
  2. export PATH=""
  3. export PATH="/path/you/want/to/keep"

2
还要注意,运行后,export PATH=""您可能会看到以下错误:-bash:tail:没有这样的文件或目录-bash:sed:没有这样的文件或目录。
schalkneethling

1
如果您阅读了该问题,则不能解决问题,而这正是OP发布的内容。另外,您不需要步骤2 ....正如OP已经发布的...来吧,伙计们!改用此方法stackoverflow.com/a/39513800/6750631
Timothy LJ Stewart

29

检查以下文件:

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

其中一些文件可能不存在,但最有可能包含$PATH定义。


〜/ .profile返回“没有这样的文件”,其他所有返回“许可被拒绝”
Tushar Koul 2013年

您需要超级用户权限才能在中编辑文件/etc。不过,您应该至少能够读取所有文件(前提是它们确实存在)。这些文件有哪些权限?(ls -el filename
Ansgar Wiechers 2013年

/ etc目录中的bashrc和〜/目录中的bashrc有什么区别?
Tushar Koul

2
一个/etc影响所有用户,您主目录(~)中的一个仅影响您自己的用户。并且中的设置~/.bashrc优先于中的设置/etc/bashrc
Ansgar Wiechers 2013年

对我来说,改变~/.profile工作。我正在使用MAC OS X El Capitan。我认为默认情况下,取自~/.profile
Crocode

25

在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

这是指向具有更多信息的站点的链接,即使该站点说明了“添加”路径也是如此。但是,您可能会获得一些见识。


2

使用sudo pico /etc/paths终端窗口内,改变条目要删除一个,然后打开一个新的终端会话。


以后我建议您在回答之前先阅读问题的内容。
Mike Furlender

1
还记得看看里面/etc/paths.d/
-zapstar

0

登录或启动bash shell时,将根据.bashrc或.bash_profile加载/配置环境变量。无论您执行什么导出操作,它仅对当前会话有效。因此,export PATH=/Applications/SenchaSDKTools-2.0.0-beta3:$PATH每次打开外壳程序时都会执行此命令,您可以覆盖它,但这同样仅适用于当前会话。编辑.bashrc文件以适合您的需要。如果说拒绝权限,或者说该文件受写保护,则指向其他文件的链接(许多组织保留一个主.bashrc文件,并为每个用户提供指向其主目录的链接,您可以复制该文件而不是link并开始向其中添加内容)


0

关闭终端(结束当前会话)。再次打开它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.