generated at
shell周りの用語の分類
UNIX環境では、OSのユーザーインターフェースを担当する部分のこと
シェルはいくつか種類がありユーザーが切り替えて使うことができる
対話的環境で使う
入力補完や入力履歴はシェルの役割
ユーザーがログインしたとき実行されるシェルはログインシェルlogin shell)という
ユーザー独自の設定が可能(aliasとか、環境変数とか)
ログインしたとき設定ファイルを読み込む
シェルスクリプト実行時は、この設定ファイルを読み込まないので注意が必要
バッチ的に使う
例えば、夜間に行われる各種の保守作業など
システムに負担をかけないため、シェルスクリプトには多機能のシェルは使わないことが多い
デメリットをわかっていたら、べつに多機能のシェルでスクリプトを書いて使ってもかまわない
スクリプトを書くのに必要最小限なシェルを使うことが多い
互換性のため
セキュリティリスクを減らすため
本当かな?inajob
セキュリティリスクの種類に寄りそうだが、シェルスクリプトで書かれたプログラムに堅牢さは期待しないなぁ
便利な機能は悪用されるとセキュリティホールになり得るので、あえて低性能のシェルを使っているとのことですsuto3

↑の説明少し変ではないかい suto3
shell scriptを書くときに使う言語をshell scriptと呼ぶと勘違いしてましたtakker
とすると、「shell scriptを書くときに使う言語」はなんと呼ぶのだろう?

元々はコンピュータ本体の操作卓のこと
今はターミナルで、ほとんど全ての操作ができるので、ターミナルとほぼ同じ意味である

そういう機械を売っていた(実物は見たことがない)
VT100 とか
一台のコンピュータ(ホスト)に複数のターミナルがつながっていた(らしい)

例:xterm, kterm, fbterm, コマンドプロンプト, ConEmu, Hyper, TeraTerm, Windows Terminal, vimのterminal mode, vscodeのterminal tab
ターミナルをエミュレートする(真似をする)ソフトウェア
例えば、VT100という設定をするとVT100という端末装置のふりをしてサーバーと通信をする

例:tmux
ターミナルエミュレータと違いがあるのか?takker
マルチプレクサだから多重化するものという意味 suto3
ということは、Windows TerminalConEmuterminal multiplexertakker
複数の「cmd.exeやPowerShell.exeのようなshell scriptを実行するアプリケーション」を起動できる
ターミナルで動く、ターミナルを多重化するソフトウェアのことかな?inajob
そうすれば上の疑問は解消しそう
例:vscode, vim, emacs, メモ帳

これらに入力する言語をシェルスクリプトと呼ぶ違ったっぽい
インタラクティブシェルシェルスクリプトの名前が同じなものがほとんど
インタラクティブ(対話的)に使うシェル

こうしたほうがわかりやすくない?suto3
インタラクティブシェル(対話的に使う)
シェルスクリプト(バッチ的に使う)
そういう意味だったのかtakker
勘違いしてました
直しました
定義を見たことがないなinajob
何か違和感があるが、良い書き方を提案できるほど知らない
この定義を知らなくて困ることがないのでそこまで厳密さが気にならない

/suto3/シェルまわりを読むとわかりそうtakker