シェルとはなんぞや〜その②
前回までのあらすじ
.bash_profile
について学んでたんだけどそもそもシェルってなんなの?って思って調べたました。
シェルはカーネルへのサービスのアクセスを提供するものということ。ようするにmacのターミナル(ものすごく大雑把にくくっています)ということです。
それで、シェルには色々種類があるのだ、というところまで確認しました。macのデフォルトはbash
です。
起動ファイルの順序
とりあえず、ITメディア エンタープライズさんの記事にある文章を引用しますと。
ユーザーがログインに成功した後、bashは「ログインシェル」として一般的に以下のような流れでファイルを順次検索し、ファイルが存在していれば実行し起動します。
(bashが起動時に実行するファイル - ITmedia エンタープライズより引用)
bashの起動(ログイン)時には上記のような順番でファイルが読み込まれているようです。
わかったこと
/etc/profileと/etc/bashrc
一番最初に読み込まれているらしいファイルは、etc/profileです。
中身は以下のようになっています。
# System-wide .profile for sh(1) if [ -x /usr/libexec/path_helper ]; then eval `/usr/libexec/path_helper -s` fi if [ "${BASH-no}" != "no" ]; then [ -r /etc/bashrc ] && . /etc/bashrc fi
はっきりとしたことはよくわかんないのですが、${BASH-no}とやらが存在するならば/etc/bashrcが読み込まれている...という感じでしょうか?
では続いて/etc/bashrcを見てみると
# System-wide .bashrc file for interactive bash(1) shells. if [ -z "$PS1" ]; then return fi PS1='\h:\W \u\$ ' # Make bash check its window size after a process completes shopt -s checkwinsize [ -r "/etc/bashrc_$TERM_PROGRAM" ] && . "/etc/bashrc_$TERM_PROGRAM"
こちらは完全に意味不明です...orz
この2つのファイルは
すべてのユーザーに影響を与えるグローバルな初期設定が記述されており、「システムプロファイル」と呼ばれています。
らしいです。ものすごーく大事なファイルです。よほどのことがない限りあんまり編集しないほうがよさそうです。
まとめ
こんかいのまとめです。