在Windows上的Ubuntu上为Bash设置$ PATH的问题(Linux子系统)

时间:2017-12-03 04:34:33

标签: linux bash ubuntu terraform windows-subsystem-for-linux

我正在使用“Windows上的Bash on Ubuntu”(Linux子系统),并希望将Terraform添加到我的$ PATH中。由于无法通过apt-get安装Terraform,我执行了以下步骤:

  1. 导航到此目录,我想在其中安装Terraform:

    cd / usr / local

  2. 在上面的路径中,我使用wget下载Terraform:

    的wget https://releases.hashicorp.com/terraform/0.9.8/terraform_0.9.8_linux_amd64.zip

  3. Terraform成功解压缩!当我在VIM中打开文件时,一切都很好:

    解压缩terraform_0.9.8_linux_amd64.zip

  4. 然后输入此命令以检查是否可以从命令行访问Terraform二进制文件:

    terraform -version

  5. 但是会返回以下消息:

    terraform: command not found
    

    这告诉我Terraform下载的位置需要添加到我的$ PATH。

    1. 已经以root用户身份登录(“sudo su”)我输入以下命令来访问“.profile”:
    2. vim~ / .profile

      以下内容已在此文件中,我保持不变:

       # ~/.profile: executed by Bourne-compatible login shells.
      
       if [ "$BASH" ]; then
         if [ -f ~/.bashrc ]; then
           . ~/.bashrc
         fi
       fi
      
       mesg n
      

      在此文字的下方,我添加以下内容,并使用:wq成功保存文件!

       export PATH=/usr/local/bin:$PATH
       export PATH=$PATH:/usr/local/terraform
      

      6。 然后我再次输入以下命令来检查是否检测到terraform

      terraform -version

      返回相同的“terraform:command not found”消息。我甚至尝试关闭并启动新的命令行会话,甚至重新启动计算机。仍然没有变化。

      任何人对如何解决此问题都有任何想法?再次注意,我正在使用“Windows上的Ubuntu上的Bash”(Linux子系统)。任何意见都将不胜感激!

2 个答案:

答案 0 :(得分:6)

最后直接回答你的问题。 但是我认为如果你继续读这里会更有意义。

在尝试添加到PATH之前, 我建议先测试一个程序。 在你的情况下,我会这样做:

wget https://releases.hashicorp.com/terraform/0.9.8/terraform_0.9.8_linux_amd64.zip
unzip terraform_0.9.8_linux_amd64.zip
./terraform

注意最后一行./terraform。 该zip文件包含一个文件terraform, 现在应该在当前目录中, 所以我可以用./terraform运行它。 如果它是可执行的。 如果它不可执行,请确认:

ls -l terraform

如果需要,请将其设为可执行文件:

chmod +x terraform

现在让我们将其添加到PATH。 但首先, 让我们决定把这个可执行文件放到哪里。 /usr/local/bin似乎是一个合理的位置。 因此,让我们将terraform可执行文件移动到该目录中。

通常/usr/local/bin已经在PATH上, 所以你可能不需要改变任何东西。 现在你可以试试你的支票了,它已经很有可能了:

terraform -version

如果没有,则/usr/local/bin上不会PATH。 要添加它,请在~/.profile

中添加此行
export PATH=$PATH:/usr/local/bin

您的方法有两件事情看起来根本错误:

  1. /usr/local/terraform添加到PATH。这很可疑,因为PATH上的条目必须是目录,并且在您的帖子中没有任何内容表示您在/usr/local/terraform创建了目录。

    • cd进入/usr/local,然后是unzip terraform的zip文件。链接的zip包含一个名为terraform的文件,因此示例中的/usr/local/terraform应该是一个文件。
    • 如果它是一个文件,那么你可以通过添加到terraform其基目录来使其可执行为PATH。但是将/usr/local添加到PATH并不是一个好主意。将二进制文件放入/usr/local/bin而非直接放入/usr/local
    • 是常规的
  2. 您没有提及如何重新加载~/.profile。编辑此文件后,您添加的新命令不会在当前shell中自动执行。当您打开一个新shell时,它们将被执行。或者您可以在当前shell中手动执行添加的命令。

答案 1 :(得分:0)

点击以下命令

export PATH=$PATH:/usr/local/bin