[[Open棟梁Project>http://opentouryo.osscons.jp/]] - [[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]

-[[戻る>Windows]]
-[[戻る>Windows OSの基礎的トピック]]

* 目次 [#sdb05f6b]
#contents

*概要 [#e894f3c3]
シェルとは対話型でOSをControl可能なUIのことである。

**UIのタイプ [#jd4325a8]
UIには、CUI型のものとGUI型のものがある。
*詳細 [#y6cfa999]

**インタラクティブ・シェルのUI [#jd4325a8]
インタラクティブ・シェルのUIには、~
CUI型のものとGUI型のものがある。

***CUI [#zc4dadea]
-OSと人間のUIがCUI = CUIシェル

-Windowsでは、
--[[CMD]]
--PowerShell
--[[CMD>#q601ab70]]
--[[PowerShell>#i25604bd]]
--[[Windows Terminal>#n418ff33]]

***GUI [#dc054249]
-OSと人間のUIがGUI = GUIシェル

-Windowsでは、
--Windows shell
--Windows Explorer 
--[[Windows shell]]
--[[Windows Explorer]]

**シェルスクリプト [#mcfc0a41]
***タイプ [#s6b0795d]
**シェル・スクリプト [#mcfc0a41]
-シェルのプログラミング言語をシェル・スクリプト
-シェル・スクリプトによるプログラミングをシェル・[[スクリプティング]]

と呼ぶ。

***シェル言語のタイプ [#s6b0795d]
シェルで使用される言語には以下の様なタイプがある。

-テキストベースのシェル言語

-オブジェクトベースのシェル言語

※ リダイレクションとパイプがテキストか?オブジェクトか?
※ リダイレクションとパイプがテキストか?オブジェクトか?(→[[詳細>#m31b9845]]

***シェルとスクリプトの違い [#sff26232]
-シェル
--対話的に実行可能
--スクリプト化して対話的にバッチ実行可能。
***シェル・[[スクリプティング]]とは? [#tf0eb368]
シェル言語やスクリプト言語を使用した、シェル向けの[[スクリプティング]]。

-スクリプト~
バッチ実行のみ可能。
-[[CMD>#q601ab70]]や[[PowerShell>#i25604bd]]は、~
[[インタラクティブ・シェル>#jd4325a8]]とシェル・[[スクリプティング]]の機能も持つ。

***[[スクリプティング]] [#tf0eb368]
シェル言語やスクリプト言語を使用してバッチ処理を作成する的な作業。
-一方で、[[WSH]](の標準言語である[[VBS]])などは、[[スクリプティング]]の機能しか持たない。

**インタラクティブ・シェルとシェル・スクリプトの違い [#sff26232]

***インタラクティブ・シェル [#cdb9fd3e]
対話的に実行可能

***シェル・スクリプト [#f7e5a59a]
スクリプト化して対話的にバッチ実行。

*Windowsシェル [#cf4a832e]
**UIのタイプ [#ad9d45ac]

**インタラクティブ・シェルのUI [#ad9d45ac]

***GUIシェル [#q276082e]
現代の Microsoft Windows はシェルとして~
Windows shell を使用しており、その代表として Windows Explorer がある。~
現代の Microsoft Windows はシェルとして[[Windows shell]] を使用している。

Windows shell は、デスクトップ環境、スタートメニュー、タスクバーを含めた全体を意味し、~
Windows Explorer はファイル管理機能にアクセスするグラフィカルユーザインタフェースである。

***CUIシェル [#e202f383]
CUIシェルには、以下のものがある。

-シェル - Wikipedia > テキストベースのシェル~
http://ja.wikipedia.org/wiki/%E3%82%B7%E3%82%A7%E3%83%AB#.E3.83.86.E3.82.AD.E3.82.B9.E3.83.88.E3.83.99.E3.83.BC.E3.82.B9.E3.81.AE.E3.82.B7.E3.82.A7.E3.83.AB
--4DOSMS~
DOS、OS/2、Windows NT 用のシェル。
--cmd.exe~
OS/2、Windows CE、Windows NTのシェル。
--Windows PowerShell~
--[[PowerShell>#i25604bd]]~
cmd.exeの後継のオブジェクト指向型シェル

**シェルスクリプト [#ua19656e]
**シェル・スクリプト [#ua19656e]

***CUIシェルを持つスクリプト言語 [#m31b9845]
--テキストベースのシェル言語、オブジェクトベースのシェル言語がある。
-テキストベースのシェル言語、オブジェクトベースのシェル言語がある。
--テキストベース:[[BAT]]
--オブジェクトベース:[[PowerShell>#i25604bd]]

-変数に文字列:"*.exe" を代入して、~
変数に入れた文字列(というか文字列しか入らない)を「使う」と、~
あたかもコマンドを手打ちしたようにそのまま動いてしまう。

-CUIシェルの仕様は、プログラミング言語的には、~
違和感があるが、これがCUIシェルの特性であると割り切ると理解しやすい。
-CUIシェルの仕様は、プログラミング言語的には、違和感があるが、~
これがCUIシェルの特性であると割り切ると理解しやすい。

***CUIシェルを持スクリプト言語 [#obc96349]
プログラミング言語のシェルでは、
***CUIシェルを持たないスクリプト言語 [#obc96349]
-CUIシェルを持たないスクリプト言語では、

-[[VBS]]:WScript.Shellオブジェクト
-.NET:Processオブジェクト
-Perl:system関数か、exec関数
-Python:subprocessモジュール
--[[VBS]]:WScript.Shellオブジェクト
--.NET:Processオブジェクト
--Perl:system関数か、exec関数
--[[Python>Visual Studio Code#red23b04]]:subprocessモジュール

を使わないとEXE起動できない。
>を使わないとEXE起動できない。

また、起動したEXEとは、標準入出力で明示的に通信する必要がある。
-また、起動したEXEとは、標準入出力で明示的に通信する必要がある。

*Windows以外のシェル [#b3fc9ad7]
**[[Bash]] [#db34815d]
**[[SSH]] [#nf70d6ec]
-[[Python>Visual Studio Code#red23b04]]&[[Notebook>Azure DatabricksのNotebook#p84bd61d]]では、[[Notebook>Azure DatabricksのNotebook#p84bd61d]]がインタラクティブなので、~
CUIシェルを持たないスクリプト言語でも、インタラクティブに実行可能。

*[[Azureのシェル]] [#yf839a72]
**[[Azure PowerShell]] [#ybc84305]
**[[Azure Cloud Shell]] [#e01d8858]
**[[Azure CLI]] [#z12c6f70]
*UNIX / Linuxのシェル [#b3fc9ad7]

**インタラクティブ・シェルのUI [#mc2b6a95]

***GUIシェル [#q697f01b]
[[Linuxのデスクトップ環境>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Linux%E3%81%AE%E3%83%87%E3%82%B9%E3%82%AF%E3%83%88%E3%83%83%E3%83%97%E7%92%B0%E5%A2%83]]

***CUIシェル [#nc3a45b6]
Windowsの様に特別、名称は付与されていない~
(ソフトウェアが複数存在したりしない)。

-[[シェル]]の外枠

--コンソール
---昔のハードの延長上で使われる言葉
---物理的なハードウェア直でホストを触るケース

--ターミナル
---TSS⁠でネットワーク経由でホストを触るケース
---リモート・シェルの[[SSH>#nf70d6ec]](プロトコル)が代表的な手段

**シェル・スクリプト [#w1e35128]

***CUIシェルを持つスクリプト言語 [#r40d2638]
-B系
--[[Bash]](Bourne-Again Shell)
--sh(Bourne Shell)
--ksh(Korn Shell)

-C系
--csh
--tcsh

***CUIシェルを持たないスクリプト言語 [#r70fe254]
Perl、[[Python>Visual Studio Code#red23b04]]などの単なるスクリプト言語をシェル用に使うケース

*その他、様々なシェル [#w594b422]

**ターミナル・アプリ [#mfd684c2]
ターミナルとは[[シェル]]の外枠を意味する。

***Windowsのターミナル [#c13d7865]
-Windowsには、[[UNIX / Linux>#nc3a45b6]]と異なり、~
多くのCUI系のターミナルのソフトウェアがある。
--[[CMD]]
--[[PowerShell]]
--[[WSL>Windows Subsystem for Linux]]
--[[Windows Terminal]]

-参考
--Windowsで使えるターミナルとシェルのまとめ - Qiita~
https://qiita.com/Ted-HM/items/9a60f6fcf74bbd79a904

***エミュレータ・シェルの類 [#sf0f437a]
-エミュレータ機能部分が[[シェル]]の外枠となるケース。
-「[[Linuxサブシステム]]」(特にWSLなど)が参考になる。

***[[リモート・シェル>#zdfde8b9]]の類 [#a6d3b364]
リモート機能部分が[[シェル]]の外枠。

**リモート・シェル [#zdfde8b9]

***Windows [#k83db5f4]
[[RDP]]、WinRM

***Linux [#nf70d6ec]
-[[SSH]]のソフトウェアである[[OpenSSH>SSH#gb195be7]]、Tera Term、KiTTY(PuTTY)

-かつては、Telnetやrsh(remote shell)、rloginといった~
プロトコル(ソフトウェア)も使用されていたらしい。

※ 其々のプロトコルやソフトウェアのスタックがどうなっているか?は未調査

**[[Azureのシェル]] [#yf839a72]

***[[Azure PowerShell]] [#ybc84305]

***[[Azure Cloud Shell]] [#e01d8858]

***[[Azure CLI]] [#z12c6f70]

*参考 [#p4066126]
-Windowsスクリプティング環境比較:PowerShell vs WSH(1/4) - @IT
--1.PowerShellのインストールと動作確認~
http://www.atmarkit.co.jp/fwin2k/operation/pshvswsh/pshvswsh_01.html
--2.アプリケーションとしての比較~
http://www.atmarkit.co.jp/fwin2k/operation/pshvswsh/pshvswsh_02.html
--3.スクリプト機能の比較(1)~
http://www.atmarkit.co.jp/fwin2k/operation/pshvswsh/pshvswsh_03.html
--4.スクリプト機能の比較(2)~
http://www.atmarkit.co.jp/fwin2k/operation/pshvswsh/pshvswsh_04.html

**UI (CUI) [#f8900168]
***[[CMD]] [#q601ab70]
***[[PowerShell]] [#i25604bd]
***[[Windows Terminal]] [#n418ff33]
***[[Azureのシェル]] [#k4947194]

**UI (GUI) [#k4c102ca]
***[[Windows shell]] [#f775ffdd]
***[[Windows Explorer]] [#z2278d5a]
***[[自作CUI(CLI)の話]] [#y632fad4]

**体で覚えるLinuxの基本 [#k76e87d6]
-再入門 体で覚えるLinuxの基本 - 再入門 体で覚えるLinuxの基本:ITpro~
http://itpro.nikkeibp.co.jp/article/COLUMN/20060301/231446/

***シェルの基本操作法前編 [#d2651d9e]
+シェルの役割と種類
+シェルの使い方
+オンライン・マニュアルの使い方
+リダイレクションとパイプ

***シェルの基本操作法後編 [#ka48697f]
+エイリアスやヒストリの使い方
+名前の補完とプロセスの実行
+シェル変数と環境変数
+シェルの設定ファイル
+シェルのプロンプト文字列

***シェル・スクリプト [#l3942116]
+シェル・スクリプトとは
+スクリプトのプログラミング
+シェルの基本文法
+スクリプトの引数
+引数の高度な利用法

***システム管理に役立つコマンド [#yd5de934]
+uname,hostname,uptime
+ps,date,whoami,last

----
Tags: [[:シェル]], [[:インフラストラクチャ]], [[:Windows]]


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS