環境変数はいつ呼ばれているか
rbenvでrubyをインストールした時にそのままログイン状態ではバージョン確認できず、再ログインしたらバージョン確認できた のはなんでか。
ターミナルを起動した時には.bashなんちゃらとかが呼ばれて実行されており、
例えば
.bash_profile
とかがプロンプト出す前にもう呼ばれている。
試しにホームディレクトリで
$ vim .bash_profile
する。
echo 'aaa'
を書き込んでターミナル再起動してみる(Command+Nでok)。
すると
Last login: Mon Sep 10 21:24:47 on ttys001
aaa
HelloJTokyo:~ xxxxxx$
こんな感じでプロンプト出る前に aaa が出力されてる。
つまり、ログインしてるターミナルで環境変数いじっても、そのままではそのターミナルには反映されない。
ログインし直すと変更が反映されて読み込まれる。
$ rbenv global
で環境変数が変わったけど、変わった環境変数がまだ読み込まれてないターミナルでは反映されていない。だから再ログインする。
ログインしながらに新しい環境変数ロードするには(どこに当該環境変数が書かれてるか分かってたら、例えばそれが.bash_profileだったら)$ source .bash_profile
する。そうすると直ちに読み込まれる。
ちなみに $ . .bash_profile
でも意味は同じ。
余談
.bash_historyに書かれていること
今まで打ったコマンドラインが記録されてる。
↑↓で出てくるヒストリはこれを順番に出力してるだけ。
ファイルにechoを書いて目印にする
今これが呼ばれて実行されたよ。を知るために、ファイルに
echo 'このファイル名'
を書いとく。便利。確認したら消すの忘れず。
「分からない」という状態に慣れよう
「分からない」状態を受け入れるマインドを持っとかないとハードモード。
コマンドラインの気づき
$ ls -a -l
は、シンプルに
$ ls -al
で良い。