【问题标题】:Adding a path to the .bashrc file?添加 .bashrc 文件的路径?
【发布时间】:2012-11-17 20:16:30
【问题描述】:

目前我正在尝试将 ns-2 的路径添加到我的 .bashrc 文件中,我已经安装了 ns-allinone-2.34 但命令 ns 给出了结果:进入 shell 时找不到命令。

这是我的 .bashrc 文件当前的样子,我使用 gedit 对其进行了编辑:

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi


# User specific aliases and functions
export PATH=/home/michael/ns-allinone-2.34/bin/ns:/home/michael/ns-allinone-2.34/bin/nam:$PATH

有人可以解释为什么这不起作用或可能的解决方案是什么?我正在使用 Fedora 17。

【问题讨论】:

  • 您是否启动了重新加载 .rc 文件的新 shell?
  • 这是二进制文件还是目录:/home/michael/ns-allinone-2.34/bin/ns?它必须是包含二进制文件的目录
  • 修复它的啊我使用的是二进制文件而不是目录,我删除了最后的 ns 和 nam,它现在可以工作了!
  • 好。我添加了一个合适的答案

标签: bash path edit fedora


【解决方案1】:

另外,如果你像这样导出路径,你也想保留旧的 PATH,因此也包括它。

export PATH=$PATH:/home/michael/ns-allinone-2.34/bin/

【讨论】:

  • 他做到了,就在最后,就像它应该的那样。
  • 哦,你是对的,我没有滚动到那里并希望原始 PATH 位于开头...
  • 这个答案和接受的答案有什么区别?我的意思是,如果在 bin 的路径之前没有添加“$PATH:”会发生什么?
  • @Todea 路径按给定顺序搜索。因此,如果您将现有路径放在末尾,则将调用任何同名的可执行文件而不是正常的可执行文件。这通常不是你想要的,如果文件夹的权限比系统命令文件夹弱,这将成为一个安全漏洞:有人可以让你运行任意命令,只需在其中创建一个名为“ls”的文件。但是,无论如何,我们不应该从全局可写文件夹中运行 exe :) 所以,当您想要覆盖默认系统命令时,它很方便,但别名不会削减它。
【解决方案2】:

PATH 应该包含二进制文件的目录,而不是二进制文件本身。

例如,在上面:

export PATH=/home/michael/ns-allinone-2.34/bin/ns:..

实际上应该是:

export PATH=/home/michael/ns-allinone-2.34/bin:...

【讨论】:

  • 我确实错误地否决了这个答案..不知道如何恢复它..请帮助我:)
  • 我想只要再按一次相同的箭头按钮。
  • 不.. 它说“你的投票现在被锁定,除非这个答案被编辑”
  • @Maystro 您的反对意见是合理的。这可能会删除所有以前的 PATH。请参阅下面的第二个答案
  • @BinuJasim - 您能否解释一下如何将 PATH 变量修改到正确的目录并删除对二进制文件的错误引用不起作用?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-11
  • 2011-07-18
  • 2015-03-28
相关资源
最近更新 更多