COMMAND ファイル形式とは?
.command ファイルは、macOSのFinderがTerminal.appで直接開き、実行するように設定されているプレーンテキストのシェルスクリプトです。内容は シェルスクリプト と同一で、POSIXシェルのコマンドシーケンスと、オプションとして1行目にシバン(shebang)行が含まれます。.command 拡張子は動作を区別するためのもので、.command ファイルをダブルクリックするとTerminal.appが起動して新しいウィンドウでスクリプトが実行されますが、.sh ファイルをダブルクリックした場合はテキストエディタで開かれます。
.command ファイルをダブルクリックで実行できるようにするには、実行権限を設定する必要があります。Terminalで chmod +x yourscript.command を使用してください。インターネットからダウンロードしたファイルはmacOSのGatekeeperの対象となります。署名されていないスクリプトの初回実行時の警告を回避するには、右クリックして «開く» を選択してください。
シバンがない場合、macOSはデフォルトで /bin/sh を使用します。一般的なシバンは以下の通りです:
#!/bin/bash- Bashインタプリタ#!/bin/zsh- Zsh(Catalina 10.15以降のmacOSデフォルトシェル)#!/bin/sh- POSIX sh(最もポータブル)
.command ファイルは、ユーザーにTerminalセッションを表示する必要があるシンプルなmacOSユーティリティ、インストーラー、開発者ツールを配布するために広く使用されています。これらは任意のテキストエディタで開くことができ、完全に人間が読める形式です。
セキュリティと安全性
リスク: MEDIUM.command ファイルは、ファイルの削除、マルウェアのダウンロード、システム設定の変更など、macOS上のあらゆるシェルコマンドを実行できます。信頼できないソースからの .command ファイルは、まず内容を確認(右クリック > «このアプリケーションで開く» > «テキストエディット»)せずに実行しないでください。macOSのGatekeeperは、インターネットからダウンロードされたファイルに隔離フラグを付加し、初回実行時に警告を表示します。不明なスクリプトに対してはこの警告を無視しないでください。
形式の詳細
概要COMMAND ファイルを開くプログラム
chmod +x script.command を実行して実行権限を確認してください。 技術的詳細
詳細仕様| ファイルタイプ | プレーンテキスト POSIX シェルスクリプト |
| MIMEタイプ | text/x-shellscript |
| エンコーディング | UTF-8(推奨)、ASCIIも一般的 |
| 改行コード | Unix形式のLFが必須。WindowsのCRLF改行はスクリプトの実行を妨げます |
| マジックバイト | なし(プレーンテキスト)。1行目のシバンがインタプリタを識別します |
| 実行権限 | chmod +x が必要。これがないとFinderのダブルクリックでTerminalが起動しません |
| デフォルトインタプリタ(シバンなし) | macOSでは /bin/sh |
| Gatekeeper隔離 | ダウンロードされた .command ファイルは初回実行時に警告を表示します。回避するには右クリック > «開く» |
| Finderのダブルクリック動作 | Terminal.appを起動し、新しいウィンドウでスクリプトを実行します |
| .sh との機能的な違い | 拡張子のみ。スクリプトの内容は同一。 .sh はテキストエディタで開き、 .command はTerminalで実行されます |
| 関連OS | macOS(Finder統合)。スクリプト構文自体は任意のPOSIXシステムで動作します |
| 典型的なファイルサイズ | 100バイト - 100 KB |
| リリース日 | ~2001 (Mac OS X 10.0 - Terminal.app era) |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | support.apple.com |
COMMAND の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。COMMAND ファイルについて最初の質問をしてみましょう。
よくある質問
Macの .command ファイルとは何ですか?
.command ファイルを実行するにはどうすればよいですか?
chmod +x ~/path/to/script.command を実行してください。