LoginSignup
1
3

More than 1 year has passed since last update.

Shellについてざっくりまとめてみた

Last updated at Posted at 2021-06-06

きっかけ

この記事を書こうと思ったきっかけ。
所属している「もりけん塾」で、nodenvの勉強会があり、そこでいろいろ知らない用語が出てきた。
そして先生から「開発者として必須」と言われたので、せっかくの機会だし、調べてみようと思った。

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

このように表示されました。よく見るshbashzshなどが確認できます。

shellの設定ファイル

参考: zshrcとzprofileについて

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がくるそうです...!!(大人気)

先生のブログ
先生のTwitter

1
3
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
1
3