

コマンドライン インターフェイス( CLI ) は、コマンドラインと呼ばれるテキスト行を入力してコンピュータ プログラムと対話する手段です。コマンドライン インターフェイスは、パンチ カードで使用できる非対話型インターフェイスに代わる対話型でユーザー フレンドリな代替手段として、1960 年代半ばにコンピュータ端末上で登場しました。
現在、ほとんどのコンピュータ ユーザーは、 CLI ではなくグラフィカル ユーザー インターフェイス(GUI) に依存しています。ただし、多くのプログラムやオペレーティング システム ユーティリティにはGUI がなく、CLI を通じて使用することを目的としています。
CLI の知識は、スクリプトの作成にも役立ちます。CLI を持つプログラムは、コマンドラインが単なるテキスト行であるため、コード内で簡単に指定できるため、一般的にスクリプトを使用して簡単に自動化できます。
CLI は、コマンドラインを読み取ってコマンドを実行するプログラムである コマンドライン インタープリタまたはコマンドライン プロセッサによって可能になります。
CLI の代替としては、GUI (最も有名なのは、 Microsoft Windowsなどのマウス ポインターを使用したデスクトップ メタファー)、テキストベースのユーザー インターフェイスメニュー( DOS ShellやIBM AIX SMITなど)、およびキーボード ショートカットがあります。
グラフィカルユーザーインターフェースとの比較

グラフィカル ユーザー インターフェイスと比較すると、コマンド ライン インターフェイスは実装に必要なシステム リソースが少なくて済みます。コマンドのオプションは各コマンド ラインで数文字で指定されるため、経験豊富なユーザーにとってはオプションへのアクセスが容易です。繰り返しタスクの自動化は、頻繁に使用するシーケンスを保存するための行編集と履歴メカニズムによって簡素化されます。これは、パラメーターと変数オプションを使用できるスクリプト言語にまで拡張できます。コマンド ラインの履歴を保存できるため、コマンドを確認したり繰り返したりすることができます。
コマンドライン システムでは、ヘルプオプションでコマンドのオプションを簡潔に確認できることが多いですが、ユーザーが参照できるように紙のマニュアルやオンライン マニュアルが必要になる場合があります。コマンドライン環境では、GUI にあるようなさまざまなフォントや拡張編集ウィンドウなどのグラフィカルな拡張機能が提供されない場合があります。新しいユーザーがマニュアルを参照せずに、グラフィカル ユーザー インターフェイスのアイコンやドロップダウン メニューと比較すると、使用可能なすべてのコマンドとオプションに慣れるのは難しい場合があります。
種類
オペレーティング システムのコマンド ライン インターフェイス
オペレーティング システム (OS) のコマンド ライン インターフェイスは、通常、オペレーティング システムに付属する個別のプログラムです。このようなテキスト インターフェイスを実装するプログラムは、コマンド ライン インタープリター、コマンド プロセッサ、またはシェルと呼ばれることがよくあります。
コマンドラインインタープリタの例には、Nushell、OpenVMSおよびRSX-11のDEC の DIGITAL Command Language (DCL) 、さまざまなUnix シェル( sh、ksh、csh、tcsh、zsh、Bashなど)、CP/MのCCP、DOSのCOMMAND.COM、およびOS/2と Windows のCMD.EXEプログラム (後者のグループは DEC の RSX-11 およびRSTS CLI に大きく基づいています) などがあります。ほとんどのオペレーティングシステムでは、デフォルトのシェルプログラムを代替プログラムに置き換えることができます。例としては、DOS の場合は4DOS 、OS/2 の場合は4OS2、 Windows の場合は4NT / Take Command などがあります。
「シェル」という用語は、コマンドライン インタープリターを説明するためによく使用されますが、厳密に言えば、「シェル」は、完全にグラフィカル指向のものも含め、ユーザー インターフェイスを構成する任意のプログラムです。たとえば、デフォルトの Windows GUI は、WIN.INI 構成ファイルの SHELL=EXPLORER.EXE 行で定義されているEXPLORER.EXEという名前のシェル プログラムです。これらのプログラムはシェルですが、CLI ではありません。
アプリケーションのコマンドラインインターフェース

アプリケーション プログラム (オペレーティング システムとは対照的に) にもコマンド ライン インターフェイスがある場合があります。
アプリケーション プログラムは、次の 3 つの主要なコマンド ライン インターフェイス メカニズムのいずれか、またはすべてをまったくサポートしないか、サポートしない場合があります。
- パラメーター: ほとんどのコマンドライン インターフェイスは、プログラムの起動時に追加情報を渡す手段をサポートしています。
- 対話型コマンドラインセッション: プログラムの起動後、オペレーターにコマンドを入力するための独立した手段が提供される場合があります。
- プロセス間通信: ほとんどのオペレーティング システムは、プロセス間通信の手段(標準ストリームや名前付きパイプなど) をサポートしています。クライアント プロセスからのコマンド ラインは、これらの方法のいずれかによって CLI プログラムにリダイレクトできます。
一部のアプリケーションは CLI をサポートしており、ユーザーに独自のプロンプトを表示してコマンド ラインを受け入れます。その他のプログラムは CLI と GUI の両方をサポートしています。場合によっては、GUI は別の CLI実行可能ファイルのラッパーに過ぎません。また、プログラムが GUI のオプションの代替として CLI を提供する場合もあります。CLI と GUI は多くの場合、異なる機能をサポートしています。たとえば、数値解析コンピュータ プログラムである MATLAB のすべての機能はCLI経由で利用できますが、MATLAB GUI では機能のサブセットのみが公開されます。
1975 年のColossal Cave Adventureでは、ユーザーは CLI を使用して 1 つまたは 2 つの単語を入力し、洞窟システムを探索します。
歴史
コマンドライン インターフェイスは、テレプリンター(TTY) マシンを介して人々が行う通信形式から発展しました。テレックスを使用して命令や確認を送信することが含まれる場合もありました。初期のコンピュータ システムでは、オペレーターとの対話手段としてテレプリンターがよく使用されていました。
機械式テレプリンターは、テレプリンターをエミュレートするキーボードと画面を備えた「ガラス tty」に置き換えられました。 「スマート」端末では、画面全体でのカーソル移動や、端末上でのローカルなデータ編集などの追加機能が許可され、コンピュータに送信されました。マイクロコンピュータ革命により、従来のミニコンピュータ + 端末のタイムシェアリングアーキテクチャが置き換えられると、ハードウェア端末は、PC のシリアル ポート を通じて送信される端末信号を解釈する PC ソフトウェアである端末エミュレータに置き換えられました。これらは通常、組織の新しい PC を既存のミニ コンピュータまたはメインフレーム コンピュータに接続したり、PC 同士を接続したりするために使用されました。これらの PC の一部では、電子掲示板システムソフトウェアが実行されていました。
初期のオペレーティングシステムの CLI は常駐モニタプログラムの一部として実装されており、簡単に置き換えることはできませんでした。シェルを交換可能なコンポーネントとして初めて実装したのは、 Multics タイムシェアリング オペレーティングシステムの一部でした。[1] 1964 年、MIT 計算センターのスタッフであるLouis Pouzin は、引数の置換を許可しながらコマンドスクリプトを実行するためのRUNCOMツールを開発しました。 [2] Pouzin は、コマンドをプログラミング言語のように使用する手法を表すために「シェル」という用語を作り出し、 Multicsオペレーティングシステムでそのアイデアを実装する方法に関する論文を書きました。 [3] Pouzin は 1965 年に母国フランスに戻り、最初の Multics シェルはGlenda Schroederによって開発されました。[2]

最初のUnix シェルである V6シェルは、1971 年にベル研究所のケン・トンプソンによって開発され、シュローダーの Multics シェルをモデルにしました。[4] [5] Bourneシェルは、 V6 シェルの代替として 1977 年に導入されました。対話型コマンド インタープリタとして使用されますが、スクリプト言語としても意図されており、構造化プログラムを作成するために一般的に考えられているほとんどの機能を備えています。Bourne シェルは、KornShell (ksh)、Almquist シェル(ash)、人気のBourne-again シェル(または Bash) の開発につながりました。[5]
初期のマイクロコンピュータ自体は、 CP/M、DOS、AppleSoft BASICなどのコマンドラインインターフェイスに基づいていました。 1980年代から1990年代にかけて、 Apple MacintoshとPC 上のMicrosoft Windowsの導入により、コマンドラインインターフェイスが主要なユーザーインターフェイスとして使用され、グラフィカルユーザーインターフェイスに置き換えられました。[6]コマンドラインは代替ユーザーインターフェイスとして引き続き利用可能であり、システム管理者やその他の上級ユーザーがシステム管理、コンピュータプログラミング、バッチ処理によく使用しました。
2006 年 11 月、Microsoft はWindows PowerShellバージョン 1.0 (以前のコード名はMonad ) をリリースしました。これは、従来の Unix シェルの機能と独自のオブジェクト指向.NET Frameworkを組み合わせたものです。MinGWとCygwin は、 Unix のような CLI を提供する Windows 用のオープンソースパッケージです。Microsoft は、 Services for UNIXアドオン を通じて、 MKS Inc.のksh実装MKS Korn シェルをWindows 用に提供しています。
2001年以来、MacintoshオペレーティングシステムmacOSは、Darwinと呼ばれるUnix系オペレーティングシステムをベースとしている。[7]これらのコンピュータでは、ユーザーは、アプリケーションフォルダのユーティリティサブフォルダにあるTerminalと呼ばれる端末エミュレータプログラムを実行するか、 sshを使用してマシンにリモートでログインすることで、Unix系コマンドラインインターフェイスにアクセスできる。ZシェルはmacOSのデフォルトシェルであり、Bash、tcsh、およびKornShellも提供されている。macOS Catalinaより前は、Bashがデフォルトだった。
使用法
CLI は、幅広い (または任意の) オプションと組み合わせた大量のコマンドやクエリを、純粋な GUI よりもテキストとしてより迅速に入力できる場合に使用されます。これは通常、オペレーティング システムのコマンド シェルの場合に当てはまります。CLI は、グラフィカル ユーザー インターフェイスをサポートするのに十分なリソースがないシステムでも使用されます。一部のコンピューター言語システム ( Python、[8] Forth、LISP、Rexx 、およびBASICの多くの方言など) では、対話型のコマンド ライン モードが提供されており、コードを迅速に評価できます。
CLI は、プログラマーやシステム管理者、エンジニアリングや科学分野の環境、および技術的に高度なパーソナル コンピュータ ユーザーによってよく使用されます。また、CLI は、コマンドと応答を更新可能な点字ディスプレイを使用して表示できるため、視覚障害のある人にも人気があります。
シェル CLI の構造
コマンドラインインターフェースの一般的なパターン[9] [10]は次の通りである。
プロンプトコマンド param1 param2 param3 … paramN
- プロンプト - ユーザーにコンテキストを提供するためにプログラムによって生成されます。
- コマンド — ユーザーが指定します。コマンドは通常、次の 2 つのクラスのいずれかになります。
- 内部コマンドはコマンドラインインタープリタによって認識され、処理されます。内部コマンドは組み込みコマンドとも呼ばれます。[11]
- 外部コマンドは、別の実行可能ファイルにある実行可能ファイルを実行します。コマンドラインインタープリタは、外部コマンドに一致する名前の実行可能ファイルを検索します。[12] [13]
- param1 …paramN — ユーザーが指定するパラメータ。パラメータの形式と意味はコマンドによって異なります。外部コマンドの場合、パラメータの値は OS によってプログラムが起動されたときにプログラムに渡されます。パラメータは引数またはオプションのいずれかになります。
この形式では、コマンドライン要素間の区切り文字は空白文字で、行末の区切り文字は改行文字です。これは広く使用されている規則ですが、普遍的ではありません。
CLI は一般に、構文とセマンティクスで構成されていると考えられます。構文は、すべてのコマンドが従う必要がある文法です。オペレーティング システムの場合、DOSとUnix はそれぞれ、すべてのコマンドが従う必要がある一連のルールを独自に定義します。組み込みシステムの場合、 Nortel、Juniper Networks、Cisco Systemsなどの各ベンダーが独自のルール セットを定義します。これらのルールは、ユーザーがコマンド システム内を移動する方法も指示します。セマンティクスは、どのような種類の操作が可能か、どのような種類のデータに対してこれらの操作を実行できるか、および文法がこれらの操作とデータをどのように表すか (構文の記号的な意味) を定義します。
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は事実上、動詞、how は副詞(たとえば、コマンドは詳細に実行するか静かに実行するか)、toFiles はコマンドが作用するオブジェクト(通常は 1 つ以上のファイル)>です。3 番目の例の はリダイレクト演算子であり、コマンドラインインタープリタに、コマンドの出力を自身の標準出力(画面)ではなく、指定されたファイルに送信するように指示します。これにより、ファイルが上書きされます。 を使用すると、>>出力がリダイレクトされ、ファイルに追加されます。別のリダイレクト演算子は縦棒(|)で、これは1 つのコマンドの出力が次のコマンドの入力になるパイプラインを作成します。[14]
CLI とリソース保護
PATH環境変数に現れるパスを変更することで、利用可能なコマンドのセットを変更できます。Unix では、コマンドも実行可能ファイルとしてマークする必要があります。パス変数内のディレクトリは、指定された順序で検索されます。パスの順序を変更すると、たとえば、デフォルトが逆の場合、\OS2\E.EXE ではなく \OS2\MDOS\E.EXE を実行できます。実行可能ファイルの名前を変更することもできます。たとえば、お気に入りのエディターの名前を EDIT に変更することがよくあります。
コマンド ラインを使用すると、高度な内部コマンドへのアクセスなど、使用可能なコマンドを制限できます。Windows CMD.EXE はこれを行います。多くの場合、シェアウェア プログラムでは、プロンプトから「管理者がバッチ ファイルの実行を無効にしました」というコマンドを出力するなど、コマンドの範囲が制限されます。[説明が必要]
ネットワーク ルータなどの一部の CLI には、モードの階層があり、各モードでは異なるコマンド セットがサポートされています。コマンド セットは、セキュリティ、システム、インターフェイスなどとの関連でグループ化されています。これらのシステムでは、ユーザーは一連のサブモードを経由する場合があります。たとえば、CLI にinterfaceとsystemという 2 つのモードがある場合、ユーザーは interfaceコマンドを使用してインターフェイス モードに入る場合があります。この時点では、ユーザーがインターフェイス モードを終了してシステム モードに入るまで、システム モードのコマンドにはアクセスできない場合があります。
コマンドプロンプト

コマンドプロンプト(または単にプロンプト)は、コマンドラインインターフェースでコマンドを受け入れる準備ができていることを示すために使用される(1つ以上の)文字のシーケンスです。文字通り、ユーザーにアクションを実行するよう促します。プロンプトは通常、、、、[15] [16] 、または [17] のいずれかの文字で終わり、$現在の作業ディレクトリのパスやホスト名などの他の情報が含まれることがよくあり%ます。
# :>-
多くのUnixおよび派生システムでは、ユーザーが通常のユーザーの場合、プロンプトは通常$またはで終わりますが、ユーザーがスーパーユーザー(Unix 用語では「root」) の場合、 で終わります。
%#
エンド ユーザーは、多くの場合プロンプトを変更できます。環境に応じて、プロンプトに色、特殊文字、その他の要素 (現在の時刻、ユーザー、シェル番号、作業ディレクトリの変数や関数など) を含めることができます。これにより、たとえば、プロンプトの情報量を増やしたり、見た目を良くしたり、さまざまなマシン上のセッションを区別したり、コマンドの現在のネスト レベルを示したりすることができます。一部のシステムでは、プロンプトの定義内の特殊トークンを使用して、プロンプトを表示しながらコマンド ライン インタープリターによって外部プログラムを呼び出すことができます。
DOS の COMMAND.COM および Windows NT のcmd.exeでは、ユーザーは コマンドを発行するか、対応する環境変数PROMPTの値を直接変更することでプロンプトを変更できます。ほとんどの最新システムのデフォルトである スタイルは、たとえば で取得されます。古い DOS システムのデフォルトは だけで取得されますが、一部のシステムでは、フロッピー ドライブ A: または B: で使用しない限り、これによって新しいスタイルが生成されます。これらのシステムでは を使用すると、自動デフォルトを上書きして、古いスタイルに明示的に切り替えることができます。
%PROMPT% C:\>PROMPT $P$GC>PROMPTC:\>PROMPT $N$G
多くのUnixシステムでは$PS1変数(プロンプト文字列1)が使用されていますが[18]、他の変数もプロンプトに影響を与える可能性があります(使用するシェルによって異なります)。Bashシェルでは、次のような形式のプロンプトが使用されます。
[時間] ユーザー@ホスト: work_dir $
次のコマンドを発行することで設定できます
エクスポートPS1 = '[\t] \u@\H: \W $'
zshでは、変数はディスプレイの右側に
$RPROMPTあるオプションのプロンプトを制御します。テキスト入力の位置は変わらないため、実際のプロンプトではありません。プロンプトと同じ行に右揃えで情報を表示するために使用されます。
RISC OSではコマンドプロンプトはシンボルであるため、(OS) CLIコマンドはスターコマンド*と呼ばれることが多い。[19]また、コマンドの前に. を付けることで、他のコマンドライン( BBC BASICコマンドラインなど)から同じコマンドにアクセスすることもできる。
*
引数

コマンドライン引数またはパラメータは、プログラムの起動時にプログラムに提供される情報項目です。[20]プログラムには、情報のソースまたは宛先を識別したり、プログラムの動作を変更したりする多くのコマンドライン引数を含めることができます。
コマンド プロセッサがアクティブな場合、プログラムは通常、その名前に続いてコマンド ライン引数 (ある場合) を入力することによって呼び出されます。たとえば、UnixおよびUnix ライクな環境では、コマンド ライン引数の例は次のようになります。
rm ファイル.s
file.sは、rmプログラムにという名前のファイルを削除するように指示するコマンドライン引数ですfile.s。
C、C++、Javaなどの一部のプログラミング言語では、プログラムがコマンドライン引数をメイン関数の文字列パラメータとして扱うことで解釈できるようにしています。[21] [22] Pythonなどの他の言語では、特にコマンドライン引数については、モジュールを通じてオペレーティングシステム固有のAPI(機能)を公開しています。
sys sys.argv
Unix 系オペレーティング システムでは、ファイル名の代わりに使用される単一のハイフンは、プログラムが標準入力からのデータを処理するか、標準出力にデータを送信するかを指定する特別な値です。
コマンドラインオプション
コマンドラインオプションまたは単にオプション(フラグまたはスイッチとも呼ばれる)は、コマンドの動作を変更します。効果はコマンドのプログラムによって決まります。オプションはコマンドラインでコマンド名の後にスペースで区切って続きます。最初のオプションの前のスペースは必ずしも必要ではありません。たとえば、 DOSのDir/?およびは、 DIRコマンドの利用可能なオプションを一覧表示するのとDIR /?同じ効果があります[17]dir --help 。一方、 (Unixの多くのバージョンでは)オプションの前に少なくとも1つのスペースが必要です(大文字と小文字が区別されます)。
オプションの形式は、オペレーティング システムによって大きく異なります。ほとんどの場合、構文はオペレーティング システムの要件ではなく慣例によるものです。コマンド ライン全体は、単にプログラムに渡される文字列であり、インタープリターがコマンド名の終了位置と引数およびオプションの開始位置を判断できる限り、プログラマーが望む方法で処理できます。
いくつかの規則を説明するために、ディレクトリ内のファイルのリスト表示に関連するコマンドライン オプションの代表的なサンプルをいくつか示します。
コマンドの省略
Multicsでは、コマンドライン オプションとサブシステム キーワードを省略できます。このアイデアは、短縮キーワード (例: STRINGRANGE の STRG、DECLARE の DCL) を持つPL/I プログラミング言語に由来しているようです。たとえば、Multicsフォーラムサブシステムでは、-long_subjectパラメータを-lgsjと省略できます。Multics コマンドも省略されることが一般的で、通常は単語の頭文字をアンダースコアでつなげてコマンド名を形成します (例: delete_iacl_dirのdidの使用) 。
他のシステムでは、コマンド名の最初の文字の一部を一意に識別できるように許可するなど、省略形が自動的に使用されます (SUの省略形などSUPERUSER)。一方、特定の省略形が事前にプログラムされている場合 (COMMAND.COM の など) や、バッチ スクリプトやエイリアスによってユーザーが定義する場合もありMDますMKDIR( tcshalias 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文字のオプションを組み合わせることができるものもありますが、[17]そうでないものもあります。スイッチは、[17]
-fAと同じ意味になる場合もあれば、間違っている場合もあり、有効ではあるが異なるパラメータである場合もあります。-f -A
DOS、OS/2、Windowsでは、スラッシュ ( /) が最もよく使用されますが、ハイフンマイナスも時々使用されます。多くのバージョンの DOS (MS-DOS/PC DOS 2.xx 以降、 5.0 以降のDR-DOSのすべてのバージョン、PTS-DOS、Embedded DOS、FreeDOS、RxDOS )では、使用されるスイッチ文字( switcharまたはswitchcharと省略される場合もあります) は、システム コール( INT 21h /AX=3700h)から返される値によって定義されます。この API によって返されるデフォルトの文字は です/が、上記のシステムではハイフンマイナスに変更できます。ただし、Datalight ROM-DOS および MS-DOS/PC DOS 5.0 以降では、常に/この呼び出しから が返されます (SwitChar 機能を再度有効にする多くのTSRの 1 つがロードされていない限り)。これらのシステムの一部(MS-DOS/PC DOS 2.xx、DOS Plus 2.1、DR-DOS 7.02 以降、PTS-DOS、Embedded DOS、FreeDOS、および RxDOS)では、CONFIG.SYSのSWITCHディレクティブによって設定を事前構成することもできます。General Software の Embedded DOS では、同じ目的で SWITCH コマンドが提供されており、4DOSではを介して設定を変更できます。[23] DR-DOS では、設定が から変更された場合、 PROMPTパラメータの表示の最初のディレクトリ区切り文字がスラッシュ(DOS、FlexOS、4680 OS、4690 OS、OS/2、および Windows でも有効なディレクトリ区切り文字)に変わり、変更を示す視覚的な手がかりとなります。[17]また、現在の設定は組み込みのヘルプ画面にも反映されます。[17] DR-DOS COMMAND.COMの一部のバージョンでは、現在の設定を表示するためのPROMPTトークンもサポートされています。DR-DOS 7.02以降のCOMMAND.COMでは、移植可能なバッチジョブを記述できるように、という名前の疑似環境変数も提供されています。 [24] [25]いくつかの外部DR-DOSコマンドでは、システム設定を上書きするための
環境変数もサポートされています。SETDOS /W:n/\$G/$/%/% %SWITCHAR%
ただし、多くのプログラムは、/コマンドライン引数を解析する前にスイッチ設定を取得するのではなく、 のみを使用するようにハードワイヤードされています。 主に Unix 系システムのポートなど、ごく少数のプログラムは、スイッチ文字が "-" に設定されていない場合でも "-" を受け入れるようにプログラムされています (たとえばnetstat、Microsoft Windowspingに付属の および は、使用可能なオプションを一覧表示する /? オプションを受け入れますが、一覧には "-" 規則が指定されます)。
Unix系システムにおけるオプション規約
Unix系システムでは、オプションはASCIIのハイフンマイナスで始まります。新しい(およびGNU)規則では、オプションの使用を識別するために2つのハイフンと単語(例--create)を使用しますが、古い規則(頻繁に使用されるオプションのオプションとして引き続き使用可能)では、1つのハイフンと1つの文字(例-c)を使用します。1つのハイフンの後に2つ以上の文字が続く場合は、2つのオプションが指定されていることを意味している可能性があり、2番目以降の文字が最初のオプションのパラメータ(ファイル名や日付など)であることを意味する可能性があります。[26]
2 つのハイフンマイナス文字に文字が続いていない場合 ( --)、残りの引数をオプションとして扱わないことを示している可能性があります。これは、ファイル名自体がハイフンで始まる場合や、追加の引数が内部コマンド (例 : sudo ) 用である場合などに便利です。2 つのハイフンマイナス文字は、より説明的なオプション名が使用されている長いオプションの前に付けるために使用されることもあります。これは、 GNUソフトウェアの一般的な機能です。getopt関数とプログラム、およびgetoptsコマンドは、通常、コマンドライン オプションの解析に使用されます。
Unix コマンド名、引数、およびオプションでは大文字と小文字が区別されます (ただし、他のオペレーティング システムの一般的なコマンドが Unix に移植されているいくつかの例を除きます)。
他のシステムにおけるオプション規約
FlexOS、4680 OS、4690 OSを使用します-。
通常はCP/M[が使用されます。
会話型モニター システム(CMS) では、コマンドの末尾のオプションを他の引数から分離するために、1 つの左括弧を使用します。たとえば、次のコマンドのオプションは、ターゲット ファイルが存在する場合はそれを置き換え、ソース ファイルの日付と時刻をコピーに保持することを示します。
COPY source file a target file b (REPLACE OLDDATE)
Data GeneralのRDOS、AOSなどのオペレーティング システムの CLI、およびBusiness Basicに付属のバージョンの CLI では、/スイッチ文字として のみが使用され、大文字と小文字が区別されず、一部の引数のローカル スイッチによって解釈方法を制御できます (マクロ アセンブラ コマンドにユーザー シンボルを追加するMAC/U LIB/S A B C $LPT/Lグローバル オプションがあるなどU)。ただし、2 つのローカル スイッチがあり、1 つはパス 2 でスキップする LIB を指定するスイッチ、もう 1 つはプリンタ $LPT にリストを直接送信するスイッチです。
組み込みの使用法ヘルプ
CLIに対する批判の1つは、利用可能なアクションに関する手がかりがユーザーに対して不足していることである。[引用が必要]対照的に、GUIは通常、メニュー、アイコン、またはその他の視覚的な手がかりを使用して、利用可能なアクションをユーザーに通知します。[引用が必要]この制限を克服するために、多くのCLIプログラムは、通常、引数なしで呼び出された場合、または、、、、、、、、、、、またはのいずれかで呼び出された場合に、使用方法メッセージを表示します。[17] [27] [28]?-?-h-H/?/h/H/Help-help--help
ただし、使用方法のヘルプが表示されることを期待してパラメータなしでプログラム名を入力すると、コマンドライン引数がオプションであるプログラムやスクリプトが、それ以上の通知なしに実行されるため、危険な場合があります。
少なくともヘルプパラメータには望ましいが、プログラムは上記に例示したオプションのリードイン文字をすべてサポートするわけではない。デフォルトのコマンドラインオプション文字を から に変更できる DOS では、/プログラムは現在の設定を判断するためにSwitChar- API を照会することがある。したがって、プログラムがそれらすべてをサポートするようにハードワイヤードされていない場合、ユーザーは確実にヘルプを要求するためにも現在の設定を知る必要があるかもしれない。SwitChar が に変更され、文字が DOS コマンドラインでも代替パス区切り文字として受け入れられる場合、プログラムはや などのオプションをヘルプパラメータではなくパスとして誤って解釈することがある。[17]ただし、最初のパラメータまたは唯一のパラメータとして指定された場合、ほとんどの DOS プログラムは慣例により、現在の SwitChar 設定に関係なく、それをヘルプ要求として受け入れる。[17] [23]-//h/H
場合によっては、プログラムに対して異なるレベルのヘルプを選択できる。これをサポートするプログラムの中には、ヘルプパラメータのオプション引数として詳細度レベルを指定できるもの(/H:1、/H:2など)や、ヘルプパラメータについては疑問符付きの短いヘルプのみを表示し、その他のヘルプオプションについてはより長いヘルプ画面を表示するものもある。[29]
プログラムによっては、問題のパラメータをヘルプパラメータの引数として指定するか、その逆(または/H:W(プログラムでサポートされている別のパラメータであると/W:?仮定))することで、受け入れられるパラメータに関する追加のヘルプやより具体的なヘルプが利用できる場合があります。 [30] [31] [28] [27] [29] [nb 1]/W
helpパラメータと似ていますが、あまり一般的ではないため、、、、などのaboutパラメータを指定して呼び出されると、プログラム自体に関する追加情報(モード、ステータス、バージョン、作成者、ライセンス、連絡先情報など)を提供するプログラム-!もあります。[27]/!-about--about
?および文字は通常、コマンド ラインで他の目的にも使用されるため!、すべてのシナリオで使用できるとは限りません。したがって、対応するヘルプ情報にアクセスするための唯一のオプションとしては使用しないでください。

プログラムの組み込みの内部ヘルプで提供されるものよりも詳細なヘルプが必要な場合、多くのシステムでは、呼び出しパラメータとしてコマンド名を受け入れ、外部ヘルプ システムを呼び出す専用の外部 " コマンド (または同様のコマンド) がサポートされています。
help command
DR-DOS ファミリでは、コマンドの代わりにCOMMAND.COMプロンプトで/?またはと入力すると、使用可能な内部コマンドの動的に生成されたリストが表示されます。 [17] 4DOSとNDOS は、プロンプトで と入力することで同じ機能をサポートしています[23] (これは、DR-DOS COMMAND.COM の新しいバージョンでも受け入れられます)。内部コマンドは、 を介して個別に無効にしたり、再度有効にしたりできます。[23]これに加えて、DR-DOS COMMAND.COM の新しいバージョンの一部では、使用可能な組み込み疑似環境変数のリストを表示するコマンドも受け入れます。クイックヘルプリファレンスとしての目的の他に、これはバッチジョブで、基礎となるコマンドラインプロセッサの機能を照会するために使用できます。[17]/H ?SETDOS /I?%
コマンド記述構文
組み込みの使用法ヘルプやマニュアルページでは、有効なコマンド形式を説明するために短い構文が一般的に使用されています: [32] [33] [34] [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では、埋め込みスペース (ディレクトリ名など) が一般的であるため、引用符を使用する必要があることがよくあります。
コマンドラインインタープリター
ほとんどのユーザーはシェルを対話型のコマンド インタープリタと考えていますが、実際には各ステートメントがコマンドを実行するプログラミング言語です。コマンド実行の対話型の側面とプログラミングの側面の両方を満たす必要があるため、シェルは設計だけでなく歴史によっても形成された奇妙な言語です。
— ブライアン・W・カーニハン&ロブ・パイク[35]
コマンドラインインタープリタ( CLI )という用語は、ユーザーが入力したり、ファイルや他の種類のデータストリームから読み取ったりする一連のテキスト行を解釈するように設計されたコンピュータプログラムに適用されます。解釈のコンテキストは通常、特定のオペレーティングシステムまたはプログラミング言語のいずれかです。
コマンドライン インタープリタを使用すると、ユーザーはさまざまなコマンドを非常に効率的に (多くの場合簡潔に) 発行できます。そのためには、ユーザーはコマンドの名前とそのパラメータ、および解釈される言語の構文を知っている必要があります。
Unix の#!メカニズムと OS/2 の EXTPROC コマンドは、バッチ ファイルを外部プロセッサに渡すことを容易にします。これらのメカニズムを使用して、専用のコマンド プロセッサを作成し、バッチ ファイル内にある外部データ ファイルを処理することができます。
OS/2プレゼンテーション マネージャーや Microsoft Windows の初期バージョンなどの多くのグラフィカル インターフェイスでは、コマンド ラインを使用してヘルパー プログラムを呼び出し、ドキュメントやプログラムを開きます。コマンドは、グラフィカル シェル[説明が必要]またはレジストリやOS/2 OS2USER.INIファイルなどのファイルに保存されます。
初期の歴史


初期のコンピュータは対話型の入出力デバイスをサポートしておらず、コンピュータ オペレータとの通信には、多くの場合、感知スイッチとランプに依存していました。これは、一度に 1 つのプログラムを実行するバッチシステムには適しており、多くの場合、プログラマがオペレータとして機能していました。また、ランプとスイッチを 1 つのマシン命令でテストおよび設定できるため、オーバーヘッドが低いという利点もありました。後に、オペレータがシステムと通信できるように、 単一のシステム コンソールが追加されました。
1960 年代以降、ユーザーとコンピューターのやり取りは主にコマンド ライン インターフェイスによって行われ、最初はTeletype Model 33 ASR などのマシンで行われ、その後VT52などの初期のCRTベースのコンピューター端末でも行われるようになりました。
これらのデバイスはすべて純粋にテキストベースであり、グラフィックや画像を表示する機能はありませんでした。[nb 3]ビジネスアプリケーションプログラムではテキストベースのメニューが使用されていましたが、より一般的な対話ではコマンドラインがインターフェイスでした。
1964年頃、ルイ・プーザンは、互換タイムシェアリングシステム(CTSS)の以前のより単純な機能を基にして、Multicsにシェルの概念と名前を導入しました。[36] [より良い情報源が必要]
1970 年代初頭から、Unixオペレーティング システムは強力なコマンド ライン環境の概念を採用し、あるコマンドの出力を別のコマンドの入力としてパイプする機能を導入しました。また、Unix には、カスタム コマンドのように動作する シェル スクリプトとしてコマンドの文字列を保存して再実行する機能もありました。
コマンドラインは、Commodore PET、Apple II、BBC Microなどの初期の家庭用コンピュータの主要なインターフェイスでもあり、ほとんどの場合、 BASICインタープリタ の形式をとっていました。より強力なビジネス向けマイクロコンピュータがCP/Mとともに登場し、その後IBM PCなどのDOSコンピュータが登場すると、コマンドラインは出力のグロビングやパイプなど、Unix シェルの構文や機能の一部を借用し始めました。
コマンドラインが最初に真剣に挑戦されたのは、1983年のApple Lisaと1984年のApple Macintoshで使用されたPARC GUIアプローチでした。少数のコンピュータユーザーはGEOSやWindows 3.1などのGUIを使用していましたが、大多数のIBM PCユーザーは1995年にWindows 95がリリースされるまでCOMMAND.COMシェルをGUIに置き換えませんでした。 [37] [38]
オペレーティングシステムシェルとしての現代的な使用法
現在、ほとんどの非熟練のコンピューター ユーザーは GUI のみを使用していますが、上級ユーザーは強力なコマンド ライン環境にアクセスできます。
- DCL言語を使用するデフォルトの VAX/VMS コマンド シェルは、PC-DCL や Acceler8 DCL Lite など、少なくとも 3 回 Windows システムに移植されています。Unix コマンド シェルは、VMS および DOS/Windows 95 および Windows NT タイプのオペレーティング システムに移植されています。
- COMMAND.COMは、 MS-DOS、IBM PC DOS 、およびDR-DOS、SISNE plus、PTS-DOS、ROM-DOS、FreeDOSなどのクローンのコマンドライン インタープリターです。
- Windowsリソース キットおよびWindows Services for UNIX には、Korn シェルと Bourne シェルのほか、Perl インタープリタが含まれています (Services for UNIX には、それ以降のバージョンではActiveState ActivePerl、バージョン 1 および 2 ではInterix と、Microsoft によってコンパイルされたシェルが含まれています)
- IBM OS/2 (およびeComStationやArcaOSなどの派生製品) には、cmd.exeプロセッサがあります。これは、 COMMAND.COMコマンドをREXXに拡張してコピーします。
- cmd.exe は、 Windows NTオペレーティング システム ストリームの一部です。
- さらにもう 1 つの cmd.exe は、 Windows CE 3.0用の簡素化されたシェルです。
- PocketDOS と呼ばれる MS-DOS タイプのインタープリタが Windows CE マシンに移植されました。最新のリリースは MS-DOS 6.22 とほぼ同一で、Windows 1、2、3.0、QBasicおよびその他の開発ツール、4NT、4DOS も実行できます。最新のリリースには、MS-DOS 6.22、PC DOS 7、DR DOS 3.xx などのシェルが含まれています。
- Windowsユーザーは、コマンドラインからCScriptインターフェースを使用してプログラムを切り替えられる。PowerShellはコマンドラインインターフェースを提供するが、そのアプレットはシェルスクリプトで書かれていない。Unixシェルの実装は、 POSIXサブシステム、[39] Cygwin、MKS Toolkit、UWIN、Hamilton Cシェル、その他のソフトウェアパッケージの一部としても利用できる。これらの相互運用性ツールで利用できるシェルには、csh、ksh、sh、Bash、rsh、tclsh、およびそれほど一般的ではないがzsh、pshがある。
- PHPの実装には、php-cli と呼ばれる対話型使用のためのシェルがあります。
- 標準のTcl/Tk には、Tclsh と Wish という 2 つの対話型シェルがあり、後者は GUI バージョンです。
- Python、Ruby、Lua、XLNT、およびその他のインタープリタにも、対話型で使用するためのコマンド シェルがあります。
- FreeBSD は、スーパーユーザーのデフォルトの対話型シェルとしてtcsh を使用し、デフォルトのスクリプト シェルとしてash を使用します。
- 多くのLinux ディストリビューションには、Unix シェルの Bash 実装が含まれています。
- Apple macOSと一部の Linux ディストリビューションではzsh が使用されます。以前は、macOS ではtcshと Bash を使用していました。
- 組み込み Linux (およびその他の組み込みUnix ライクな) デバイスでは、多くの場合、 Busyboxの一部として、Unix シェルのAsh実装が使用されます。
- Androidはmkshシェル[40] [41]を使用します。これは、古いAndroidバージョンで使用されていたash [42]から派生したシェルを置き換え、別のツールボックス[43]バイナリからのコマンドが追加されています。
- HarmonyOS、OpenHarmony 、Oniroは、デフォルトのシェルと並行して、サブシステムのLinuxカーネルに接続されたサードパーティのツールボックス互換性システムのコマンドをexecコマンドとともに使用します。[44] [45]
- Cisco IOS [46] 、Junos [47]などのルータは、一般的にコマンドラインから設定されます。
- Plan 9オペレーティング システムは、 Bourneシェルに似た設計のrcシェルを使用します。
スクリプト
ほとんどのコマンドライン インタープリタは、さまざまな程度でスクリプトをサポートしています。(結局のところ、コマンドライン インタープリタは解釈型プログラミング言語のインタープリタですが、多くの場合、言語は特定のコマンドライン インタープリタに固有です。) コマンドライン インタープリタは、解釈する言語で記述されたスクリプト (シェル スクリプトまたはバッチ ファイルと呼ばれることもあります) を解釈します。一部のコマンドライン インタープリタは、独自の言語に加えて、 REXXなどの他の言語のインタープリタ エンジンも組み込んでおり、それらの言語のスクリプトをコマンドライン インタープリタ自体の中で直接実行できます。
逆に、スクリプトプログラミング言語、特にeval 関数を持つ言語 (REXX、 Perl、Python、Ruby、Jythonなど) は、コマンドラインインタープリタとフィルタを実装するために使用できます。いくつかのオペレーティングシステム(最も有名なのはDOS ) では、このようなコマンドインタープリタは、付属のコマンドラインインターフェイスよりも柔軟なコマンドラインインターフェイスを提供します。その他の場合では、このようなコマンドインタープリタは、言語のユーザーインターフェイスと入出力機能を使用して、高度にカスタマイズされたユーザーインターフェイスを提供できます。
その他のコマンドラインインターフェース
コマンド ラインは、プログラムとユーザーの間のインターフェイスを提供します。この意味で、コマンド ラインはダイアログ ボックスの代替手段です。エディターとデータベースはコマンド ラインを提供し、そこで代替コマンド プロセッサが実行される場合があります。一方、コマンド ラインにオプションがあり、ダイアログ ボックスが開く場合があります。最新バージョンの「Take Command」にはこの機能があります。DBase はダイアログ ボックスを使用してコマンド ラインを構築し、使用前にさらに編集することができます。
BASIC、diskpart、Edlin、QBASIC などのプログラムはすべてコマンドライン インターフェイスを提供しており、その一部はシステム シェルを使用します。Basic は、8 ビット Intel コンピューターのデフォルト インターフェイスをモデルにしています。計算機は、コマンドライン インターフェイスまたはダイアログ インターフェイスとして実行できます。
Emacs は、ミニバッファの形式でコマンドライン インターフェイスを提供します。コマンドと引数は、Emacs の標準テキスト編集サポートを使用して入力でき、出力は別のバッファに表示されます。
AdventureやKing's Quest 1-3など、ユーザーが画面の下部にコマンドを入力することに依存するテキスト モード ゲームは多数あります。キャラクターを操作するには、「指輪を取得」や「見る」などのコマンドを入力します。プログラムは、キャラクターが指輪をどのように見ているかを説明するテキストを返したり、アクションを実行したりします。ダグラス アダムの同名の本に基づいたインタラクティブ フィクションであるテキスト アドベンチャー The Hitchhiker's Guide to the Galaxyは、テレタイプ スタイルのコマンド ライン ゲームです。
これらのインターフェースの中で最も注目すべきは、標準ストリームインターフェースです。これにより、1 つのコマンドの出力を別のコマンドの入力に渡すことができます。テキスト ファイルも、どちらの目的にも使用できます。これにより、パイプ、フィルター、リダイレクトのインターフェースが提供されます。Unix では、デバイスもファイルであるため、stdin、stdout、stderr に使用されるシェルの通常のファイルの種類はttyデバイス ファイルです。
別のコマンドライン インターフェイスでは、シェル プログラムがヘルパー プログラムを起動して、ドキュメントを起動したり、プログラムを開始したりできます。コマンドはシェルによって内部的に処理され、その後、別のプログラムに渡されてドキュメントが起動されます。Windows および OS/2 のグラフィカル インターフェイスは、他のプログラム (コンソールまたはグラフィカル) に渡されるコマンドラインに大きく依存しており、通常はユーザー コンソールを表示せずにコマンドラインを処理します。
OS/2 E エディタやその他の IBMエディタなどのプログラムは、通常はシェル用のコマンドラインを処理でき、出力はドキュメント ウィンドウに直接配置されます。
ウェブブラウザのURL入力フィールドはコマンドラインとして使用できます。ウェブアプリの起動 、ブラウザ設定へのアクセス、検索の実行に使用できます。 「インターネットのコマンドライン」と呼ばれているGoogleは、既知の形式の検索パラメータを検出すると、ドメイン固有の検索を実行します。[48]この機能は、検索がブラウザフィールドからトリガーされた場合でも、Googleのウェブサイトからトリガーされた場合でも存在します。
ブラウザ内でスタンドアロンのWebアプリとして、またはより大きなアプリケーションの一部としてコマンドラインアプリケーションを作成できるJavaScriptライブラリがあります。 [49]そのようなWebサイトの例としては、 DuckDuckGoのCLIインターフェースがあります。[50]また、ブラウザからサーバーのコマンドラインインターフェースにアクセスできる WebベースのSSHアプリケーションもあります。
多くの PCビデオ ゲームには、コンソールと呼ばれるコマンド ライン インターフェイスが搭載されています。これは通常、ゲーム開発者が開発中に使用したり、mod 開発者がデバッグ目的や、ゲームの一部を不正に操作したりスキップしたりするために使用します。
参照
- コマンドシェルの比較
- コマンドラインインタープリタのリスト
- コンソールアプリケーション
- 通訳指示
- 読み取り-評価-印刷ループ
- シェルスクリプト
- コマンドを実行
- グラフィカルユーザーインターフェース § 他のインターフェースとの比較
- 最初はコマンドラインでした
注記
- ^ 一例として、DR-DOS 7.03 DEBUGコマンドの包括的な内部ヘルプ システムがあります。これは、
??デバッグ プロンプトで (デフォルトの?概要だけでなく) から呼び出すことができます。特定のヘルプ ページは?n(ここでn、はページ番号) から選択できます。さらに、 の後にコマンド名を指定すると?、特定のコマンドのヘルプを表示できます。fe は、?Dさまざまなダンプ コマンド (など) のヘルプを呼び出しますD。これらの機能の一部は、DR DOS 3.41 SID86 および GEMSID で既にサポートされていました。 - ^ DOSのようなオペレーティング システムのコマンド構文を説明する際の注目すべき違い: Windows Server 2003 R2 のドキュメントでは、「ユーザーが入力する必要がある情報」に斜体文字が使用されていますが、Windows Server 2008 のドキュメントでは山括弧が使用されています。斜体は内部ヘルプコマンドでは表示できませんが、山括弧には問題はありません。
- ^ ASCIIアートを除く。
参考文献
- ^ 「Unix シェル」。2007 年 11 月 8 日にオリジナルからアーカイブ
。OS カーネルと緊密に統合された「モニター」ではなく、交換可能な「コマンド シェル」を持つという概念は、Multics に起因すると考えられています。
- ^ ab 「The Origin of the Shell」。www.multicians.org。2017年12月21日時点のオリジナルよりアーカイブ。2017年4月12日閲覧。
- ^ Metz, Cade (2013-01-03). 「インターネットの長らく行方不明だったフランス人のおじさんにボンジュールを言おう」Wired . 2017-07-31閲覧。
- ^ Mazières, David (2004 年秋)。「MULTICS - 最初の 7 年間」。Advanced Operating Systems。スタンフォード大学コンピュータサイエンス学部。2014 年 11 月 23 日時点のオリジナルよりアーカイブ。2017 年 8 月 1 日閲覧。
- ^ ab Jones, M. (2011-12-06). 「Linux におけるシェルの進化」. developerWorks . IBM . 2017-07-08 時点のオリジナルよりアーカイブ。2017-08-01に取得。
- ^ 「グラフィカルユーザーインターフェースの歴史」。KASS 。 2024年3月24日閲覧。
- ^ Singh, Amit (2006-06-19). Mac OS X 内部: システムアプローチ. Addison-Wesley Professional. ISBN 978-0-13-270226-3。
- ^ 「1. コマンドラインと環境」。Pythonドキュメント。2024 年 8 月 5 日閲覧。
- ^ 「GNU BASH リファレンス」。2010 年 12 月 3 日時点のオリジナルよりアーカイブ。2015年 12 月 20 日閲覧。
- ^ 「Microsoft Windows コマンド シェルの概要」。2015 年 9 月 5 日時点のオリジナルよりアーカイブ。2015年 7 月 12 日閲覧。
- ^ 「シェル組み込みコマンドリスト」。Linuxハンドブック。2023 年 7 月 5 日。2024 年 8 月 5 日に閲覧。
- ^ B, Jason. 「Linux で $PATH 変数を設定する方法 | Opensource.com」。opensource.com。2024年 8 月 5 日閲覧。
- ^ JasonGerend (2023-02-03). 「path」. learn.microsoft.com . 2024-08-05に閲覧。
- ^ 「Learning the bash Shell, Second Edition [Book]」。www.oreilly.com 。2024年8月5日閲覧。
- ^ SID ユーザーズガイド(PDF) . Digital Research . 1978. 595-2549. 2019-10-20 にオリジナルからアーカイブ(PDF)されました。2020-02-06に取得。(4+69ページ)
- ^ SID-86 User's Guide for CP/M-86 (2 ed.). Digital Research . 1982 年 8 月 [1982 年 3 月]. SID86UG.WS4. 2019 年 10 月 20 日時点のオリジナルよりアーカイブ。2020年 2 月 6 日閲覧。[1] (注:エマニュエル・ロッシュによるマニュアルの再入力版で、Q、SR、Zコマンドが追加されています。)
- ^ abcdefghijk ポール、マティアス R. (1997-07-30)。 「NWDOS-TIP – Novell DOS 7 に関するヒントとコツ、Blick の詳細、バグと回避策」。MPDOSTIP。リリース 157 (ドイツ語) (第 3 版)。 2017-09-10 のオリジナルからアーカイブ。2014 年 9 月 6 日に取得。(注: NWDOSTIP.TXT はNovell DOS 7およびOpenDOS 7.01に関する包括的な作業であり、多くの文書化されていない機能と内部の説明が含まれています。これは、2001 年まで維持され、当時多くのサイトで配布されていた、著者のさらに大規模な MPDOSTIP.ZIP コレクションの一部です。提供されているリンクは、HTML に変換された NWDOSTIP.TXT ファイルの古いバージョンを指しています。)
- ^パーカー、スティーブ (2011)。「第 11 章: シェルの選択と使用」。シェル スクリプト : Linux、Bash などのエキスパート レシピ。プログラマーからプログラマーへ。インディアナポリス、米国: John Wiley & Sons。p. 262。ISBN 978-111816632-1
シェルには、PS1、P52、P53、PS4 という 4 つの異なるコマンド プロンプトがあります
。PSは Prompt String (プロンプト文字列) の略です。 - ^ RISC OS 3 ユーザーガイド(PDF) . Acorn Computers Limited . 1992-03-01. p. 125. 2017-01-09 にオリジナルからアーカイブ(PDF)されました。2017-04-12に取得。
- ^ nguyen-dows (2024-05-29). 「Windows ターミナルのコマンド ライン引数」. learn.microsoft.com . 2024 年 8 月 5 日閲覧。
- ^ 「C言語のコマンドライン引数」www.w3schools.in . 2024年8月5日閲覧。
- ^ 「Java のコマンドライン引数」。GeeksforGeeks。2016年 8 月16日。2024 年 8 月 5 日閲覧。
- ^ abcd Brothers, Hardin; Rawson, Tom ; Conn, Rex C .; Paul, Matthias R.; Dye, Charles E.; Georgiev, Luchezar I. (2002-02-27). 4DOS 8.00 オンラインヘルプ。
- ^ Paul, Matthias R. (1998-01-09). DELTREE.BAT R1.01 Extended file and directory delete. Caldera, Inc. 2019-04-08 のオリジナルからアーカイブ。2019-04-08に取得。
- ^ DR-DOS 7.03 WHATSNEW.TXT — DR-DOS 7.02 から DR-DOS 7.03 への変更。カルデラ社、 1998-12-24。 2019年4月8日のオリジナルからアーカイブ。2019年4月8日に取得。
- ^ 「引数構文 (GNU C ライブラリ)」。gnu.org。2021 年 6 月 18 日時点のオリジナルよりアーカイブ。2021 年 7 月 9 日閲覧。
- ^ abc Paul, Matthias R. (2002-05-13). "[fd-dev] mkeyb". freedos-dev . 2018-09-10 にオリジナルからアーカイブ。 2018-09-10に取得。
[…] CPI /H […] CPI [@] [@] [/?|/Help[:topic]] [/!|/About] […] [?|&] […] /?, /Help このヘルプ画面またはトピックの特定のヘルプを表示します (+) […] /!, /About 'About' 情報画面を表示します […] /Cpifile (+) .CPI/.CP ファイル名 <EGA.CPI>; 拡張子: <.CPI>; CPI.EXE=StdIn […] /Report レポート ファイル名 <'
'=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 パラメータの概要: […] ?、& オンライン編集モード (追加のパラメータ入力を求めるプロンプト) […] - ^ ab Paul, Matthias R. (2002-01-09). "SID86".ニュースグループ: comp.os.cpm . 2018-04-08取得。
[…]
DR-DOS 7.03
DEBUG は
依然として古い SID86.EXE に基づいているため、DEBUG 1.51 を実行し、デバッグ プロンプトから ?? で拡張ヘルプ システムに入ることをお勧めします。これにより、構文と機能のヘルプが 8 画面表示されます。これらの機能の一部は、以前の問題でもサポートされていました。 […]
- ^ ab Paul, Matthias R.; Frinke, Axel C. (2006-01-16). FreeKEYB - 高度な国際 DOS キーボードおよびコンソール ドライバー(ユーザー マニュアル) (v7 予備版).
- ^ CCI Multiuser DOS 7.22 GOLD オンライン ドキュメント。Concurrent Controls, Inc. (CCI)。1997-02-10。HELP.HLP。(注: シンボリック命令デバッガー SID86 は、 に関する短いヘルプ画面
?と に関する包括的なヘルプを提供します??。) - ^ Paul, Matthias R. (1997-05-24) [1991]. 「DRDOSTIP.TXT – Tips und Tricks für DR DOS 3.41 - 5.0」. MPDOSTIP (ドイツ語) (第47版). 2016-11-07にオリジナルからアーカイブ。 2016-11-07に取得。
- ^ 「The Open Group Base Specifications Issue 7、第 12.1 章 ユーティリティ引数構文」。The Open Group。2008年。2013 年 4 月 30 日時点のオリジナルよりアーカイブ。2013年 4 月 7 日に取得。 – Linux の規則と雑多なマニュアル(注: Unix 系オペレーティング システムでコマンドを記述するための規則)
- ^ 「コマンド シェルの概要」。Windows Server 2003 製品ヘルプ。Microsoft。2005年 1 月 21 日。2012 年 7 月 12 日にオリジナルからアーカイブ。2013年 4 月 7 日に取得。
- ^ 「コマンド ライン構文キー」。Windows Server 2008 R2 TechNet ライブラリ。Microsoft。2010年 1 月 25 日。2013 年 5 月 4 日時点のオリジナルからアーカイブ。2013年 4 月 7日取得。
- ^ カーニハン、ブライアン W. ;パイク、ロブ(1984) 。UNIXプログラミング環境。エングルウッド クリフス:プレンティス ホール。ISBN 0-13-937699-2。
- ^ Pouzin, Louis. 「The Origin of the Shell」. Multicians.org . 2017年12月21日時点のオリジナルよりアーカイブ。2013年9月22日閲覧。
- ^ 「15年後のWindows 95の発売を振り返る」 2010年8月24日。2015年2月18日時点のオリジナルよりアーカイブ。 2015年2月18日閲覧。
- ^ 「Windows の歴史」。windows.microsoft.com。2015年 3 月 1 日時点のオリジナルよりアーカイブ。
- ^ 「Windows POSIX シェル互換性」。2017 年 7 月 3 日時点のオリジナルよりアーカイブ。2017 年 8 月 26 日閲覧。
- ^ 「master - platform/external/mksh - Git at Google」。android.googlesource.com。2016年1月21日時点のオリジナルよりアーカイブ。2018年3月18日閲覧。
- ^ 「Android adb shell - ash または ksh?」. stackoverflow.com。 2017 年 7 月 2 日のオリジナルからアーカイブ。2018 年 3 月 14 日閲覧。
- ^ 「Android sh ソース」。GitHub。2012年12月17日時点のオリジナルよりアーカイブ。
- ^ 「Android ツールボックス ソース」。GitHub。
- ^ openharmony/third_party_toybox、OpenHarmony、2021-10-14、2024-07-07取得
- ^ "调测 - Shell介绍 - 《华為鸿蒙操作系统(OpenHarmony) v1.0 开発行者文档》 - 书栈网 · BookStack". www.bookstack.cn 。2024 年 7 月 7 日に取得。
- ^ 「Configuration Fundamentals Configuration Guide, Cisco IOS Release 15M&T」。Cisco 。2013-10-30。コマンドライン インターフェイスの使用。2016-11-18 にオリジナルからアーカイブ。2016-11-28に取得。Cisco
IOS コマンドライン インターフェイス (CLI) は、主要なユーザー インターフェイスです…
- ^ 「コマンドライン インターフェイスの概要」www.juniper.net。2003 年 9 月 8 日にオリジナルからアーカイブ。2018年 3 月 14 日に取得。
- ^ “Google strange goodness”. 2014年3月4日時点のオリジナルよりアーカイブ。2014年2月27日閲覧。
- ^ “jQuery Terminal Emulator”. 2021-04-20時点のオリジナルよりアーカイブ。2021-04-20に閲覧。
- ^ “DuckDuckGo TTY”. 2021年5月7日時点のオリジナルよりアーカイブ。2021年4月20日閲覧。
外部リンク
- DOS のルーツ David Hunter、IBM パーソナル コンピュータ用 Softalk、 1983 年 3 月。2000 年以降、Patersontech.com にアーカイブされています。
- コマンドライン リファレンス: Microsoft TechNet データベース「コマンドライン リファレンス」
