起きたこと
node,nvm,npmをインストールし、使用できていたのに、ある日急にどのコマンドもないと言われた
「command not found」
確認したこと
ホームディレクトリ直下にてファイルの一覧を表示(実行結果は省略して一部のみ表示)
xxx@DESKTOP-5QEHRDB:~$ ls -lah
drwxr-xr-x 5 xxx xxx 4.0K 5月 5 20:37 .nvm
フォルダは存在していた!
原因
PATH通ってなかった!
解決策
.bashrc
か.bash_profile
にPATHを記述
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
.bashrc
と.bash_profile
どっちがいいの?
読み込みの流れとしては、.bash_profile
→.bashrc
の順で読み込まれるので、どちらでもOK
役割分担の考え方➀
.bash_profile
:(ログイン時に一度だけ行えば良い)環境変数の定義担当
.bashrc
:その他の対話的操作で必要な設定担当
→こうしたいなら、今回の設定は .bash_profile
に書く
役割分担の考え方➁
.bash_profile
:~/.profile
と .bashrc
の読み込み担当
~/.profile
:環境変数の定義担当
.bashrc
:bash の対話的操作で必要なもの担当
→こうしたいなら、今回の設定は .bashrc
に書く
このへんついて参考にした記事↓
図で整理できる方すごい…めちゃくちゃ助かります…
bash の初期化ファイル .profile, .bashrc, .bash_profile の使い分けと管理方針
それでもうまくいかないときは
bashの起動時に上記の設定が読まれていない可能性がある
一時的になんとかするなら、sourceコマンド(ファイルに書かれた内容をコマンドとして実行する)を実行
$ source ~/.bashrc
毎回↑これをやらないためには、.bash_profile
に以下の設定を追加して、ターミナル起動のために.bashrc
を読み込むように設定
if [ -f ~/.bashrc ] ; then
. ~/.bashrc
fi