Windowsにおけるターミナルやインタラクティブシェルの関係
まとめをshell周りの用語の分類に書くtakker.icon
このページは「ターミナルやインタラクティブシェルの関係を調べる」みたいな名前にrenameしたい
from 2023/03/12
一般名の下に具体例を並べてみる
コロンの後ろに仮名をつけておく
名前が確定したら置き換える
ラベル足らなかったら足してくださいtakker.icon
shell: A
fish
bash
zsh
PowerShell
ここであってる?takker.icon
MS-DOS
ここじゃない気がするtakker.icon
コマンドプロンプトかな suto3.icon
DOSプロンプトは昔の名前(確か)
今は Windows Terminal という名前か
わからん: Bシェルスクリプト
shellを動かすときに使う各言語
もうすこし詳しく説明してください suto3.icon
シェルスクリプトのこと?
これだーtakker.icon
C言語からも、RubyやPythonからもshellを呼び出すことはできるけど、そういうことではないよね?
コマンドラインのこと?(これは言語ではない)
わからん: C
わからん、わかる!inajob.icon
どういうレイヤーになってるんだろう
多分これは「ターミナル」かな?
terminalってこれのことでいいのか……いいのか?takker.icon
Windows Terminal
ConEmu
Hyper
neovimのterminal mode
VS codeのterminal tab
もしかして: ターミナルエミュレータ ? suto3.icon
わからん: D
Dをterminalと呼んでいる……きがしなくもなくもなくもなくもないtakker.icon
上と同じ分類だとおもってた(全く自信がない)inajob.icon
cmd.exeで他のshellが動いてるのを見たことがないな
exeを呼び出せば動かせますtakker.icon
例:cmd.exeからwsl.exeからpowershell.exeからcmd.exeを動かしている様子
https://gyazo.com/6083eb46faa20258dddea5f9dca42541
へーinajob.icon
同じexeでGUIアプリの側面とCLIアプリの側面があるのだろうか・・?
例えばwindows terminal(hyperやcomemuも同様)だと、このようにいろいろなDを呼び出せるようになっていますtakker.icon
https://gyazo.com/c4873cd88b8d744a0672d431c46f79de
wsl.exe
cmd.exe
powershell.exe
editor
VS Code
vim
neovim
わからん: E
Git Bash
version manager
git
svn
処理環境?
windows
linux
linux on WSL2
linux on MSYS
linux on VMWare
mac
Github Codespaces
わからん
tmux
既存のシェルをたくさん開いたりするのを便利にするやつ基素.icon
おじさんはscreeninajob.icon
ターミナルマルチプレクサ(terminal multiplexer)
ターミナルを多重化するもの、という意味 suto3.icon
こことか見ておくと良さげ?Mijikko.icon
【初心者向け】シェル・ターミナル・コンソールの違いとは?
まとめがMECEじゃなかったのでちゃんと読んでまとめないとだめそう基素.icon
ターミナルはGUIでシェルを使えるようにしたもの
簡単にいうとGUIの上でCUIの操作をしたいときに使用するアプリケーションのことである。
これはターミナルエミュレータの説明だ suto3.icon
今はターミナルエミュレータのこともターミナルということが多いから間違いではない
違う。GUIでないターミナルもあるsuto3.icon
ますますわからない...基素.icon
コンピュータシステムの末端の入力装置と出力装置と考えたらいいかな?suto3.icon
シェルはOSに命令を伝えるもの
この場合は、OSのカーネルに命令を伝えるものと言ったほうが正確です suto3.icon
シェルはOS(オペレーティングシステム)の一部です
つまり普段の暗い画面はターミナルで、コマンドを実行するとターミナル→シェル→OSと命令が渡されて処理される?
suto3.icon
入力した文字をコンピュータに送るのがターミナル
送られてきた文送字列を編集してコマンドの形に編集するのがシェル
「TAB」が押されたら入力補完をするとかそういう処理
シェルを通してコマンドが起動し、コマンドを通してOSのカーネルに命令が実行される
コンソールとターミナルの違いはない?
Linuxに限らずだが、現時点で「コンソール」というと一般的に黒い画面でコマンド入力を受け付ける画面を指すことが多い。
コンソールはコンピュータ本体に付属するもの、ターミナルはネットワーク経由でつなぐこともできる
ターミナルはコンピュータ本体につなぐこともできる。この場合はコンソールと大差がない
https://gihyo.jp/book/pickup/2010/0013
ノイマン型コンピュータが作られだした1950~1960年代,コンピュータといえば部屋を埋め尽くす巨大な鉄のかたまりでした。当然直接いじるには手に余りますので,操作しやすいように専用の操作卓が用意されました。それが「コンソール」です
現在のパソコンではコンソールもコンピュータに内蔵されてしまいました
1960年代,1台の大型コンピュータを多人数で同時利用する「タイムシェアリングシステム(TSS⁠)⁠」という仕組みが作られます。TSSでは,コンピュータと多数のコンソールをシリアルケーブルで繋ぐことで,同時利用を実現しました。このとき,TSSを1つの通信ネットワークと捉え,各コンソールを“⁠ターミナル⁠”と呼ぶようになりました。
UNIXでは,カーネルと直接対話する装置をコンソールと呼び,外部ネットワークから接続する装置をターミナルと呼ぶようです。例えば,UNIXの起動時に表示される操作画面は「コンソール⁠」⁠,シリアルケーブルで直結する装置は「シリアルコンソール」と呼び,ネットワーク越しで接続する装置や,Xウィンドウシステム上で動く仮想端末は「ターミナル」と呼びます。
cmd.exe, Git Bash, Windows Terminal, wsl.exeの関係について教えて下さいinajob.icon
chatgpt.icon
cmd.exe、Git Bash、Windows Terminal、wsl.exeは、Windows上でのコマンドライン操作を行うために使用されるツールであり、それぞれ異なる役割を持っています。
cmd.exe: Windowsに標準で組み込まれているコマンドラインインターフェイスです。Windowsのコマンドライン操作を実行するために使用されます。
Git Bash: Gitをインストールすると同時にインストールされるUnixシェルであり、Linuxと同じように一般的なUnixコマンドを実行するためにも使用できます。Windows環境でUnixコマンドを実行するために使用されることがあります。
Windows Terminal: Windows上で複数のターミナルウィンドウを同時に開くことができるアプリケーションであり、cmd.exeやPowerShell、Git Bash、WSLなど、複数のターミナルエミュレータをサポートしています。
ターミナルエミュレータ=コマンドラインインターフェイス?takker.icon
wsl.exe: Windows上でWSLを制御するためのコマンドラインツールであり、WSLディストリビューションの起動や停止、パッケージの管理、ファイルの操作などができます。
コマンドラインツールもコマンドラインインターフェイスかな?takker.icon
これらのツールは、Windows上でのコマンドライン操作をより便利にするために、共同して使用されることがあります。たとえば、Windows Terminalを使用して、cmd.exeやPowerShell、Git Bash、WSLを同時に起動できます。また、Git BashやWSLを使用して、Windows上でLinuxベースの環境での開発作業を行うことができます。wsl.exeを使用して、WSLディストリビューションを管理し、WindowsとLinux間でファイルを共有することもできます。
なるほど、Windows Terminalがメタな概念のように見えるinajob.icon
C: メタななにか(これもターミナルと呼ぶ気がするが、メタ・ターミナル?)
Windows Temial
ConEmu
Hyper
DとE: その中で動くなにか(ターミナル)
Git Bash
cmd.exe
PowerShell
wsl.exe
A: それがLinux環境と似ている場合はLinuxのシェルがその中で動く
Bash
fish
zsh
まだわからない
PowerShell
Windowsコマンドプロンプト
いっぱいあって難しいな...基素.icon
Windows terminalがメタっぽいのはわかる(色々起動できるため)
これこそvim-jp案件かなあtakker.icon
ここでkuuote.iconさんに聞けたら楽なんだけど
完全に理解したinajob.icon
Windowsのターミナル
たすかるtakker.icon*2
これmermaid.jsなのでこっちにも貼りやすそうinajob.icon
コードコピーしようとおもったけど、ログインしないと記法がむき出しにならないみたいです?takker.icon
ですね、ページのソースを見たら見える気がしますinajob.icon
ここまでグチャッとなると静かな部屋でまとめたくなるね
ここまで関係する要素が洗い出せたのはグチャッとしたおかげ
インタラクティブシェル
タイトルにあるのになぜか説明がない suto3.icon