[解決済み] ログイン・シェルとインタラクティブ・シェルの違いは何ですか?[クローズド]
質問
とは何ですか?
login shell
と
interactive shell
とは何か、そして
.bash_profile
と
.bashrc
?
どのように解決するのですか?
<ブロッククオート対話型シェルとは、非オプション引数を指定せずに起動するシェルのことです。 s が指定されない限り、-c オプションを指定せずに起動され、入力とエラー出力が共にターミナルに接続されたシェルです。 入力とエラー出力が共にターミナルに接続されている (isatty(3) で決定される) シェル、または isatty(3) によって決定される) 、または -i オプションで起動されたものである。
対話型シェルは、一般に、ユーザーの ターミナルに書き込みます。
[ gnu bash マニュアル ]
A
ログインシェル
は、ログインするためのシェルです。 ログインシェルは
ps -f
のリストにあるログインシェルは、例えばプログラム名の最初にハイフンが付いています。
root 3561 3553 0 09:38 pts/0 00:00:00 -bash
qa 7327 3432 0 10:46 pts/1 00:00:00 -bash
アン 対話型シェル は、標準入力 (通常はターミナル) からコマンドを読み込むものです。
例えば、xterm やターミナルエミュレータを使って bash にログインする場合、以下のようになります。
putty
のような xterm や端末エミュレータを使って bash にログインすると、そのセッションはログインシェルであると同時に対話型シェルにもなります。 もし、あなたが
bash
と入力すると、対話型シェルになりますが、これはログインシェルではありません。
シェルスクリプト (シェルコマンドを含むファイル) を実行した場合は、ログインシェルでも対話型シェルでもありません。
起動ファイル はbashで高度に調整可能です。
ログインしたbashシェルが起動されたときに
/etc/profile
がソースされます(現在の環境で実行されます)。 その後、3つのファイルが存在するかチェックされます。 これらのファイルのチェックは、この順番で行われます。
もし
/etc/profile
が存在する場合、それをソース(実行)する
もし
~/.bash_profile
が存在する場合、それをソース(実行)する
もし
~/.bash_login
が存在する場合、それをソース(実行)する
もし
~/.profile
が存在する場合、それをソース(実行)する
一致するファイルが見つかれば、他のファイルが存在しても無視されます。また
/etc/bashrc
ファイルの両方が使用されるかもしれません。
~/.bash_profile
と
~/.bashrc
というファイルを作成します。 ということになります。
/etc/bashrc
ファイルは、ログインシェルであろうと非ログインシェルであろうと、bash のすべての対話的な呼び出しでソースされます。
ですから
.bashrc
ファイルを要求するたびに、新しい
対話型シェル
. これにはシェルスクリプトは含まれません。 通常、変数やエイリアス、関数などはこのファイルに置かれます。
Bash シェル スクリプトは、適切な指示があれば別のファイルを読み込みます。 もし、ユーザーが (通常、自分自身の
.bash_profile
で) 変数
BASH_ENV
という変数があり、これにファイル名を指定すると、 スクリプトがこれを読み込むようになります。 この変数が設定されていない(そしてエクスポートされている)場合、bash スクリプトはいかなるスタートアップ ファイルも読みません。
関連
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] シェルで、「2>&1」はどういう意味ですか?
-
[解決済み] Bashで文字列をデリミターで分割するには?
-
[解決済み] LinuxのシェルスクリプトでYes/No/Cancelの入力を促すにはどうしたらいいですか?
-
[解決済み] Git上でシェルコマンドを実行する際に使用するSSH-keyの秘密鍵を指定する方法は?
-
[解決済み] シェルコマンドの実行と出力のキャプチャ
-
[解決済み] コマンドラインから .bash_profile を再読み込みする方法は?
-
[解決済み] シェルコマンドを実行しながらエコーする方法
-
[解決済み] bashのループリストで空白をエスケープするには?
-
[解決済み] bash スクリプトで ENTER キー押下をシミュレートする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] bashでWebサーバーの応答を待つループを作成するには?
-
[解決済み] 実行中のBASHスクリプトのパスを決定する [重複].
-
[解決済み] find "の結果をカウントするのに最適な方法は何ですか?
-
[解決済み] bash で文字列をエスケープするコマンド
-
[解決済み] Bashの履歴にコマンドを表示させないようにするには?
-
[解決済み] ログファイルやコンソールへの出力の書き出し
-
[解決済み] Bashでコマンドライン引数を変更するには?
-
[解決済み] 変数を展開するheredocを回避する方法は?重複
-
[解決済み] Bashでテーブルの列を揃えるにはどうしたらいいですか?
-
[解決済み] Bashを使用してJARからMANIFEST.MFファイルを読み込む方法