teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

シェルについて補足

2016/03/31 00:34

投稿

unau
unau

スコア2468

answer CHANGED
@@ -1,3 +1,24 @@
1
1
  `~/.bashrc` や `~/.zshrc` などは、bash や zsh の起動時に自動的に読み込まれ、実行されるスクリプトです。一方で、bash における `source` は、今現在使っている bash の中で外部ファイルに書かれたスクリプトを読み込んで実行します。したがって、どのファイルにパスを通す設定が書いてあったとしても `source` で指定して実行すれば、現在使っている bash でその設定が有効になります。
2
2
  違いが出てくるのは、次回ログインしたとき、など、別の bash が起動したときです。もし、`~/.bashrc`
3
- に記述していない場合は、次回起動したときには再度パスを設定しなおす必要があります。`~/.zshrc` にパスを通す設定を書いた、ということは、zsh のほうでは次回 zsh を起動したときには、パスが通っている、ということになります。
3
+ に記述していない場合は、次回起動したときには再度パスを設定しなおす必要があります。`~/.zshrc` にパスを通す設定を書いた、ということは、zsh のほうでは次回 zsh を起動したときには、パスが通っている、ということになります。
4
+
5
+ ---
6
+ シェルについて補足します(一部は別の質問への私の回答を抜粋)。
7
+
8
+ bash は、いわゆるシェル(shell : 殻)の一種であり、カーネル (kernel : 核) が提供するさまざまなサービス(プロセスとかファイルシステムとかネットワークとか)を利用するための窓口です。「核」を直接いじるのはめんどいので、使いやすいインタフェースとして「殻」があるわけです。
9
+
10
+ シェルは、単なる「殻」、あくまでも使いやすくするためのインタフェースなので、代替がいろいろあります。Linux などでは bash が標準でしょうが、sh, bsh しか入っていない Unix系 OS もあります。システムの内部で使うだけでなく、人間が使うのに便利なように開発されたシェルも古くは csh, tcsh とかありましたが、zsh なんかも人気があるんですかね(古い人間なのでよく知りません)。
11
+
12
+ CentOS だとデフォルト bash ですが、他のシェルを選ぶこともできます。zsh が使いたければ zsh をインストールし、任意のシェルから起動することもできますし、特定のユーザがログインしたときに使われるログインシェルは `/etc/passwd` で設定します。
13
+ ```
14
+ $ grep $USER /etc/passwd
15
+ ```
16
+ とかやると、自分の使うログインシェルが確認できます。
17
+ また、そのシステム内で使えるシェルの一覧は `/etc/shells` に記述されています。
18
+ ```
19
+ $ cat /etc/shells
20
+ ```
21
+ してみてください。
22
+
23
+
24
+