相変わらず、現場の都合などでmacで作業を行うことが多いです。
そうなると、bashを扱ったり、
windows環境のみで作業を行なっていた時には、
あまり意識していなかったことが、ハマりどころになったりします。
特に、新しい技術の調査を行う時には、
色々とツールをインストールするのですが、
その場合、環境変数・PATHの設定をほぼ確実に行うことになります。
Windowsは、何回もやっているので、特に迷わずできるのですが、
久々に、mac・Linuxを触ると毎回調べている気がするので、
今回は、設定ファイルについて、簡単にまとめておこうと思います。
目次
mac Linux(環境変数・PATH)設定方法について
色々な情報を省いた結論を書いてしまいますと、以下となります。
~/.bashrcに設定を記述する
具体的には、
vi ~/.bashrc
↓
export PATH=$HOME/.nodebrew/current/bin:$PATH
※設定したい内容に変更します。(こちらは、nodebrewを設定した時のもの)
↓
source ~/.bashrc
とかやります。
~/.bash_profileにも設定可能ですが、色々と不都合があります。
記述方法は、以下となります。
export PATH=$PATH:追加したいコマンド検索パス
どのprofileに設定する場合も、同じ記述方法となります。
~/.bash_profileに記述した場合
設定を行なった後、ログオフを行うと設定が無効となります(再度、読み込みを行う必要があります)。
同じ設定を有効にする場合、ログインをし直すたびに、反映させる必要があります。
試しに設定する場合は良いですが、毎度、反映をさせるのは面倒です。
よく、ツールの導入手順などをネットで見ていると、
以下のコマンドを入力してPATHを通すみたいな説明が乗っているのですが、
source ~/.bash_profile
直後は、問題なく動いても、しばらくしてからログインした時に、
動かなくてバージョン情報すら見れなくなり、慌ててしまうということが良くあります。。。
気をつけたいと思います。
~/.bashrcに記述した場合
~/.bash_profileと異なり、再度ログインを行なっても設定がキープされます。
ただし、ターミナル以外から起動するプログラム(GUI起動など)に、
環境変数が引き継がれないため注意が必要です。(引き継がせる場合は、~/.profileに書く)
bashでしか使わないものを記述する分には、問題が無いと思われます。
余談ですが、~/.bashrcには、
標準出力や標準エラーが発生しないように設定します。
rsyncしようとした時にエラーになったりハマりやすいので、
出力系だけは、行わないようにします。
~/.zshrcに記述した場合
ログインシェルとインタラクティブシェルで実行したい場合に、記述を追加します。
シェルスクリプトでは実行されません。
※ログインシェル
簡単に言うと、オプション -
または --login
を付与して実行するシェルです。
※インタラクティブシェル
簡単に言うと、オプション-c
を付与しないで、通常実行するシェルです。
オプション-c
をつけると非インタラクティブシェルになります。
https://www.gnu.org/software/bash/manual/html_node/Invoking-Bash.html
~/.zprofileに記述した場合
~/.zprofileには、ログインシェルで、1度だけ読み込ませたい場合に記述を追加します。
以上となります。
linuxも色々と設定が出来て奥が深いのですが、
その分、気をつけて設定を行わないと、
色々と思わぬエラーを読んでしまうことになりますので、
気をつけて設定を行なっていきたいと思います。
------------------------------------------ スポンサーリンク ------------------------------------------