コマンドラインインターフェイス

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ

GNOMEターミナル3、Fedora15でのサンプルBashセッションのスクリーンショット
WindowsVistaで実行されているWindowsPowerShell1.0のスクリーンショット

コマンドラインインターフェイスCLIは、テキスト行の形式でコンピュータープログラムへのコマンドを処理します。インターフェイスを処理するプログラムは、コマンドラインインタプリタまたはコマンドラインプロセッサと呼ばれます。オペレーティングシステムは、オペレーティングシステムの機能またはサービスにインタラクティブにアクセスするためのコマンドラインインターフェイスをシェルに実装します。このようなアクセスは、主に1960年代半ばからコンピュータ端末によってユーザーに提供され、 VAX / VMSUnixシステム、およびDOSCP/Mを含むパーソナルコンピュータシステムで1970年代から1980年代にかけて使用され続けました。およびAppleDOS

今日、多くのユーザーは、グラフィカルユーザーインターフェイスとメニュー方式の対話に依存しています。ただし、一部のプログラミングおよびメンテナンスタスクには、グラフィカルユーザーインターフェイスがなく、コマンドラインを使用する場合があります。

コマンド行インターフェースの代替には、テキスト・ベースのユーザー・インターフェース・ メニュー(例えば、IBM AIX SMIT)、キーボード・ショートカット、およびポインターを中心としたさまざまなデスクトップ・メタファー(通常はマウスで制御)が含まれます。この例には、Microsoft Windows、DOS Shell、およびMouseSystemsPowerPanelが含まれます。コマンドラインインターフェイスは、多くの場合、カーソルアドレス指定を使用して表示画面にシンボルを配置する画面指向のテキストベースのユーザーインターフェイスも可能な端末デバイスに実装されます。

コマンドラインインターフェイスを備えたプログラムは、通常、スクリプトを使用して自動化する方が簡単です。

多くのソフトウェアシステムは、制御と操作のためのコマンドラインインターフェイスを実装しています。これには、プログラミング環境とユーティリティプログラムが含まれます。

グラフィカルユーザーインターフェイスとの比較

アイコンとウィンドウを備えたグラフィカルユーザーインターフェイス(GEM 1.1デスクトップ

グラフィカルユーザーインターフェイスと比較して、コマンドラインインターフェイスは実装に必要なシステムリソースが少なくて済みます。コマンドのオプションは各コマンドラインで数文字で指定されているため、経験豊富なユーザーはオプションにアクセスしやすいと感じることがよくあります。反復タスクの自動化は、頻繁に使用されるシーケンスを保存するための行編集と履歴メカニズムによって簡素化されます。これは、パラメータと変数オプションをとることができるスクリプト言語にまで及ぶ可能性があります。コマンドラインの履歴を保持できるため、コマンドの確認や繰り返しが可能です。

コマンドラインシステムでは、ユーザーが参照できるように紙またはオンラインのマニュアルが必要になる場合がありますが、多くの場合、「ヘルプ」オプションを使用すると、コマンドのオプションを簡潔に確認できます。コマンドライン環境では、GUIにあるさまざまなフォントや拡張編集ウィンドウなどのグラフィカルな拡張機能が提供されない場合があります。マニュアルを繰り返し参照しないと、グラフィカルユーザーインターフェイス のアイコンドロップダウンメニューと比較して、新しいユーザーが使用可能なすべてのコマンドとオプションに慣れるのは難しい場合があります。

タイプ

オペレーティングシステムのコマンドラインインターフェイス

A /UX3.0.1でのAppleComputerのCommandShell

オペレーティングシステム(OS)のコマンドラインインターフェイスは、通常、オペレーティングシステムに付属している個別のプログラムです。このようなテキストインターフェイスを実装するプログラムは、コマンドラインインタプリタ、コマンドプロセッサ、またはシェルと呼ばれることがよくあります。

コマンドラインインタープリターの例には、 OpenVMSおよびRSX-11のDECの DIGITALコマンド言語(DCL)、さまざまなUnixシェルshkshcshtcshzshBashなど)、CP / MCCPDOSが含まれます。 ' COMMAND.COM、およびOS /2およびWindowsCMD.EXEプログラム。後者のグループは、DECのRSX-11およびRSTSに大きく依存しています。CLI。ほとんどのオペレーティングシステムでは、デフォルトのシェルプログラムを代替プログラムに置き換えることができます。例には、DOS用の4DOS、OS / 2用の4OS2、およびWindows用の4NT /TakeCommandが含まれます。

「シェル」という用語は、コマンドラインインタプリタを説明するためによく使用されますが、厳密に言えば、「シェル」は、完全にグラフィカルなものを含め、ユーザーインターフェイスを構成する任意のプログラムです。たとえば、デフォルトのWindows GUIは、WIN.INI構成ファイルのSHELL = EXPLORER.EXE行で定義されている、EXPLORER.EXEという名前のシェルプログラムです。これらのプログラムはシェルですが、CLIではありません。

アプリケーションのコマンドラインインターフェイス

コマンドラインインターフェイスを備えたGNUOctaveのGUI

(オペレーティングシステムではなく)アプリケーションプログラムにもコマンドラインインターフェイスがある場合があります。

アプリケーションプログラムは、次の3つの主要なタイプのコマンドラインインターフェイスメカニズムをサポートしないか、いずれか、またはすべてサポートする場合があります。

  • パラメータ:ほとんどのオペレーティングシステムは、プログラムの起動時に追加情報をプログラムに渡す手段をサポートしています。プログラムがOSコマンドラインシェルから起動されると、プログラム名とともに提供される追加のテキストが起動されたプログラムに渡されます。
  • インタラクティブなコマンドラインセッション:起動後、プログラムは、テキスト形式でコマンドを入力するための独立した手段をオペレーターに提供する場合があります。
  • プロセス間通信:ほとんどのオペレーティングシステムは、プロセス間通信の手段(たとえば、標準ストリームまたは名前付きパイプ)をサポートしています。クライアントプロセスからのコマンドラインは、これらの方法のいずれかによってCLIプログラムにリダイレクトされる場合があります。

一部のアプリケーションはCLIのみをサポートし、CLIプロンプトをユーザーに表示し、入力時にコマンドラインを操作します。他のプログラムは、CLIとGUIの両方をサポートしています。場合によっては、GUIは別のCLI実行可能ファイルの単なるラッパーです。その他の場合、プログラムはGUIのオプションの代替としてCLIを提供する場合があります。CLIとGUIは、多くの場合、さまざまな機能をサポートしています。たとえば数値解析コンピュータープログラムであるMATLABのすべての機能は、CLIを介して利用できますが、MATLABGUIは機能のサブセットのみを公開します。

最初の3つのKing'sQuestゲーム(1984〜1986)などの初期のSierraゲームでは、内部コマンドラインからのコマンドを使用して、グラフィックウィンドウ内でキャラクターを移動していました。

歴史

コマンドラインインターフェイスは、テレプリンター(TTY)マシンを介して人間がかつて行っていたダイアログの形式から発展しました。このダイアログでは、人間のオペレーターが、通常は一度に1行のテキストで情報をリモートで交換していました。初期のコンピュータシステムは、人間のオペレータとの対話手段としてテレプリンタマシンを使用することがよくありました。コンピューターは、人間から人間へのテレプリンターモデルの一端になりました。したがって、人間がテレプリンターを介して別の人間と通信する代わりに、人間はコンピューターと通信しました。

機械式テレプリンターは、テレプリンターをエミュレートするキーボードと画面である「ガラス製のtty」に置き換えられました。「スマート」端末では、画面全体でのカーソルの移動や、端末上のデータをローカルで編集してコンピュータに送信するなどの追加機能を使用できました。マイクロコンピューター革命が従来のミニコンピューター+端末のタイムシェアリングアーキテクチャに取って代わったため、ハードウェア端末は端末エミュレーターに置き換えられました。これ は、PCのシリアルポートを介して送信される端末信号を解釈するPCソフトウェアです。これらは通常、組織の新しいPCを既存のミニまたはメインフレームコンピューターとインターフェイスするため、またはPCをPCに接続するために使用されていました。これらのPCのいくつかは、掲示板システムソフトウェアを実行していました。

初期のオペレーティングシステムCLIは、常駐モニタープログラムの一部として実装されており、簡単に置き換えることはできませんでした。交換可能なコンポーネントとしてのシェルの最初の実装は、Multics タイムシェアリング オペレーティングシステムの一部でした。[1] 1964年、MIT ComputationCenterのスタッフであるLouisPouzinは、引数の置換を許可しながらコマンドスクリプトを実行するためのRUNCOMツールを開発しました。[2] Pouzinは、プログラミング言語のようなコマンドを使用する手法を説明するために「シェル」という用語を作り出し、 Multicsオペレーティングシステムでそのアイデアを実装する方法についての論文を書きました。[3]プーザンは1965年に母国のフランスに戻り、最初のMulticsシェルはGlendaSchroederによって開発されました。[2]

最初のUnixシェルであるV6シェルは、1971年にベル研究所でKen Thompsonによって開発され、SchroederのMulticsシェルをモデルにしています。[4] [5] Bourneシェルは、V6シェルの代わりとして1977年に導入されましたインタラクティブなコマンドインタープリターとして使用されますが、スクリプト言語としても使用され、構造化プログラムを作成するために一般的に考えられている機能のほとんどが含まれています。Bourneシェルは、 KornShell(ksh)、Almquistシェル(ash)、および人気のあるBourne-againシェル(またはBash)の開発につながりました。[5]

初期のマイクロコンピュータ自体は、 CP / MDOSAppleSoftBASICなどのコマンドラインインターフェイスに基づいていました1980年代から1990年代にかけて、 PCでのAppleMacintoshMicrosoftWindowsの導入により、コマンドラインインターフェイスが主要なユーザーインターフェイスとしてグラフィカルユーザーインターフェイスに置き換えられましたコマンドラインは、代替ユーザーインターフェイスとして引き続き使用でき、システム管理者やその他の上級ユーザーがシステム管理、コンピュータープログラミング、およびバッチ処理に使用することがよくあります。

2006年11月、MicrosoftはWindows PowerShellのバージョン1.0 (以前のコード名はMonad)をリリースしました。これは、従来のUnixシェルの機能と独自のオブジェクト指向の.NETFrameworkを組み合わせたものですMinGWCygwin、UnixライクなCLIを提供するWindows用のオープンソースパッケージです。Microsoftは、 Services for UNIXアドオン を通じて、Windows用のMKSInc .ksh実装MKSKornシェルを提供しています。

2001年以来、MacintoshオペレーティングシステムmacOSは、 Darwinと呼ばれるUnixライクなオペレーティングシステムに基づいています。これらのコンピューターでは、ユーザーは、ApplicationsフォルダーのUtilitiesサブフォルダーにあるTerminalと呼ばれるターミナルエミュレータプログラムを実行するか、 sshを使用してマシンにリモートログインすることにより、Unixライクなコマンドラインインターフェイスにアクセスできます。ZシェルはmacOSのデフォルトシェルです。Bash、tcsh、およびKornShellも提供されます。macOS Catalina以前は、Bashがデフォルトでした。

使用法

CLIは、コマンドまたはクエリの大きな語彙を、幅広い(または任意の)オプションと組み合わせて、純粋なGUIよりもテキストとしてすばやく入力できる場合に使用されます。これは通常、オペレーティングシステムのコマンドシェルの場合です。CLIは、グラフィカルユーザーインターフェイスをサポートするためのリソースが不十分なシステムでも使用されます。一部のコンピューター言語システム(PythonForthLISPRexx、およびBASICの多くの方言など)は、コードの迅速な評価を可能にするインタラクティブなコマンドラインモードを提供します。

CLIは、プログラマーやシステム管理者、工学および科学環境、および技術的に高度なパーソナルコンピューターユーザーによってよく使用されます。CLIは、点字ディスプレイを使用してコマンドと応答を表示できるため、視覚障害を持つ人々にも人気があります

シェルCLIの構造

OSコマンドラインインターフェイス[6] [7]の一般的なパターンは次のとおりです。

プロンプトコマンドparam1param2param3…paramN
  • プロンプト—クライアントにコンテキストを提供するためにプログラムによって生成されます。
  • コマンド—クライアントによって提供されます。コマンドは通常、次の3つのクラスのいずれかです。
    1. 内部コマンドは、コマンドラインインタープリター自体によって認識および処理され、外部の実行可能ファイルに依存しません。
    2. 含まれているコマンドは、一般にオペレーティング環境の一部と見なされ、常にOSに含まれている個別の実行可能ファイルを実行します。
    3. 外部コマンドは、基本OSの一部ではないが、特定の目的やアプリケーションのために他の関係者によって追加された実行可能ファイルを実行します。
  • param1…paramN—クライアントによって提供されるオプションのパラメーター。パラメータの形式と意味は、発行されたコマンドによって異なります。インクルードコマンドまたは外部コマンドの場合、パラメーターの値は、OSによって起動されたときにプログラム(コマンドで指定)に配信されます。パラメータは、引数またはオプションのいずれかです。

この例では、コマンドライン要素間の区切り文字は空白文字であり、行末区切り文字は改行区切り文字です。これは、コマンドラインインターフェイスで広く使用されている(ただし、普遍的ではない)規則です。

CLIは通常、構文セマンティクスで構成されていると見なすことができます構文は、すべてのコマンドが従わなければならない文法です。オペレーティングシステムの場合DOSUnixはそれぞれ、すべてのコマンドが従わなければならない独自のルールセットを定義します。組み込みシステムの場合、NortelJuniper NetworksCisco Systemsなどの各ベンダーは、CLI内のすべてのコマンドが準拠する独自のルールセットを定義しています。これらのルールは、ユーザーがコマンドシステムをどのようにナビゲートするかも指示します。セマンティクス_可能な操作の種類、これらの操作を実行できるデータの種類、および文法がこれらの操作とデータをどのように表すか(構文の記号的な意味)を定義します。

2つの異なるCLIが構文またはセマンティクスのいずれかに同意する場合がありますが、ユーザーが何も学習することなく両方のCLIを使用できるようにし、スクリプトの再利用を可能にするために十分に類似していると見なすことができるのは、両方に同意する場合のみです。 。

単純なCLIはプロンプトを表示し、 Enterキーで終了したユーザーが入力した「コマンドライン」を受け入れ、指定されたコマンドを実行して、結果またはエラーメッセージをテキストで表示します。高度なCLIは、指定されたコマンドを実行する前にコマンドラインを検証、解釈、およびパラメーター拡張し、オプションでその出力をキャプチャまたはリダイレクトします。

GUIのボタンやメニュー項目とは異なり、コマンドラインは通常自己文書化されており、ユーザーが何をしたいのかを正確に示します。さらに、コマンドラインには通常、結果をカスタマイズするために変更できる多くのデフォルトが含まれています。便利なコマンドラインは、完全なコマンドを表す文字列またはエイリアスを割り当てることで節約できます。または、複数のコマンドをグループ化して、より複雑なシーケンスを実行することもできます。たとえば、プログラムをコンパイルしてインストールし、実行して、単一のエンティティを作成します。 、それ自体をコマンドとして扱うことができるコマンドプロシージャまたはスクリプトと呼ばれます。これらの利点は、ユーザーが複雑なコマンドまたは一連のコマンドを1回だけ理解する必要があることを意味します。これは、それらを保存して、再度使用できるためです。

CLIシェルに与えられるコマンドは、多くの場合、次のいずれかの形式になっています。

  • doSomething how toFiles
  • doSomething how sourceFile destinationFile
  • doSomething how < inputFile > outputFile
  • doSomething how | doSomething how | doSomething how > outputFile

ここで、doSomethingは、実際には動詞あり、副詞(たとえば、コマンドを「verbosely」または「quietly」で実行する必要があります)およびtoFiles、コマンドが動作する1つまたは複数のオブジェクト(通常は1つ以上のファイル)です。3番目の例はリダイレクト演算子であり、コマンドラインインタープリターに、コマンドの出力をそれ自体の標準出力(画面)ではなく、指定されたファイルに送信するように指示します。これにより、ファイルが上書きされます。を使用すると、出力がリダイレクトされ、ファイルに追加されます。別のリダイレクト演算子は、パイプラインを作成する垂直バー( )です。>>>|ここで、1つのコマンドの出力が次のコマンドへの入力になります。

CLIとリソース保護

PATH環境変数に表示されるパスを変更することにより、使用可能なコマンドのセットを変更できます。Unixでは、コマンドも実行可能ファイルとしてマークする必要があります。パス変数内のディレクトリは、指定された順序で検索されます。パスを並べ替えることで、デフォルトが逆の場合に、たとえば\ OS2\E.EXEの代わりに\OS2\ MDOS\E.EXEを実行できます。実行可能ファイルの名前の変更も機能します。たとえば、お気に入りのエディターの名前をEDITに変更することがよくあります。

コマンドラインを使用すると、高度な内部コマンドへのアクセスなど、使用可能なコマンドを制限できます。WindowsCMD.EXEはこれを行います多くの場合、シェアウェアプログラムは、プロンプトから「管理者がバッチファイルの実行を無効にしました」コマンドを出力するなど、コマンドの範囲を制限します。[説明が必要]

ネットワークルーターなどの一部のCLIには、モードの階層があり、各モードでサポートされるコマンドのセットが異なります。コマンドのセットは、セキュリティ、システム、インターフェイスなどとの関連付けによってグループ化されます。これらのシステムでは、ユーザーは一連のサブモードをトラバースする場合があります。たとえば、CLIにinterfacesystemという2つのモードがある場合、ユーザーはコマンドインターフェイスを使用してインターフェイスモードに入ることができます。この時点で、ユーザーがインターフェイスモードを終了してシステムモードに入るまで、システムモードのコマンドにアクセスできない場合があります。

コマンドプロンプト

スイッチオンまたはハードリセット後のBBCMicroのプロンプト

コマンドプロンプト(または単にプロンプ​​ト)は、コマンドを受け入れる準備ができていることを示すためにコマンドラインインターフェイスで使用される(1つ以上の)文字のシーケンスです。文字通り、ユーザーにアクションを実行するように促します。プロンプトは通常、文字、、、 [8] [9]、または[10]のいずれかで終了し$多く場合現在作業ディレクトリのパスホスト名などの他の情報が含まれます。 %# :>-

多くのUnixおよび派生システムでは、プロンプト は通常、ユーザーが通常のユーザーである$、ユーザーがスーパーユーザー(Unixの用語では「root」)である場合に終了します。 %#

エンドユーザーは多くの場合、プロンプトを変更できます。環境によっては、たとえば、プロンプトをより有益で視覚的に心地よいものにするために、色、特殊文字、およびその他の要素(現在の時刻の変数や関数、ユーザー、シェル番号、作業ディレクトリなど)が含まれる場合があります。さまざまなマシン上のセッションを区別するため、またはコマンドのネストの現在のレベルを示すため。一部のシステムでは、プロンプトの定義にある特別なトークンを使用して、プロンプトの表示中にコマンドラインインタープリターによって外部プログラムが呼び出されるようにすることができます。

DOSのCOMMAND.COMおよびWindowsNTのcmd.exeでは、ユーザーはコマンドを発行するか、対応する環境変数PROMPTの値を直接変更することにより、プロンプトを変更できます最新のシステムのデフォルトであるスタイルは、たとえば、で取得されます古いDOSシステムのデフォルトは、によって取得されますが、フロッピードライブA:またはB :;で使用されない限り、一部のシステムでは新しいスタイルが生成されます。これらのシステムでは、自動デフォルトをオーバーライドして、古いスタイルに明示的に切り替えるために使用できます。 %PROMPT% C:\>PROMPT $P$GC>PROMPTC:\>PROMPT $N$G

多くのUnixシステムは$PS1変数(Prompt String 1)[11]を備えていますが、他の変数もプロンプトに影響を与える可能性があります(使用するシェルによって異なります)。Bashシェルでは、次の形式のプロンプトが表示されます。

[時間] user@ host:work_dir $

コマンドを発行して設定できます

エクスポート PS1 = '[\t] \ u @ \ H:\ W $'

zshでは$RPROMPT変数はディスプレイの右側にあるオプションの「プロンプト」を制御します。テキスト入力の場所が変更されないという点で、これは実際のプロンプトではありません。プロンプトと同じ行に情報を表示するために使用されますが、右寄せされます。

RISC OSではコマンドプロンプトは*シンボルであるため、(OS)CLIコマンドは「スターコマンド」と呼ばれることがよくあります。[12]コマンドの前に。を付けることで、他のコマンドライン( BBC BASICコマンドラインなど)から同じコマンドにアクセスすることもできます*

引数

コマンドと引数への解析を示すMS-DOSコマンドライン

コマンドライン引数またはパラメータは、プログラムの起動時にプログラムに提供される情報の項目です。プログラムには、情報のソースまたは宛先を識別する、またはプログラムの動作を変更する多くのコマンドライン引数を含めることができます。

コマンドプロセッサがアクティブな場合、プログラムは通常、名前に続けてコマンドライン引数(存在する場合)を入力することによって呼び出されます。たとえば、UnixおよびUnixライクな環境では、コマンドライン引数の例は次のとおりです。

rm file.s

「file.s」は、ファイル「file.s」を削除するよう にプログラムrmに指示するコマンドライン引数です。

CC ++Javaなどの一部のプログラミング言語では、プログラムがコマンドライン引数をメイン関数の文字列パラメータとして処理することにより、それらを解釈できます。Pythonなどの他の言語は、モジュールを介して、特に「コマンドライン引数」に対して オペレーティングシステム固有のAPI(機能)を公開します。sys sys.argv

Unixライクなオペレーティングシステムでは、ファイル名の代わりに使用される単一のハイフンは、プログラムが標準入力からのデータを処理するか、標準出力にデータを送信するかを指定する特別な値です。

コマンドラインオプション

コマンドラインオプションまたは単にオプション(フラグまたはスイッチとも呼ばれますは、コマンドの操作を変更します。効果はコマンドのプログラムによって決定されます。オプションは、コマンドラインのコマンド名の後にスペースで区切って続きます。DOSのように、最初のオプションの前にスペースが必要なわけではありません。これは、DIRコマンドの使用可能なオプションを一覧表示するのと同じ効果がありますDir/?[ 10 ]が、 Unixの多くのバージョンでは)オプションの前にatが必要です少なくとも1つのスペース(大文字と小文字が区別されます)。 DIR /?dir --help

オプションの形式は、オペレーティングシステムによって大きく異なります。ほとんどの場合、構文はオペレーティングシステムの要件ではなく、慣例によるものです。コマンドライン全体は、プログラムに渡される文字列であり、インタプリタがコマンド名の終わりとその引数とオプションの始まりを知ることができる限り、プログラマーが望む方法でそれを処理できます。

コマンドラインオプションのいくつかの代表的なサンプル。すべてディレクトリ内のファイルの一覧表示に関連しており、いくつかの規則を示しています。

オペレーティング·システム 指示 有効な代替手段 ノート
ActiveX directory/owner Dir /Owner ディレクトリコマンドに、ファイルの所有権も表示するように指示します。
Directoryコマンド名では大文字と小文字が区別されず、一意性を維持するために必要な数の文字に省略できることに注意してください。
ウィンドウズ DIR/Q/O:S d* dir /q d* /o:s 名前が「D」で始まるファイルの所有権をサイズでソートし、最小のものから順に表示します。
引数d*の前後にスペースが必要であることに注意してください。
Unixライクなシステム ls -lS D* ls -S -l D* サイズ(最初に大きいもの)でソートされた、「D」(「d」ではない)で始まる長い形式のファイルおよびディレクトリで表示します。
すべての引数とオプションの前後にスペースが必要であることに注意してください。ただし、一部は一緒に実行できます。たとえば、-lSは-l -Sと同じです。
データゼネラルRDOSCLI list/e/s 04-26-80/b List /S/E 4-26-80/B 1980年4月26日より前に作成されたファイルのすべての属性を一覧表示します。
日付引数の最後の/Bはローカルスイッチであり、その引数の意味を変更しますが、/Sと/Eはグローバルスイッチです。つまり、全体に適用されます。指図。
短縮コマンド

Multicsでは、コマンドラインオプションとサブシステムキーワードが省略される場合があります。このアイデアは、キーワードが短縮されたPL / Iプログラミング言語から派生しているように見えます(たとえば、STRINGRANGEの場合はSTRG、DECLAREの場合はDCL)。たとえば、Multicsの「フォーラム」サブシステムでは、-long_subjectパラメーターを-lgsjと省略できます。Multicsコマンドが省略されることもよくあります。これは通常、 delete_iacl_dirのdid使用など、コマンド名を形成するためにアンダースコアと一緒につながれる単語の頭文字に対応します

他のシステムでは、コマンド名の最初の文字を十分に識別できるようにするなど、略語は自動的に使用されますが(SUの略語など)、特定の略語が事前にプログラムされSUPERUSERている場合もあります(COMMAND.COMなど)。または、バッチスクリプトとエイリアス( tcshなど)を介してユーザー定義しますMDMKDIRalias md mkdir

DOS、Windows、OS/2のオプション規則

DOS、OS / 2、およびWindowsでは、COMMAND.COMまたはCMD.EXE(またはコマンドの内部)から呼び出される異なるプログラムが、同じオペレーティングシステム内で異なる構文を使用する場合があります。例えば:

  • オプションは、「スイッチ文字」のいずれかで示される場合があります:、、/または-いずれかが許可されます。下記参照。
  • 大文字と小文字が区別される場合とされない場合があります
  • オプションとその引数が一緒に実行されることもあれば、空白で区切られることもあれば、文字(通常は:または=; )で区切られることもあります。したがってProg -fFilename、、、、Prog -f Filename_ Prog -f:Filename_Prog -f=Filename
  • 一部のプログラムでは、1文字のオプションを組み合わせることができます。[10]他の人はしません。スイッチは[10]-fAと同じ意味であるか、正しくないか、有効であるが異なるパラメーターである可能性があります。-f -A

DOSOS / 2、およびWindowsでは、スラッシュ(/)が最も一般的ですが、ハイフンマイナスも使用される場合があります。DOSの多くのバージョン(MS-DOS / PC DOS 2.xx以降、5.0以降のすべてのバージョンのDR-DOS 、およびPTS-DOSEmbedded DOSFreeDOSRxDOS)では、スイッチ文字switcharまたはswitchcharと省略されることもあります) )使用する値は、システム呼び出しから返される値INT 21h / AX = 3700h)によって定義されます。このAPIによって返されるデフォルトの文字は/、ただし、上記のシステムではハイフンマイナスに変更できます。ただし、DatalightROM-DOSおよびMS-DOS/ PC DOS 5.0以降では、常に/この呼び出しから戻ります(再有効化するために利用可能な多くのTSRの1つを除く SwitChar機能がロードされます)。これらのシステムの一部(MS-DOS / PC DOS 2.xx、DOS Plus 2.1、DR-DOS 7.02以降、PTS-DOS、Embedded DOS、FreeDOS、およびRxDOS)では、設定をSWITCHARで事前構成することもできます。 CONFIG.SYSのディレクティブGeneralSoftwareのEmbeddedDOSは、同じ目的でSWITCHコマンドを提供しますが、4DOSでは、を介して設定を変更できますSETDOS /W:n[13] DR-DOSで、設定がから変更された場合/、 PROMPTパラメーター\の表示の最初のディレクトリー区切り文字はスラッシュに変更されます(これはDOS、FlexOS、4680 OS、4690 OS、OS / 2、およびWindowsでも有効なディレクトリー区切り文字です)。変更を示します。[10]また、現在の設定は組み込みのヘルプ画面にも反映されます。[10] DR-DOS COMMAND.COMの一部のバージョンは、現在の設定を表示するためのPROMPTトークンもサポートしています。DR-DOS 7.02以降のCOMMAND.COMは、ポータブルバッチジョブを記述できるようにするために名前が付けられた疑似環境変数も提供します。[14] [15]$G/$/%/%いくつかの外部DR-DOSコマンドは、システム設定を上書きする ための環境変数を追加でサポートします。 %SWITCHAR%

ただし、多くのプログラムは、/コマンドライン引数を解析する前にスイッチ設定を取得するのではなく、使用するように配線されています。非常に少数、主にUnixライクなシステムからのポートは、スイッチ文字が設定されていない場合でも「-」を受け入れるようにプログラムされています(たとえば、 Microsoft Windowsで提供されるnetstatおよびは/?オプションを受け入れて使用可能なオプションを一覧表示します、それでもリストは「-」規則を指定します)。 ping

Unixライクなシステムのオプション規則

Unixライクなシステムでは、ASCIIハイフンマイナスはオプションを開始します。新しい(およびGNU)規則では、2つのハイフンを使用し、次に単語(eg --create)を使用してオプションの使用を識別しますが、古い規則(および頻繁に使用されるオプションのオプションとして引き続き使用可能)では、1つのハイフンを使用してから1つの文字(eg 、-c); 1つのハイフンの後に2つ以上の文字が続く場合は、2つのオプションが指定されていることを意味するか、2番目以降の文字が最初のオプションのパラメーター(ファイル名や日付など)であることを意味します。[16]

次の文字(--)のない2つのハイフンマイナス文字は、残りの引数をオプションとして扱わないことを示している場合があります。これは、たとえば、ファイル名自体がハイフンで始まる場合、または追加の引数が内部コマンド用である場合に役立ちます(例: 、sudo)。ダブルハイフンマイナスは、よりわかりやすいオプション名が使用されている「長いオプション」の接頭辞として使用されることもあります。これはGNUソフトウェアの一般的な機能です。getopt関数とプログラム、およびgetoptsコマンドは、通常、コマンドラインオプションの解析に使用されます

Unixコマンド名、引数、およびオプションでは大文字と小文字が区別されます(いくつかの例を除き、主に他のオペレーティングシステムからの一般的なコマンドがUnixに移植されています)。

他のシステムのオプション規則

FlexOS4680OSおよび4690OSを使用します-

通常使用されるCP/M[

Conversational Monitor System(CMS)は、単一の左括弧を使用して、コマンドの最後にあるオプションを他の引数から分離します。たとえば、次のコマンドのオプションは、ターゲットファイルが存在する場合はそれを置き換え、ソースファイルの日付と時刻をコピーに保持する必要があることを示しています。 COPY source file a target file b (REPLACE OLDDATE

RDOSAOSなどのオペレーティングシステムでのData GeneralのCLI、およびBusiness Basicに付属しているCLIのバージョンは、スイッチ文字としてのみ使用さ/れ、大文字と小文字が区別されず、一部で「ローカルスイッチ」を使用できます。ユーザーシンボルを追加するマクロアセンブラーコマンドにグローバルオプション「U」を使用するなど、解釈方法を制御する引数がMAC/U LIB/S A B C $LPT/Lありますが、パス2でLIBを指定するローカルスイッチと、リストを送信するローカルスイッチの2つをスキップする必要があります。プリンター、$LPT。

組み込みの使用法ヘルプ

CLIの批判の1つは、使用可能なアクションに関するユーザーへの手がかりがないことです。[要出典] 対照的に、GUIは通常、メニュー、アイコン、またはその他の視覚的な手がかりを使用して、使用可能なアクションをユーザーに通知します。[要出典]この制限を克服するために、多くのCLIプログラムは、通常、引数なしで呼び出された場合、または、、、、、、、、、、、、、のいずれかで呼び出された場合に、有効なパラメーター簡単?要約表示-?ます[10] [17] [18]-h-H/?/h/H/Help-help--help

ただし、コマンドライン引数がオプションであるプログラムおよびスクリプトは通知なしに実行されるため、使用法のヘルプが表示されることを期待してパラメータなしでプログラム名を入力すると危険な場合があります。

少なくともヘルプパラメータには望ましいものですが、プログラムは上記で例示したすべてのオプションの導入文字をサポートしているとは限りません。デフォルトのコマンドラインオプション文字/をからに変更できるDOSでは-、プログラムは現在の設定を決定するためにSwitCharAPIを照会する場合があります。したがって、プログラムがそれらすべてをサポートするように配線されていない場合、ユーザーは、確実にヘルプを要求できるようにするために、現在の設定を知る必要がある場合があります。SwitCharがに変更された-ため/、DOSコマンドラインでも文字が代替パス区切り文字として受け入れられる場合、プログラムはヘルプパラメータではなくパス/hなどのオプションを誤って解釈する可能性があります。[10]/Hただし、最初または唯一のパラメーターとして指定された場合、ほとんどのDOSプログラムは、慣例により、現在のSwitChar設定に関係なく、ヘルプの要求としてそれを受け入れます。[10] [13]

場合によっては、プログラムに対してさまざまなレベルのヘルプを選択できます。これをサポートする一部のプログラムでは、ヘルプパラメータのオプションの引数として詳細レベルを指定できます(/H:1/H:2など)。または、疑問符の付いたヘルプパラメータの短いヘルプと、他のヘルプオプションの長いヘルプ画面を表示します。[19]

プログラムによっては、受け入れられたパラメーターに関する追加またはより具体的なヘルプが、ヘルプパラメーターの引数として問題のパラメーターを提供するか、またはその逆によって利用できる場合があります(in/H:Wまたはin (プログラムでサポートされる別のパラメーターであると/W:?想定)) /W[20] [21] [18] [17] [19] [nb 1]

ヘルプパラメータと同様の方法ですが、あまり一般的ではありませんが、一部のプログラムは、、、、、などの「about」パラメータで呼び出されると、自身に関する追加情報(モード、ステータス、バージョン、作成者、ライセンス、連絡先情報など)を-!提供/!-aboutます--about[17]

?および文字は通常、コマンドラインで他の目的にも役立つため!、すべてのシナリオで使用できるとは限りません。したがって、対応するヘルプ情報にアクセスするためのオプションは、これらだけではありません。

VT100に表示されるRT-11SJからのHELPコマンド出力の終わり

プログラムの組み込み内部ヘルプよりも詳細なヘルプが必要な場合、多くのシステムは専用の外部 " "コマンド(または同様のコマンド)をサポートします。このコマンドは、呼び出しパラメーターとしてコマンド名を受け入れ、外部ヘルプシステムを呼び出します。 help command

DR-DOSファミリでは、コマンド自体の代わりに/?またはCOMMAND.COM/Hプロンプトで入力すると、動的に生成された使用可能な内部コマンドのリストが表示されます。[10] 4DOSNDOSは、プロンプト[13]で入力することで同じ機能をサポートします(これは、DR-DOS COMMAND.COMの新しいバージョンでも受け入れられます)。内部コマンドは、を介して個別に無効または再度有効にすることができます[13]これに加えて、DR-DOS COMMAND.COMの一部の新しいバージョンは、使用可能な組み込みの疑似環境変数のリストを表示するコマンドも受け入れます。 ?SETDOS /I?%クイックヘルプリファレンスとしての目的に加えて、これをバッチジョブで使用して、基盤となるコマンドラインプロセッサの機能を照会できます。[10]

コマンド記述構文

組み込みの使用法のヘルプとマニュアルページでは、通常、有効なコマンド形式を説明するために小さな構文を使用しています。[22] [23] [24] [nb 2]

  • 必要なパラメータの山かっこ:ping <hostname>
  • オプションのパラメータの角かっこ:mkdir [-p] <dirname>
  • 繰り返されるアイテムの省略記号:cp <source1> [source2…] <dest>
  • アイテムを選択するための垂直バー:netstat {-t|-u}

これらの文字は、シェルで直接使用される場合とは異なる意味を持つことに注意してください。パラメータ名とリテラル文字列を混同する可能性が低い場合は、山括弧を省略できます。

スペース文字

コンピューティングの多くの領域、特にコマンドラインでは、スペース文字には2つの異なる互換性のない機能があるため、問題が発生する可能性があります。コマンドまたはパラメーターの一部として、またはパラメーターまたは名前の区切り文字としてです。あいまいさを防ぐには、最初にファイル名とディレクトリ名の埋め込みスペースを禁止するか(たとえば、名前をアンダースコア _に置き換える)、名前を引用文字で囲むか、スペースの前にエスケープ文字を使用します。バックスラッシュ\)。例えば

Long path/Long program name Parameter one Parameter two

あいまいです(「プログラム名」はプログラム名の一部ですか、それとも2つのパラメーターですか?)。でも

Long_path/Long_program_name Parameter_one Parameter_two…、
LongPath/LongProgramName ParameterOne ParameterTwo…、
"Long path/Long program name" "Parameter one" "Parameter two"

Long\ path/Long\ program\ name Parameter\ one Parameter\ two

あいまいではありません。Unixベースのオペレーティングシステムは、引用符の必要性を最小限に抑えるために、埋め込みスペースの使用を最小限に抑えます。Microsoft Windowsでは埋め込みスペース(ディレクトリ名など)が一般的であるため、引用符を使用する必要があります。

コマンドラインインタプリタ

ほとんどのユーザーはシェルをインタラクティブなコマンドインタープリターと考えていますが、実際には各ステートメントがコマンドを実行するプログラミング言語です。コマンド実行のインタラクティブな側面とプログラミングの側面の両方を満たす必要があるため、設計と同様に歴史によって形作られた奇妙な言語です。

コマンドラインインタープリターCLI )という用語は、ユーザーが入力したり、ファイルや別の種類のデータストリームから読み取ったりできる一連のテキスト行を解釈するように設計されたコンピュータープログラムに適用されます解釈のコンテキストは通常​​、特定のオペレーティングシステムまたはプログラミング言語の1つです。

コマンドラインインタープリターを使用すると、ユーザーはさまざまなコマンドを非常に効率的な(そして多くの場合簡潔な)方法で発行できます。これには、ユーザーがコマンドの名前とそのパラメーター、および解釈される 言語の構文を知っている必要があります。

Unix#!メカニズムとOS/2 EXTPROCコマンドは、外部プロセッサへのバッチファイルの受け渡しを容易にします。これらのメカニズムを使用して、専用の特定のコマンドプロセッサを記述し、バッチファイルに存在する外部データファイルを処理できます。

OS / 2 PresentationManagerや初期バージョンのMicrosoftWindowsなどの多くのグラフィカルインターフェイスは、コマンドラインを使用してヘルパープログラムを呼び出し、ドキュメントやプログラムを開きます。コマンドは、グラフィカルシェル[説明が必要]またはレジストリやOS/2 OS2USER.INIファイルなどのファイルに保存されます。

初期の歴史

パンチテープリーダーとパンチを備えテレタイプモデル33ASRテレプリンターキーボード
DECVT52 ターミナル_

初期のコンピューターはインタラクティブな入出力デバイスをサポートしていませんでした。多くの場合、コンピューターオペレーターとの通信はセンススイッチとライトに依存していましたこれは、一度に1つのプログラムを実行し、多くの場合プログラマーがオペレーターとして機能するバッチシステムには適切でした。これには、ライトとスイッチを1つの機械命令でテストおよび設定できるため、オーバーヘッドが少ないという利点もありました。その後、オペレーターがシステムと通信できるように、単一のシステムコンソールが追加されました。

1960年代以降、ユーザーによるコンピューターとの対話は、主にコマンドラインインターフェイスを使用して行われました。最初はテレタイプモデル33 ASRのようなマシンでしたが、その後、 VT52などの初期のCRTベースのコンピューター端末で行われました。

これらのデバイスはすべて純粋にテキストベースであり、グラフィックや画像を表示する機能はありません。[nb 3]ビジネスアプリケーションプログラムでは、テキストベースのメニューが使用されましたが、より一般的な対話では、コマンドラインがインターフェイスでした。

1964年頃、 Louis PouzinMulticsにコンセプトと名前のシェルを導入し、 Compatible Time-Sharing System(CTSS)の以前のよりシンプルな機能に基づいて構築しました。[26] [より良い情報源が必要]

1970年代初頭から、Unixオペレーティングシステムは強力なコマンドライン環境の概念を採用し、あるコマンドの出力を別のコマンドへの入力としてパイプする機能を導入しました。Unixには、カスタムコマンドのように機能 する「シェルスクリプト」としてコマンドの文字列を保存して再実行する機能もありました。

コマンドラインは、 Commodore PETApple IIBBCMicroなどの初期の家庭用コンピューターのメインインターフェイスでもありました。 ほとんどの場合、BASICインタープリターの形式でした。より強力なビジネス指向のマイクロコンピューターがCP/Mおよびその後のIBMPCなどのDOSコンピューターとともに登場したとき、コマンドラインは出力の グロビングパイピングなどのUnixシェルの構文と機能の一部を借用し始めました。

コマンドラインは、1983年のAppleLisaと1984年のAppleMacintoshで使用されたPARCGUI アプローチによって最初に真剣に挑戦されました少数のコンピュータユーザーはGEOSWindows3.1などのGUIを使用していましたが、 IBM PCユーザーの大多数は、1995年にWindows 95がリリースされるまで、 COMMAND.COMシェルをGUIに置き換えませんでした。 [27] [28]

オペレーティングシステムシェルとしての最新の使用法

現在、ほとんどの非専門家のコンピューターユーザーはほぼ排他的にGUIを使用していますが、より上級のユーザーは強力なコマンドライン環境にアクセスできます。

スクリプティング

ほとんどのコマンドラインインタプリタは、さまざまな範囲でスクリプトをサポートしています。(結局のところ、彼らは解釈されたプログラミング言語のインタプリタですが、多くの場合、言語は特定のコマンドラインインタプリタに固有です。)彼らは彼らが書いた言語書かれたスクリプト(さまざまにシェルスクリプトまたはバッチファイルと呼ばれます)を解釈します解釈。一部のコマンドラインインタプリタには、 REXXなどの他の言語のインタプリタエンジンが組み込まれているため、これらの言語でコマンドラインインタプリタ自体の内部で直接スクリプトを実行できます。

逆に、スクリプトプログラミング言語、特にeval 関数を持つ言語(REXX、PerlPythonRubyJythonなど)を使用して、コマンドラインインタープリターとフィルターを実装できます。いくつかのオペレーティングシステム、特にDOSの場合、このようなコマンドインタープリターは、提供されているものよりも柔軟なコマンドラインインターフェイスを提供します。その他の場合、そのようなコマンドインタプリタは、言語のユーザーインターフェイスと入出力機能を使用して高度にカスタマイズされたユーザーインターフェイスを提示できます。

その他のコマンドラインインターフェイス

コマンドラインは、ユーザー間だけでなくプログラム間のインターフェイスも提供します。この意味で、コマンドラインはダイアログボックスの代わりになります。エディターとデータベースは、代替コマンドプロセッサーが実行される可能性のあるコマンドラインを提供します。一方、ダイアログボックスを開くコマンドラインにオプションがある場合があります。「TakeCommand」の最新バージョンにはこの機能があります。DBaseは、ダイアログボックスを使用してコマンドラインを作成しました。コマンドラインは、使用する前にさらに編集できます。

BASIC、diskpartEdlin、QBASICなどのプログラムはすべてコマンドラインインターフェイスを提供し、その一部はシステムシェルを使用します。Basicは、8ビットIntelコンピューターのデフォルトのインターフェイスでモデル化されています。電卓は、コマンドラインまたはダイアログインターフェイスとして実行できます。

Emacsは、ミニバッファーの形式でコマンドラインインターフェイスを提供します。コマンドと引数はEmacsの標準テキスト編集サポートを使用して入力でき、出力は別のバッファーに表示されます。

画面の下部にあるユーザーの入力コマンドに依存するAdventureKing'sQuest1-3など、多くのテキストモードゲームがあります。「getring」や「look」などのコマンドを入力して、キャラクターを制御します。プログラムは、キャラクターがそれをどのように見るか、またはアクションを実行させるかを説明するテキストを返します。テキストアドベンチャー 銀河ヒッチハイカーガイド」は、ダグラスアダムの同名の本に 基づいたインタラクティブフィクションで、テレタイプスタイルのコマンドラインゲームです。

これらのインターフェースの中で最も注目に値するのは、あるコマンドの出力を別のコマンドの入力に渡すことができる標準ストリームインターフェースです。テキストファイルはどちらの目的にも使用できます。これにより、配管、フィルター、およびリダイレクトのインターフェイスが提供されます。Unixでは、デバイスもファイルであるため、stdin、stdout、およびstderrに使用されるシェルの通常のタイプのファイルはttyデバイスファイルです。

別のコマンドラインインターフェイスを使用すると、シェルプログラムでヘルパープログラムを起動して、ドキュメントを起動したり、プログラムを起動したりできます。コマンドはシェルによって内部的に処理され、ドキュメントを起動するために別のプログラムに渡されます。WindowsおよびOS/2のグラフィカルインターフェイスは、他のプログラム(コンソールまたはグラフィカル)に渡されるコマンドラインに大きく依存しています。これらのプログラムは通常、ユーザーコンソールを表示せずにコマンドラインを処理します。

OS / 2 Eエディターやその他のIBMエディターなどのプログラムは、通常はシェル用のコマンドラインを処理でき、出力はドキュメントウィンドウに直接配置されます。

WebブラウザのURL入力フィールドをコマンドラインとして使用できます。これは、 Webアプリの「起動」ブラウザー構成へのアクセス、および検索の実行に使用できます。「インターネットのコマンドライン」と呼ばれているGoogleは、既知の形式の検索パラメータを検出すると、ドメイン固有の検索を実行します。[36]この機能は、検索がブラウザフィールドからトリガーされたか、GoogleのWebサイトからトリガーされたかに関係なく存在します。

スタンドアロンのWebアプリとして、またはより大きなアプリケーションの一部として、ブラウザでコマンドラインアプリケーションを記述できるJavaScriptライブラリがあります。[37]このようなWebサイトの例は、 DuckDuckGoへのCLIインターフェイスです。[38]ブラウザからサーバーコマンドラインインターフェイスへのアクセスを許可する WebベースのSSHアプリケーションもあります。

PC上の多くのビデオゲームは、コンソールと呼ばれることが多いコマンドラインインターフェイスを備えています。これは通常、開発中にゲーム開発者によって使用され、デバッグ目的やゲームの一部をだましたりスキップしたりするためにmod開発者によって使用されます。

も参照してください

メモ

  1. ^ 例として、 DR-DOS 7.03 DEBUGコマンドの包括的な内部ヘルプシステムがあります。これは、(デフォルトの概要??だけでなく)デバッグプロンプトから呼び出すことができます?特定のヘルプページは、を介して選択できます?n(ここnで、はページの番号です)。さらに、特定のコマンドのヘルプは、後にコマンド名を指定することで表示できます?。fe?Dは、さまざまなダンプコマンド(Dなど)のヘルプを呼び出します。これらの機能の一部は、 DR DOS3.41SID86およびGEMSIDによってすでにサポートされています。
  2. ^ DOSのようなオペレーティングシステムのコマンド構文を説明する際の顕著な違い:Windows Server 2003 R2のドキュメントでは、「ユーザーが提供する必要のある情報」にイタリック文字を使用していますが、WindowsServer2008のドキュメントでは山括弧を使用しています。 「ヘルプ」コマンド。山かっこは問題ありません。
  3. ^ アスキーアートを除いて

参照

  1. ^ 「Unixシェル」2007年11月8日にオリジナルからアーカイブされましOSカーネルと緊密に統合された「モニター」ではなく、交換可能な「コマンドシェル」を持つという概念は、Multicsに起因する傾向があります。
  2. ^ ab 「シェルの起源www.multicians.org 2017年4月12日取得
  3. ^ メッツ、ケイド(2013-01-03)。「インターネットの長く失われたフランスの叔父にボンジュールと言ってください」有線2017年7月31日取得
  4. ^ Mazières、David(2004年秋)。「MULTICS-最初の7年間」高度なオペレーティングシステムスタンフォードコンピュータサイエンス学部2017年8月1日取得
  5. ^ a b ジョーンズ、M。(2011-12-06)。「Linuxにおけるシェルの進化」developerWorksIBM 2017年8月1日取得
  6. ^ 「GNUBASHリファレンス」
  7. ^ 「MicrosoftWindowsコマンドシェルの概要」
  8. ^ SIDユーザーガイド(PDF)デジタルリサーチ1978年。595-2549。2019-10-20のオリジナルからアーカイブ(PDF)2020-02-06を取得 (4 + 69ページ)
  9. ^ CP / M-86用SID-86ユーザーズガイド(2版)。デジタルリサーチ1982年8月[1982年3月]。SID86UG.WS4。2019-10-20にオリジナルからアーカイブされました2020-02-06を取得 [1](注:Q、SR、およびZコマンドが追加されたEmmanuel Rocheによるマニュアルの再入力バージョン。)
  10. ^ a b c d e f g h i j k Paul、Matthias R.(1997-07-30)。NWDOS-ヒント– Novell DOS 7で実行されるヒントとコツ、Blick auf undokumentierteの詳細、バグと回避策MPDOSTIPリリース157(ドイツ語)(3版)。2017-09-10にオリジナルからアーカイブされました2014年9月6日取得(注:NWDOSTIP.TXTは、Novell DOS7およびOpenDOS7.01に関する包括的な作業であり、文書化されていない多くの機能と内部の説明が含まれています。これは、2001年まで維持され、提供されたリンクは、HTMLに変換された古いバージョンのNWDOSTIP.TXTファイルを指しています。)
  11. ^ パーカー、スティーブ(2011)。「第11章:シェルの選択と使用」。シェルスクリプト:Linux、Bashなどのエキスパートレシピプログラマーからプログラマーへ。米国インディアナポリス:John Wiley&Sonsp。262. ISBN 978-111816632-1シェルには、PS1、P52、P53、およびPS4と呼ばれる4つの異なるコマンドプロンプトがあります。PSはPromptStringの略です。
  12. ^ RISC OS 3ユーザーガイド(PDF)AcornComputersLimited1992-03-01。p。125。
  13. ^ a b c d ブラザーズ、ハーディン; ローソン、トム; Conn、Rex C .; ポール、マティアスR .; 染料、チャールズE .; Georgiev、Luchezar I.(2002-02-27)。4DOS8.00オンラインヘルプ
  14. ^ Paul、Matthias R.(1998-01-09)。DELTREE.BATR1.01拡張ファイルとディレクトリの削除Caldera、 Inc.2019-04-08のオリジナルからアーカイブ2019年4月8日取得
  15. ^ DR-DOS 7.03 WHATSNEW.TXT —DR-DOS7.02からDR-DOS7.03への変更Caldera、 Inc.1998-12-24。2019-04-08にオリジナルからアーカイブされました2019年4月8日取得
  16. ^ 「引数構文(GNU Cライブラリ)」www.gnu.org 2021-07-09を取得
  17. ^ a b c Paul、Matthias R.(2002-05-13)。"[fd-dev]mkeyb"freedos-dev2018-09-10にオリジナルからアーカイブされました2018年9月10日取得[…]CPI/H[…]CPI[@] [@] [/?| / Help [:topic]] [/!| / About][…][?|&][…]/ ?, / Helpこのヘルプ画面またはトピックの特定のヘルプを表示する(+)[…] / !,/About「About」情報画面を表示する[…]/Cpifile(+).CPI/.CPファイル名<EGA.CPI>; 拡張子:<。CPI>; CPI.EXE =StdIn[…]/レポートレポートファイル名<''= StdOut>; 拡張子:<。RPT>[…]/ Style(+)エクスポート<0> -6 = BIN-raw / ROM / RAM / PSF0 / 1 / SH / CHED; 7-12 / 13-18 / 19-24 = ASM-hex / dec / bin / ip / il / p / l / mp /ml[…]CPI/ H:C […]コードページファイルパラメータの使用法の概要:[ …]CPI/ H:S[…]/ Styleパラメーターの概要:[…]?、およびオンライン編集モード(追加のパラメーター入力のプロンプト)[…]
  18. ^ a b Paul、Matthias R.(2002-01-09)。「SID86」ニュースグループ:  comp.os.cpm 2018年4月8日取得[…] DR- DOS7.03 DEBUGはまだ古いSID86.EXEに基づいているので、DEBUG 1.51を実行し、??で拡張ヘルプシステムに入ることをお勧めします。デバッグプロンプトから。これにより、構文と機能のヘルプが満載の8つの画面が表示されます。これらの機能の一部は、以前の問題でもサポートされていました。[…]
  19. ^ a b Paul、Matthias R .; Frinke、Axel C.(2006-01-16)。FreeKEYB-高度な国際DOSキーボードおよびコンソールドライバー(ユーザーマニュアル)(v7暫定版)。
  20. ^ CCIマルチユーザーDOS7.22GOLDオンラインドキュメントConcurrent Controls、Inc.(CCI)。1997-02-10。HELP.HLP。(注:シンボリック命令デバッガーSID86は、の短いヘルプ画面?との包括的なヘルプを提供し??ます。)
  21. ^ Paul、Matthias R.(1997-05-24)[1991]。DRDOSTIP.TXT – DRDOS3.41のヒントとコツ-5.0MPDOSTIP(ドイツ語)(47版)。2016年11月7日にオリジナルからアーカイブされました2016年11月7日取得
  22. ^ 「OpenGroupBaseSpecification Issue 7、Chapter 12.1UtilityArgumentSyntax」オープングループ2008 2013年4月7日取得man-pages(7) –  Linux規則およびその他のマニュアル(注:Unixライクなオペレーティングシステムでコマンドを記述するための規則。)
  23. ^ 「コマンドシェルの概要」WindowsServer2003製品ヘルプMicrosoft2005-01-21 2013年4月7日取得
  24. ^ 「コマンドライン構文キー」Windows Server 2008R2TechNetライブラリMicrosoft2010-01-25 2013年4月7日取得
  25. ^ Kernighan、Brian W .; パイク、ロブ(1984)。UNIXプログラミング環境イングルウッドクリフ:プレンティスホールISBN 0-13-937699-2
  26. ^ ルイ・プザン。「シェルの起源」Multicians.org 2013年9月22日取得
  27. ^ 「15年後のWindows95の発売を思い出して」2010-08-24。
  28. ^ 「Windowsの歴史」windows.microsoft.com2015-03-01にオリジナルからアーカイブされました。
  29. ^ 「WindowsPOSIXシェルの互換性」
  30. ^ 「master-platform/external / mksh-GitatGoogle」android.googlesource.com 2018年3月18日取得
  31. ^ 「Androidadbシェル-ashまたはksh?」stackoverflow.com 2018年3月14日取得
  32. ^ 「Androidshソース」GitHub2012年12月17日にオリジナルからアーカイブされました
  33. ^ 「Androidツールボックスソース」GitHub
  34. ^ 「ConfigurationFundamentalsConfigurationGuide、Cisco IOS Release 15M&T」シスコ2013-10-30。コマンドラインインターフェイスの使用。Cisco IOSコマンドラインインターフェイス(CLI)は、主要なユーザインターフェイスです…
  35. ^ 「コマンドラインインターフェースの概要」www.juniper.net 2018年3月14日取得
  36. ^ 「グーグル奇妙な良さ」
  37. ^ jQueryターミナルエミュレータ
  38. ^ DuckDuckGo TTY

外部リンク