[[Open棟梁Project>http://opentouryo.osscons.jp/]] - [[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]] -[[戻る>Windows OSの基礎的トピック]] --[[CMD]] --[[PowerShell]] --[[Windows Terminal]] --[[Azureのシェル]] * 目次 [#sdb05f6b] #contents *概要 [#e894f3c3] シェルとは対話型でOSをControl可能なUIのことである。 *詳細 [#y6cfa999] **インタラクティブ・シェルのUI [#jd4325a8] インタラクティブ・シェルのUIには、~ CUI型のものとGUI型のものがある。 ***CUI [#zc4dadea] -OSと人間のUIがCUI = CUIシェル -Windowsでは、 --[[CMD>#q601ab70]] --[[PowerShell>#i25604bd]] --[[Windows Terminal>#n418ff33]] ***GUI [#dc054249] -OSと人間のUIがGUI = GUIシェル -Windowsでは、 --[[Windows shell]] --[[Windows Explorer]] **シェル・スクリプト [#mcfc0a41] -シェルのプログラミング言語をシェル・スクリプト -シェル・スクリプトによるプログラミングをシェル・[[スクリプティング]] と呼ぶ。 ***シェル言語のタイプ [#s6b0795d] シェルで使用される言語には以下の様なタイプがある。 -テキストベースのシェル言語 -オブジェクトベースのシェル言語 ※ リダイレクションとパイプがテキストか?オブジェクトか?(→[[詳細>#m31b9845]] ***シェル・[[スクリプティング]]とは? [#tf0eb368] シェル言語やスクリプト言語を使用した、シェル向けの[[スクリプティング]]。 -[[CMD>#q601ab70]]や[[PowerShell>#i25604bd]]は、~ [[インタラクティブ・シェル>#jd4325a8]]とシェル・[[スクリプティング]]の機能も持つ。 -一方で、[[WSH]](の標準言語である[[VBS]])などは、[[スクリプティング]]の機能しか持たない。 **インタラクティブ・シェルとシェル・スクリプトの違い [#sff26232] ***インタラクティブ・シェル [#cdb9fd3e] 対話的に実行可能 ***シェル・スクリプト [#f7e5a59a] スクリプト化して対話的にバッチ実行。 *Windowsシェル [#cf4a832e] **インタラクティブ・シェルのUI [#ad9d45ac] ***GUIシェル [#q276082e] 現代の Microsoft Windows はシェルとして[[Windows shell]] を使用している。 ***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のシェル。 --[[PowerShell>#i25604bd]]~ cmd.exeの後継のオブジェクト指向型シェル **シェル・スクリプト [#ua19656e] ***CUIシェルを持つスクリプト言語 [#m31b9845] -テキストベースのシェル言語、オブジェクトベースのシェル言語がある。 --テキストベース:[[BAT]] --オブジェクトベース:[[PowerShell>#i25604bd]] -変数に文字列:"*.exe" を代入して、~ 変数に入れた文字列(というか文字列しか入らない)を「使う」と、~ あたかもコマンドを手打ちしたようにそのまま動いてしまう。 -CUIシェルの仕様は、プログラミング言語的には、違和感があるが、~ これがCUIシェルの特性であると割り切ると理解しやすい。 ***CUIシェルを持たないスクリプト言語 [#obc96349] -CUIシェルを持たないスクリプト言語では、 --[[VBS]]:WScript.Shellオブジェクト --.NET:Processオブジェクト --Perl:system関数か、exec関数 --[[Python>Visual Studio Code#red23b04]]:subprocessモジュール >を使わないとEXE起動できない。 -また、起動したEXEとは、標準入出力で明示的に通信する必要がある。 **[[Notebook系>Azure DatabricksのNotebook#p84bd61d]]はインタラクティブ [#cdc7b520] [[Notebook系>Azure DatabricksのNotebook#p84bd61d]]では、CUIシェルを持たないスクリプト言語(代表的なものはPython)でも、インタラクティブに実行可能。 *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]]