【问题标题】:Why is my .bashrc and .bash_profile different from echo $path为什么我的 .bashrc 和 .bash_profile 与 echo $path 不同
【发布时间】:2025-12-14 01:35:01
【问题描述】:

我试图在我的路径中添加一些东西。但是由于我对终端非常熟悉,所以我认为我搞砸了。

当我做echo $PATH 我得到:

/Users/christoph/.node/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

但是当我打开.bashrc 时,我看到了这个:

alias homestead=~/.composer/vendor/bin/homestead

echo 'export PATH="$PATH:$HOME/.composer/vendor/bin"' >> ~/.bashrc

export PATH="$PATH:$HOME/.composer/vendor/bin"

当我打开 .bash_profile 时,我看到了这个:

export PATH="$HOME/.node/bin:$PATH"

我想做这一步:(安装 laravel 代客)

通过 composer global 使用 Composer 安装 Valet 需要 laravel/valet。 确保 ~/.composer/vendor/bin 目录位于系统的 “路径”。

我很困惑我应该如何添加这条路径。我还需要把它放在哪个文件中?

我正在使用 MAC OSX El Capitan

【问题讨论】:

标签: bash laravel-valet


【解决方案1】:

从您的.bashrc 中删除此行!!!

echo 'export PATH="$PATH:$HOME/.composer/vendor/bin"' >> ~/.bashrc

每次登录时都会在 bashrc 中添加一个新行。

总的来说,您应该只在单个文件中修改 PATH 环境变量(.bash_profile,但很多人会在修改 .bashrc 时出错)。它的工作原理如下:PATH 是由 ':' 字符分隔的目录列表,$PATH 扩展为该列表的先前值。示例:

export PATH=/fooo:/barr:/bazzz

将这些树目录准确地放在 PATH 变量中。在您的情况下,您的.bash_profile 中应该有以下行:

export PATH=$PATH:$HOME/.node/bin:$HOME/.composer/vendor/bin

并删除所有不必要的别名。

【讨论】:

  • 感谢您的回答!你能解释一下为什么使用别名是不好的做法吗?另外,由于我在我的 bash_profile 中使用了该路径,我的主 .bashrc 文件中的路径应该是什么?只是一个空文件?或这样的基本路径: export PATH=$PATH:$HOME ?
  • 如果我在这些更改之后回显 $path,我会得到以下信息:/Users/christoph/.node/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin,这些更改似乎不可见。
  • 您需要重新登录(或者您可以调用source .bash_profile)才能更新。别名不是不好的做法,但它们是为不同的东西而设计的:修改现有命令的行为 - 例如:我定义了以下别名:alias ll='ls -l'alias ssh='ssh -X'alias ocaml='rlwrap ocaml' 等。
  • 好的,有道理。我的 bash_profile 有更长的路径并且现在正在工作,我的 .bashrc 文件有这个路径: export PATH="$PATH" 。这是正确的还是我应该将主文件更改为其他文件?
  • 没关系 - 你可以从 bashrc 中完全删除这一行 :)
最近更新 更多