我在哪里设置bash路径?


9

我想~/bin从我的路径中删除。几个月前,我对Linux(Ubuntu)感到陌生,但我不知道如何添加它。

当我搜索下面列出的所有文件时,什么都没有显示。
还有什么地方可以设置?它被后前置于$HOME/.profile前缀与PATH$HOME/bin

如果有什么不同,我可以从命令提示符和正在运行的脚本中获得相同的PATH。

#!/bin/bash
{
  echo "first dir of PATH is: '${PATH%%:*}'"
  shopt -s nullglob
  cat \
    /etc/profile \
    /etc/bash.bashrc \
    /etc/profile.d/*.sh \
    $HOME/.bashrc \
    $HOME/.bash_aliases \
    /etc/bash_completion \
    $HOME/.bash_completion* \
    $HOME/.profile \
    $HOME/.profile_zap \
    $HOME/.bash_profile* \
    $HOME/.bash_login* \
  | sed -rne '/~\/bin/p'
}

输出为:

first dir of PATH is: '~/bin'

尝试改用grepping PATH。如果仍然不走运,请检查所有文件中是否有任何来源。
jw013 2011年

您是否检查过〜/ .bashrc和〜/ .profile?如果没有,请查看/ etc / profile。我想您会在这些地方之一找到它。
nikhil 2011年

谢谢大家......所有的建议是有帮助...这是~/.gnomerc...
Peter.O

Answers:


10

您可能要跟踪登录时的完整环境负载。只是一个主意。

由于/ etc / profile是第一个来源的文件,因此可以在最顶部添加一个:

set -x
exec 2> /tmp/debug.log

然后打开一个新的终端并做一个bash -l; 之后,转到原始终端并删除添加的行(您想拥有一个工作环境,对吗?)。

您应该在/tmp/debug.log处获得关于loading_the_bash_environment的所有步骤的完整跟踪。这将是一个文件。

这样,您必须能够找到“〜/ bin”进入PATH的位置

我首先要查找所有来源的文件的grep。从您的帖子中,我敢打赌,路径中的〜/ bin设置在与您列出的文件不同的文件中。


@hmontoliu ..我有一对夫妇与此。首先,没有什么会日志的问题,但我得到了很多的输出终端(konsole)...第一次提到~/bin在显示它已经路径,但是我看不到它的来源。。在这一点上,它已经跟在$HOME/binfrom 后面$HOME/.profile(我确定它是从那里开始的,因为我为此测试使用了特殊的额外目录)。 ...但是,通过搜索所有文本文件,我已经凭经验找到了它。.它来自~/.gnomerc..,我需要重新登录才能进行更改。?? !! ..
Peter.O 2011年

您确定已在/ etc / profile顶部粘贴了行,并以纯文本执行了bash -l吗?它必须将转到stderr的调试(-x)发送到/tmp/debug.log; 确实,我已经测试了它并且按预期工作了
hmontoliu

我将再次尝试(再次)...这种日志分析无疑是解决问题的方法(当其他所有方法都失败时:),这是我更好地了解它的好机会...
Peter.O

...我现在必须将这个日志问题放到太硬的篮子里。.它仍然没有输出到日志文件中,但是我在终端中有几百行..没关系。一个很好的调试日志介绍..我当然对配置文件有了更好的了解...谢谢...
Peter.O 2011年

3
我必须在第二行中替换setexec,然后它对我来说非常有效:)
thomasa88
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.