環境変数について / ログインシェルの変更

  • 4
    いいね
  • 0
    コメント

始めに

これまで度々、「環境変数ってなんや?」って思う機会がありましたが、Linuxコマンドに慣れていなかったり、Vimの使い方がさっぱりだったりして全く手がつけられませんでした。

プログラミングを勉強し始めて6ヶ月弱、ようやく環境変数について少し分かったので、備忘録として書いておきます。

[参考にさせていただいたサイト]
http://qiita.com/soarflat/items/09be6ab9cd91d366bf71
http://qiita.com/soarflat/items/d5015bec37f8a8254380

環境変数とは?

「環境変数」=「SHELLでコマンドとして打てる文字の一覧を示したパスの集合」と理解しています。
少しずれているかもですが、これが一番しっくりきた説明です。

JSとかでたまに ($this) のような変数を見かけますが、それと同じで、 $PATH も変数で、コマンドとして使える文字(例えば pip とか pyenv , rbenv)などのような文字の一覧を書いた箇所までのパスの一覧です。

$PATH に何が入っているかをみるためには

$ echo $PATH

とすればよく、僕の環境では

/Users/username/.pyenv/shims:/Users/username/.pyenv/bin:/Library/Frameworks/Python.framework/Ver
sions/3.6/bin:/Users/username/anaconda/bin:/usr/local/share/npm/bin:/Users/username/.pyenv/shims
:/Users/username/.pyenv/bin:/usr/local/share/npm/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbi
n

と出力されました。

: を境にして、いくつかのパスが記述されているのがわかると思います。

試しに、 Users/username/anaconda/bin (これは ~/anaconda/bin と同じ)をのぞいてみると...

スクリーンショット 2017-06-14 17.04.07.png

こんな感じで使えるコマンドの一覧が見えます。

Pythonユーザーは分かると思いますが、 django-admin とか jupyter-notebook とかよく使うコマンドが書いてありますね。

Mac(に限らない?)のディレクトリ構成

もう一つ、これまで環境変数がわからなかった原因と
して、 usr/bin とかの usr ってどこやねん!って思っていたことが挙げられます。

これまでディレクトリは Users から始まると思っていたのですが、 Users 配下にいるときに恐る恐る

$ cd ../
$ ls

をしてみると...

スクリーンショット 2017-06-14 0.21.43.png

ありました!!!!!

なんとここにあったのか usr よ!って感じですね。

ログインシェルをZshに変更する

最後に、ログインシェルをZshに切り替える時の説明をして終わりたいと思います。

[参考にしたサイト]
http://ba-kgr.hatenablog.com/entry/2015/03/24/211031

Zshが何か正直よく分かってませんが、「なんか便利なシェル」って感じのやつです。笑

シェルをZshに変えることで、シェルでの作業がやりやすくなります。

$ brew update

$ brew install zsh

で、Zshをインストールしましょう!

インストールしたZshは usr/local/bin/ に保存されます。

次に、Zshを便利にするため、設定ファイルをいじって行きます。

$ vi ~/.zshrc

Vimですね。僕は普段Atomしか使わないので、一時期こいつに苦しみました...今はようやく親みが湧いてきて、宗教戦争に参加しようかと考えたりしてます。笑 (Vim側で)

その場で i を押すと、 INSERT MODE となり、書き込めるようになります。

僕はインターン先のエンジニア先輩に設定ファイルをもらって、いらない部分を削ったり、いる部分を追加したりして書きました(公開していいやつかわからないので、いいやつだと分かったら公開します)。

[参考になるサイト]
http://d.hatena.ne.jp/oovu70/20120405/p1

こんな感じで設定を書きます。

書き終わったら、 :wq をその場で叩いて保存してVimを終了します。

$ source ~/.zshrc

と叩いて設定を反映します。

次に、

$ sudo vi /etc/shells

として、アクセス可能なシェル一覧に、先ほどインストールした usr/local/bin/zsh を追加しましょう。

iINSERT MODE 、以下のように記述して、 :wq で保存して終了します。

スクリーンショット 2017-06-14 0.50.02.png

ここでは重要な?ファイルに変更を加えるため、 sudo (superuser do)と、管理者権限で変更します。

最後に、ログインシェルを変更します。

$ chsh

と叩くと、パスワードが要求されるので、macにログインするパスワードを入力します。

スクリーンショット 2017-06-14 0.50.57.png

INSERT MODE にして、 Shell の欄を /usr/local/bin/zsh に変えましょう!

これで次からターミナルを起動した時はZshが起動するはずです!

ここまでやれば割と理解した気になれると思います(僕はなれました)。笑