-
Notifications
You must be signed in to change notification settings - Fork 0
MS_Shell
-
TOP > インフラストラクチャ > Windows > Windows OSの基礎的トピック
- シェル
- CMD
- PowerShell
- Windows Terminal
- Azureのシェル(
MS_AzureShell.md) - スクリプティング(
MS_Scripting.md)
シェルとは対話型でOSをControl可能なUIのことである。
インタラクティブ・シェルのUIには、CUI型のものとGUI型のものがある。
- OSと人間のUIがCUI = CUIシェル
- Windowsでは、
- OSと人間のUIがGUI = GUIシェル
- Windowsでは、
- Windows shell(
MS_WindowsShell.md) - Windows Explorer(
MS_WindowsExplorer.md)
- Windows shell(
- シェルのプログラミング言語をシェル・スクリプト
- シェル・スクリプトによるプログラミングをシェル・スクリプティング
と呼ぶ。
シェルで使用される言語には以下の様なタイプがある。
- テキストベースのシェル言語
- オブジェクトベースのシェル言語
※ リダイレクションとパイプがテキストか?オブジェクトか?(→ 詳細)
シェル言語やスクリプト言語を使用した、シェル向けのスクリプティング。
- CMD や PowerShell は、インタラクティブ・シェルとシェル・スクリプティングの機能も持つ。
- 一方で、WSH(
MS_WSH.md)(の標準言語である VBS(MS_VBS.md))などは、スクリプティングの機能しか持たない。
- インタラクティブ・シェル — 対話的に実行可能
- シェル・スクリプト — スクリプト化して対話的にバッチ実行。
現代の Microsoft Windows はシェルとして Windows shell を使用している。
CUIシェルには、以下のものがある。
-
シェル - Wikipedia > テキストベースのシェル
- 4DOS — DOS、OS/2、Windows NT 用のシェル。
- cmd.exe — OS/2、Windows CE、Windows NTのシェル。
- PowerShell — cmd.exeの後継のオブジェクト指向型シェル
移行メモ(誤記): 原文の「4DOSMS」は、 Wikipedia の当該項目に照らして「4DOS」の誤記と解して整えた。
- テキストベースのシェル言語、オブジェクトベースのシェル言語がある。
- 変数に文字列
"*.exe"を代入して、
変数に入れた文字列(というか文字列しか入らない)を「使う」と、
あたかもコマンドを手打ちしたようにそのまま動いてしまう。 - CUIシェルの仕様は、プログラミング言語的には、違和感があるが、
これがCUIシェルの特性であると割り切ると理解しやすい。
-
CUIシェルを持たないスクリプト言語では、
- VBS:
WScript.Shellオブジェクト - .NET:
Processオブジェクト - Perl:
system関数か、exec関数 - Python:
subprocessモジュール
を使わないとEXE起動できない。
- VBS:
-
また、起動したEXEとは、標準入出力で明示的に通信する必要がある。
Notebook系(MS_AzureDatabricksNotebook.md)では、CUIシェルを持たないスクリプト言語(代表的なものはPython)でも、インタラクティブに実行可能。
Windowsの様に特別、名称は付与されていない
(ソフトウェアが複数存在したりしない)。
- シェルの外枠
- コンソール
- 昔のハードの延長上で使われる言葉
- 物理的なハードウェア直でホストを触るケース
- ターミナル
- TSS でネットワーク経由でホストを触るケース
- リモート・シェルの SSH(プロトコル)が代表的な手段
- コンソール
- B系
- Bash(Bourne-Again Shell)(
MS_Bash.md) - sh(Bourne Shell)
- ksh(Korn Shell)
- Bash(Bourne-Again Shell)(
- C系
- csh
- tcsh
Perl、Python などの単なるスクリプト言語をシェル用に使うケース
ターミナルとはシェルの外枠を意味する。
- Windowsには、UNIX / Linux と異なり、多くのCUI系のターミナルのソフトウェアがある。
- CMD
- PowerShell
- WSL(Windows Subsystem for Linux:
MS_WSL.md) - Windows Terminal
- 参考
※ Windows 11 では Windows Terminal が既定のターミナルになり、
cmd.exe / powershell.exe はその中のプロファイルとして動く。
ターミナル(外枠)とシェル(中身)の分離が Windows でも明確になった。
- エミュレータ機能部分がシェルの外枠となるケース。
- 「Linuxサブシステム」(特にWSLなど)が参考になる。(
MS_LinuxSubsystem.md)
リモート機能部分がシェルの外枠。
RDP(MS_RDP.md)、WinRM
※ 現在は OpenSSH サーバーが Windows の機能として同梱され、 PowerShell Remoting も SSH をトランスポートに使える。
- SSH(
MS_SSH.md)のソフトウェアである OpenSSH、Tera Term、KiTTY(PuTTY) - かつては、Telnetやrsh(remote shell)、rloginといった
プロトコル(ソフトウェア)も使用されていたらしい。
※ 其々のプロトコルやソフトウェアのスタックがどうなっているか?は未調査
(MS_AzureShell.md)
- Azure PowerShell(
MS_AzurePowerShell.md) - Azure Cloud Shell(
MS_AzureCloudShell.md) - Azure CLI(
MS_AzureCLI.md)
- Windowsスクリプティング環境比較:PowerShell vs WSH - @IT
- CMD
- PowerShell
- Windows Terminal
- Azureのシェル(
MS_AzureShell.md)
- Windows shell(
MS_WindowsShell.md) - Windows Explorer(
MS_WindowsExplorer.md) - 自作CUI(CLI)の話(
MS_BuildingYourOwnCLI.md)
-
再入門 体で覚えるLinuxの基本 - ITpro
- シェルの基本操作法(前編):シェルの役割と種類 / 使い方 / オンライン・マニュアル / リダイレクションとパイプ
- シェルの基本操作法(後編):エイリアスとヒストリ / 名前の補完とプロセスの実行 / シェル変数と環境変数 / 設定ファイル / プロンプト文字列
- シェル・スクリプト:シェル・スクリプトとは / プログラミング / 基本文法 / 引数 / 引数の高度な利用法
- システム管理に役立つコマンド:uname, hostname, uptime / ps, date, whoami, last
Tags: シェル, インフラストラクチャ, Windows
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。