如何更改 Bash 中命令的默认目录?

How to change default directory for a command in Bash?

首先,我是 Linux 的新手,如果有任何术语错误,请多多包涵;我会尽量准确地表述问题。

我已经通过 Linuxbrew 安装了 Ruby (2.4.0)。 ruby 命令工作正常;它安装正确。但是,当我尝试使用 gem 命令(应该安装 Ruby )时,我收到此错误: bash: /usr/bin/gem: No such file or directory

现在,因为我是用 Linuxbrew 安装的,所以我知道这个目录不正确。例如:

which gem 的结果:/home/me/.linuxbrew/bin/gem

which ruby 的结果:/home/me/.linuxbrew/bin/ruby

因此,似乎 gem 已安装,但 gem 命令未链接到正确的路径。我假设我需要将 gem 命令指向 which gem 的路径,而不是 bash 所说的 /usr/bin/gem 不存在的路径。我将如何改变这个?我尝试更改 bash_profile 但没有成功,但我不确定该怎么做。

再次抱歉,如果 rubygem 没有被称为命令,并且问题不是标题中所述的 "default directory"。我不确定如何标记它。

EDIT/TL;DR:

基本上,我怎样才能让 gem 执行这个:/home/me/.linuxbrew/bin/gem 而不是在 /usr/bin/gem 中寻找程序?

而不是 运行ning gem、运行 /home/me/.linuxbrew/bin/gem,即键入完整路径名(后跟您可能需要的任何参数)。

如果这变得太麻烦,您可以更改您的 PATH。在您的 bin 目录前加上

PATH=$HOME/.linuxbrew/bin:$PATH

首先,您收到错误 /usr/bin/gem not found 的原因是,在同一 shell 会话的早些时候,该文件曾经在那里。 Bash 将缓存它以在多次 运行 相同命令时加快速度。 运行 hash -r 将清除此内容。

编辑 PATH 你似乎已经成功了,因此 which 命令给出了它所做的结果。

回答我自己的问题-

因为我之前在同一个终端 window 中通过 apt-get 而不是 Linuxbrew 安装和卸载 Ruby,Bash 在 [= 中寻找 gem 11=] 而不是我在 bash_profile 中指定的路径到 Linuxbrew。

因此,我相信 Stian 上面的 hash -r 答案也行得通。