Re: [Q]ログインシェルとそうでないシェル
しらいです。
In article <cgnqvj$5lt$1@newsl.dti.ne.jp>,
Anonymous Buddha <gobtma@yahoo.co.jp> wrote:
>ログイン後にシェルを実行するのと、機能的に相違はない、という事でしょうか?
>.login が読み込まれるか読み込まれないか、位の違いしかない、のでしょうか?
>よそから telnet 等でログインした場合、デフォルトのシェルを何にするか決まって
>いないと困るので、とりあえず決めてある、といった程度でしょうか?
厳密には login shell と一般の shell とで動作に違いはありま
すが、実用的にはその差異は無視出来る範囲でしかないといったと
ころでしょうか。
想像するに、例えば、普段は bash 使いなんだけど、ある環境で
login shell が csh になっているので、非 login shell の bash
を使う羽目になってしまった、なんてケースの懸念でしょうか。
大きな違いがないのでまずは安心して下さい、というのがこれま
での回答の殆んどのようです。それはそれで回答として妥当だと思
います。
でももしそれで満足出来ないようでしたら、その殆んどない筈の
差異を幾つか示してみましょう。
多くの shell で de-facto standard となっている仕様としては、
login shell 以外では以下の点が異なります。POSIX で定められて
いるかと思ってましたが今調べたら記載はないみたいです。
・起動時に環境変数 HOME の初期化をしない。
・組込みコマンド「logout」が失敗する。
・終了時に子 process に SIGHUP を送らない。
あと、細かい点ですが bash に限っては以下の点が異なりますね。
(「logout」が使えないので。)
・ignoreeof の振舞いが異なる。
>Lisp のインタープリタ等あるかと思いますが、そういったものもシェルとして使用
>可
>能なのでしょうか?
そう言えば TAO/ELIS が Lisp interpritor を login shell(?)
に使ってましたね。UNIX じゃなくて Lisp マシンなので当たり前
ですけど。
--
しらい たかし
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735