Re: [Q]ログインシェルとそうでないシェル
> >ログイン後にシェルを実行するのと、機能的に相違はない、という事でしょうか
?
> >.login が読み込まれるか読み込まれないか、位の違いしかない、のでしょうか?
> >よそから telnet 等でログインした場合、デフォルトのシェルを何にするか決
まって
> >いないと困るので、とりあえず決めてある、といった程度でしょうか?
>
> 厳密には login shell と一般の shell とで動作に違いはありま
> すが、実用的にはその差異は無視出来る範囲でしかないといったと
> ころでしょうか。
ログイン後シェルとして使用したいコマンドを起動した場合、元のままのシェルを使
うのと
動作が異なる点として、自分が思いついたところでは、.cshrc なり、ログインシェ
ルの起動
時に読み込まれる設定ファイル内で定義されるシェル変数が継承されない、という点
は、動
作の違いとしてあると思いましたが、如何でしょうか。
> 想像するに、例えば、普段は bash 使いなんだけど、ある環境で
> login shell が csh になっているので、非 login shell の bash
> を使う羽目になってしまった、なんてケースの懸念でしょうか。
>
> 大きな違いがないのでまずは安心して下さい、というのがこれま
> での回答の殆んどのようです。それはそれで回答として妥当だと思
> います。
了解しました。
ご教示ありがとうございます。
そうすると例えば、職場でログイン・シェルが csh になっているけれども、コマン
ド・ラ
イン編集機能などで作業効率を向上したいので、tcshを使いたい。しかし、システム
管
理者様には、恐れ多くてそんな事は頼みづらい、と言った場合、こっそり.login の
中で
tcsh を起動するように記述しておく、なんてこともありでしょうか?
ちなみに、私の職場では、csh でログイン後 tcsh を起動して作業したところ、コマ
ンド類
のメッセージが文字化けしてしまいました。何かの設定が足りないか、継承されてい
ない
シェル変数があるのでしょうか?
> でももしそれで満足出来ないようでしたら、その殆んどない筈の
> 差異を幾つか示してみましょう。
>
> 多くの shell で de-facto standard となっている仕様としては、
> login shell 以外では以下の点が異なります。POSIX で定められて
> いるかと思ってましたが今調べたら記載はないみたいです。
> ・起動時に環境変数 HOME の初期化をしない。
> ・組込みコマンド「logout」が失敗する。
> ・終了時に子 process に SIGHUP を送らない。
> あと、細かい点ですが bash に限っては以下の点が異なりますね。
> (「logout」が使えないので。)
> ・ignoreeof の振舞いが異なる。
bash にはログアウト機能がないのですか?
ちなみに、exit と logout の差異は、.logout を処理するか否かのみ、と考えてよ
いで
しょうか?
SIGHUP を送るか送らないか、といった差異もあるのでしょうか?
> >Lisp のインタープリタ等あるかと思いますが、そういったものもシェルとして使
用
> >可
> >能なのでしょうか?
>
> そう言えば TAO/ELIS が Lisp interpritor を login shell(?)
> に使ってましたね。UNIX じゃなくて Lisp マシンなので当たり前
> ですけど。
余談かつ蛇足で申し訳ないのですが、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