きっかけ
この記事を書こうと思ったきっかけ。
所属している「もりけん塾」で、nodenv
の勉強会があり、そこでいろいろ知らない用語が出てきた。
そして先生から「開発者として必須」と言われたので、せっかくの機会だし、調べてみようと思った。
実は昨日の勉強会は次の勉強会の前提知識になるので出た方はラッキーだったのです
— フロントエンドエンジニア (@terrace_tech) May 29, 2021
shell、.bash_profile, .bashrc or .zshrcなどの設定、環境変数、パスを通すみたいなのはフロントというより開発者として必須なので
shellとはざっくり
shell
は、ユーザとOSの中心部にあるカーネル
との中継を担ってくれるソフトウェアのこと。
ユーザからコマンドが入力されることで、OSの中核であるカーネル
とやり取りし、カーネルのプログラムを呼び出す。
カーネルがプログラムを実行したら、shell
に結果を伝えてターミナルに出力する。
ユーザとカーネルが直接やりとりすることはできず、必ずshellを通じてやりとりすることになっている。
ログインシェルとは
ユーザがログインした直後に自動的に起動されるシェルのこと。
インタラクティブシェル(対話的シェル)
コマンドラインで bash とか zsh と入力すると起動するシェルのこと。対話形式で入力する。
自分が使っているshellを調べる方法
$ echo $SHELL
私の場合は、/bin/zsh
と表示されるので、使っているシェルはzsh
です。
以前まではbash
がログインシェルとして使われていたようですが、
MacOS Catalinaからはデフォルトのログインシェルが変更されており、ログイン時に読み込まれるのはzsh
となっています。
shellの変更方法
こちらはあまり使うことはないと思いますが、一応備忘録として残しておく。
現在変更できるshellの一覧を確認
$ cat /etc/shells
僕の環境では
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.
/bin/bash
/bin/csh
/bin/dash
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
このように表示されました。よく見るsh
、bash
、zsh
などが確認できます。
shellの設定ファイル
zshの設定ファイル
記述したものから順に読み込まれる。👇
.zshenv
ログインシェル、インタラクティブシェル、シェルスクリプト、どれでも常に必要な設定を定義する
zsh が起動して、必ず最初に読み込まれる設定ファイル
影響範囲が大きいので記述は必要最低限にするべき
.zprofile
ログインシェルに必要な設定だけを記述する
zshenv の次に読み込まれる設定ファイル
zsh ログイン時の一回だけ読み込まれる
.zshrc
ログインシェル、インタラクティブシェルの場合に読み込まれる
一般的に紹介されている記事ではこの設定ファイルにいろいろ記述することが多い。
.zlogin
ログインシェルに必要な設定だけを記述する
最後に読み込まれる
役割は .zprofile とほぼ一緒。混乱を避けるため併用しないこと
.zlogout
exit コマンドで zsh を抜けたときに読み込まれる
bashの設定ファイル
引用:本当に正しい .bashrc と .bash_profile の使ひ分け
.bash_profile
.bash_profile はログイン時にのみ実行されます。
具体的な用途は: 環境変数を設定する (export する変数)
.bashrc
.bashrc は対話モードの bash を起動する時に毎回実行されます。具体的な用途は:
・環境変数でない変数を設定する (export しない変数)
・エイリアスを定義する
・シェル関数を定義する
・コマンドライン補完の設定をする
これらは bash を起動する度に毎回設定する必要があるものです。
shellを変更する
zsh
からbash
にしてみます。
// 使っているshellを確認
$ echo $SHELL
-> /bin/zsh
// shellの変更
$ chsh -s /bin/bash
// shellを再起動
$ exec $SHELL -l
// 使っているshellを確認
$ echo $SHELL
-> /bin/bash
紹介
私が所属している「もりけん塾」は、もりけん先生が運営するJavaScriptに特化したコミュニティーです。(とは言ってもいろんな方がいらっしゃいます。)
フロントエンドエンジニアになりたい方にむけて、先生が道標となって初学者が迷わないように導いてくれます。コードの書き方、自走力を身に着けるにはとても良い環境です。
毎月1日に募集をかけていたのですが、ここ最近は募集かけなくても入塾したいとDMがくるそうです...!!(大人気)