如何更改 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
但没有成功,但我不确定该怎么做。
再次抱歉,如果 ruby
和 gem
没有被称为命令,并且问题不是标题中所述的 "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
答案也行得通。
首先,我是 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
但没有成功,但我不确定该怎么做。
再次抱歉,如果 ruby
和 gem
没有被称为命令,并且问题不是标题中所述的 "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
答案也行得通。