迷い人

日々勉強。勉強の先に何か見つかるといいなぁ

パスを通すでつまづいた話

laravelコマンドを使おうとしたときに何度やっても

 

zsh: command not found: laravel

 

で困った時の話。

 

解決方法は以下の通り

 

・シェルをbashに変更

・.bash_profileに正しいパスを設定する

 

問題が発生した経緯は以下の通り

Laravel入門にしたがってLaravelをインストールして、Laravelコマンドを使えるようにPATHを設定したがうまく行かない。

 

PATHの設定がbash_profileだったにも関わらず、コマンドの実行はzshでやっていた。

 

zshってなんやねんとなって調べてみるとシェルの一種らしい。

 

シェルの説明は以下がわかりやすい。

 

https://wa3.i-3-i.info/word11219.html

 

人の命令をコンピュータに伝える仕組みを覚えておけば良さそう。

 

話を戻す。

 

zshという仕組みを使ってlaravelコマンドを使おうとしてたんだけど、今回はbashでlaravelコマンドを使うための設定を入れていたようだ。

 

使用するシェルをzshからbashに変更する。

 

変更方法は以下の通り

 

castleobj.com

 

設定ファイルを変更→保存するためには少しvimの使い方を知る必要がある。

 

iで入力モード

 

更新後、:wqで保存して終了できる。

 

再起動してzshからbashにシェルを変更したけどやっぱりうまく行かない

 

-bash: laravel: command not found

 

zshと少し表記が違うけどやっぱり見つからない

 

今回パスを設定したのは.bash_profileなのでそれを開いてみる

 

それと単純にパスのスペルミスだった

 

スペルを修正することで無事laravelコマンドが実行できるようになった

 

(蛇足)パスを通すってどういうこと

 

よくパスを通すって言葉を聞くのでこの機会に少し調べてみた。

 

ターミナルでコマンドを実行するときに実行ファイルのフルパスを入力しなくても実行ファイル名だけ入力すれば実行できるようになる仕組み

 

っていうのが私の理解です。

 

laravelコマンドを例にとると、パスを通さなくても

 

$ /Users/ooya/.composer/vendor/bin/laravel

 

と動く。ただ長いので

 

$ laravel

 

と入力しても動くようにするのがパスの仕組み

 

.bash_profileをみると以下のような記述がある

 

export PATH=~/.composer/vendor/bin:以下略

 

~はホームディレクトリを表す。私の場合は/Users/ooyaと同じこと

 

binフォルダの中にlaravelっていう実行ファイルがあるのでこれでちゃんとパスが通ったことになる。

 

実際にFinderでそのフォルダに行ってみるとちゃんと実行ファイルが確認できる。

 

 

f:id:oyaoya1123:20200415012112p:plain

 

隠しファイルを表示させましょう( command + shift + . )