运行命令 export PATH=/nsm/bro/bin:$PATH 时出错

运行命令 export PATH=/nsm/bro/bin:$PATH 时出错

我想安装 BRO-IDS。

我运行了以下命令:

cd bro-2.2
./configure --prefix=/nsm/bro
make
make install

当我运行此命令时:

export PATH=/nsm/bro/bin:$PATH

不起作用。这样正确吗?我该如何运行此命令?

您还可以将 PATH=/opt/bro2/bin:$PATH 添加到主目录中的 ~/.profile 文件中,以使更改永久生效。

当我尝试这样做时出现此错误:

root@ubuntu:/home/eng-it/bro-2.2# ~/.profile
bash: /root/.profile: Permission denied

和这个:

root@ubuntu:/home/eng-it/bro-2.2# sudo su -c "echo 'PATH=/opt/bro2/bin:$PATH'>>/etc/profile

不起作用。它正确吗?

答案1

您的第一个命令export PATH=/nsm/bro/bin:$PATH在理论上是有效的,尽管不建议将其添加到路径前面 - 您应该将其附加(添加到末尾)。

您是否检查过是否/nsm/bro/bin存在并包含您想要运行的文件?

此外,该命令只会影响当前 shell 会话;PATH 在任何其他 shell 中都不会受到影响(因此当您打开新终端时,PATH 将不包括您的添加)。

root@ubuntu:/home/eng-it/bro-2.2# ~/.profile
bash: /root/.profile: Permission denied

发生这种情况是因为您尝试运行/root/.profile不存在或没有执行权限的文件。

如果你是 root 用户,那么路径 ~/.profile 不会指向你的 .profile,因为~扩展是针对当前用户进行的。切换到你的普通用户,然后执行

nano ~/.profile

然后添加您想要的行,保存并退出。

该命令似乎有效(尽管不建议)

root@ubuntu:/home/eng-it/bro-2.2# sudo su -c "echo 'PATH=/opt/bro2/bin:$PATH'>>/etc/profile"

sudo su -c/nsm/bro是多余的,因为您已经是 root 了(为什么您是 root?除非绝对必要,否则您应该避免这样做)。但是,由于您是根据前缀标志安装程序的./configure,我不明白为什么添加/opt/bro2/bin到 PATH 会有帮助。

即使该路径正确,您也需要注销并重新登录才能使更改生效.profile/etc/profile要立即获取它们,您可以通过键入 来启动登录 shell bash -l,或者您可以获取您编辑的文件source /etc/profile

然而,不建议添加东西/etc/profile- 您应该在中创建一个文件/etc/profile.d,或者在中为您的用户本地指定变量~/.profile

假设您要运行的文件实际上位于/nsm/bro/bin,作为普通用户(非 root 用户),你可以这样做

echo 'PATH=$PATH:/nsm/bro/bin' >> ~/.profile

或者如果你真的想全局设置它

sudo bash -c 'echo 'PATH=$PATH:/nsm/bro/bin' > /etc/profile.d/path.sh'

然后注销并重新登录。

相关内容