コンピュータシステムにおけるコマンド(英: command)とは、システムへの指示・指令あるいは命令のことである[1]。ジョブ(タスク)などをコンピュータに実行させるために使われる。コマンドはコンピュータ本体と周辺機器との間や、ソフトウェア間の通信時に与えられることもあれば、エンドユーザーから対話環境にて与えられることもある。
また、命令型プログラミング言語でも「コマンド」という用語を使うことがある[2]。 対話環境を持つオペレーティングシステム (OS) において、コマンドラインインタプリタ(シェル)が解釈し実行する文字列のことを「コマンド」と呼ぶ。多くの場合、OSコマンドは任意個の引数をとることができる。普通、引数は任意の文字列であるが、コマンドが動作する際の対象となるオブジェクト(ファイルなど)の指定と、コマンドの細かな動作を変更するオプションとに、概ね大別される。後者のオプション文字列には、Unixなど多くのシステムではハイフン - を、MS-DOS の標準コマンド等ではスラッシュ / を前置する、という慣習がある。オプションを省略した場合、既定値が使われる。 以下に挙げた例は、コマンドラインインタプリタ(Unix系のシェル)へのコマンドである。 以下は、別のコマンドラインインタプリタ(DOS、OS/2、Microsoft Windows のコマンドプロンプト)へのコマンドの例である。フラグの定義は環境によって差異があるが、概念は同じである。 C言語およびC++では、ホスト環境のコマンドプロセッサを起動してコマンドを実行することのできるsystem()関数が用意されている[3][4]。POSIXにはパイプを利用したストリームを開くpopen()関数も用意されている。これらの機能を利用すると、システムが提供するコマンドをアプリケーションソフトウェアで直接利用することも可能となる。これらはPerlやPythonのようなスクリプト言語にも用意されている。 しかし、ユーザーによって入力されたコマンド文字列を無害化するように配慮せず、任意のOSコマンドを実行できるようにしてしまった場合、攻撃者が悪意のあるコマンド文字列を入力することで実行環境への侵入・乗っ取りやシステム破壊を許してしまうセキュリティ脆弱性が発生することもある[5]。このような攻撃手法は「OSコマンドインジェクション」や「コマンドインジェクション」と呼ばれている[6]。 コンピュータに接続された周辺機器を制御するための指令を「コマンド」と呼ぶ。ソフトウェアはシリアル通信などの規格化されたインターフェイスを経由して、機器の仕様にしたがった情報を送ることで、コマンドを発行してハードウェアと通信する。例えばグラフィックスハードウェア (GPU) やプリンターに対する描画命令などが挙げられる。コマンドはハードウェアを高度に抽象化したAPIやデバイスドライバーを通じて発行されることもあり、その場合アプリケーションソフトウェア層ではコマンドの存在を意識する必要がないことも多い。 グラフィカルユーザーインターフェイス (GUI) の要素を操作することで、対応するアクションを発生させることを「コマンド」と呼ぶこともある。
OSコマンド
内部コマンドと外部コマンド「外部コマンド」を参照
例
cd /home/pete
ユーザーのカレントディレクトリを /home/pete に変更するコマンド。"cd" がコマンド本体、"/home/pete" が引数である。
echo "Hello World"
「Hello World」という文字列を標準出力ストリームに出力し表示するコマンド。この場合は単に画面にそれを表示する。"echo" がコマンド本体、"Hello World" が引数である。引用符は、"Hello" と "World" が別々の引数と解釈されるのを防ぐために使われている。
ls -l -t -r /bin
ls -ltr /bin
この2つのコマンドは同じタスクを実行する。/bin というディレクトリにあるファイルの一覧を表示する。"ls" がコマンド本体、"/bin" が引数で、3つのフラグ "l"、"t"、"r" を指定している。
cat ch1.txt ch2.txt
ch1.txt と ch2.txt というファイルの内容を表示する。"cat" がコマンド本体、"ch1.txt" と "ch2.txt" が引数である。
touch hoge.txt piyo.txt
hoge.txt と piyo.txt という2つのファイルを作成する。 "touch" がコマンド本体、 "hoge.txt" と "piyo.txt" が引数である。
dir
カレントディレクトリの内容を一覧表示する。"dir" がコマンド本体、"A" はフラグである。
type
ファイル readme.txt の内容を表示する。"type" がコマンド本体、"readme.txt" が引数である。"P" はパラメータである。
コマンドプロセッサの起動とセキュリティ脆弱性
周辺機器の制御コマンド
GUIにおけるコマンド
Size:16 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)』
担当:undef