シェルコマンドが通らなかったときにやること


こんにちは、みみです。

日頃iMacでひっそり作業をしているのですが、お外でも作業できるように、お下がりのMBPの開発環境を整えていたら、シェルスクリプトで躓いたのでメモしておこうと思います。

前のやり方でやろうとしたらportコマンドが通らなかったのでした。

まずはecho $PATH

あれ、コマンドが通らないなーと思ったら、まず

[code]echo $PATH[/code]

と入力すれば、PATHという変数に何が設定されてるか分かります。コマンドのパスを調べる

例えば、portだったら

[code]sudo find / -name “port”[/code]

とかして、場所を調べます。

今回は

[code]/opt/local/bin:/opt/local/sbin:/opt/local/lib/mysql56/bin[/code]

でした。このパスが設定されていなければ、書き足せばよいです。

zsh + prezto にする(ちょっと寄り道)

と、その前に、シェルの環境をzshにします。
あんまり良くわかってないんですが、兎も角便利なのでzshにしておいたほうが良いらしい。(※ コマンドを通すためには特に必須な作業ではありません。)

https://github.com/sorin-ionescu/prezto
ここのInstallation の1〜4を実行します。

1. zshを開始して

[code]zsh[/code]

2. このリポジトリをクローンします

[code]git clone –recursive https://github.com/sorin-ionescu/prezto.git “${ZDOTDIR:-$HOME}/.zprezto”[/code]

3. zshの設定をします

[code] setopt EXTENDED_GLOB
for rcfile in “${ZDOTDIR:-$HOME}”/.zprezto/runcoms/^README.md(.N); do
ln -s “$rcfile” “${ZDOTDIR:-$HOME}/.${rcfile:t}”
done
[/code]

4. デフォルトのshellをzshに設定します

[code]chsh -s /bin/zsh[/code]

これでzshに移行完了。

PATHを通す

zshで通したいコマンドのPATHの設定をします。

[code]vi ~/.zshenv[/code]

として、.zshenvを開きます。
(.zshenvはzshの設定ファイル。bashの場合だと.bashrcとかになります。)

[code]#Ensure that a non-login, non-interactive shell has a defined environment.[/code]

の上に

[code]setopt no_global_rcs
export
PATH=”/opt/local/bin:/opt/local/sbin:/opt/local/lib/mysql56/bin:$PATH”[/code]

と書いて保存。このPATHの値は通したいコマンドで変わります。

設定したPATHを反映するためには
[code]source ~/.zshenv[/code]
を実行するか
ターミナルを新しいウィンドウ(タブ)で開く必要があります。