😇

環境変数(PATH)を上書きして「command not found」

2017/05/30に公開

はじめに

以前Goをインストールしてパスを通すときに環境変数に$をつけ忘れ、パスを上書きしてしまうかなり初歩的なミスを犯しました。
そしてほとんどのコマンドがcommand not foundになってしまいかなり焦ったので備忘録として残しておこうと思います。

環境

  • Vagrant 1.8.5
  • bento/centos7.1 (virtualbox, 2.2.2)
  • zsh

原因

Goに関する部分で間違ってしまった~/.zshrcの記載がこちら

~/.zshrc
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:/usr/local/go/bin
export PATH=PATH:$(go env GOPATH)/bin

4つ目のパスの設定がミスっている...
これだと環境変数のパスが呼び出されていないのでパスが上書きされてしまいます。
本当ならばexport PATH=$PATH:$(go env GOPATH)/binとしなければならないのに当時の自分は何を思ったのか碌に確認もせず$ source ~/.zshrcを打ち込んでしまいました。
そしたらlsコマンドがcommand not found、この時点でやらかしたーと思いvi ~/.zshrc

結果command not found
シェルを変えることもできず、とりあえずechoやexportコマンドは動くようなのでググればなんとかなるかもしれないと考えました。

解決法

かなり簡単なことで、パスを設定しなおせばコマンドは動くようになりました。
export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin

これである程度のコマンドは動くようになったので真っ先に~/.zshrcを直しました。
これで一安心.

結果

自分は予期しないことが起きると焦ってしまうので、どんな時でも落ち着いて対応できる精神を身につけなければいけないなと痛感しました。
焦ったときこそググレカスって自分に言い聞かせたいと思います。

Discussion