2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

「パスが通ってない問題だと思ったらターミナル再起動で解決」のしくみの初心者メモ

Last updated at Posted at 2018-09-10

環境変数はいつ呼ばれているか

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
で良い。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?