コマンドエイリアスを管理するには

Incus コマンドラインクライアントincusでは良く使うコマンドのエイリアスを追加できます。 長いコマンドのショートカットとして、あるいは既存のコマンドに自動的にフラグを追加するために、エイリアスを使用できます。

エイリアスの管理にはincus aliasコマンドを使います。

incus aliasコマンドでは、以下のサブコマンドが使えます:

  • 新しいコマンドエイリアスの追加はincus alias add

  • コマンドエイリアスの一覧表示はincus alias list

  • コマンドエイリアスの削除はincus alias remove

  • コマンドエイリアスのリネームはincus alias rename

すべての利用可能なサブコマンドとパラメーターを見るにはincus alias --helpを実行してください。

注釈

コマンドエイリアスイメージエイリアス とは異なります。 イメージエイリアスはイメージの別名で、通常はそのイメージのより短い名前や別の覚えやすい名前です。

イメージエイリアスはサーバーサイドの概念でIncus APIの一部ですが、コマンドエイリアスは純粋にコマンドラインツールの設定の一部です。

コマンドエイリアスを追加するには

エイリアスを作成するには、incus alias addを実行し、エイリアス名と(クォートで囲んだ)エイリアスコマンドを指定します。

$ incus alias add my-alias "image list"
$ incus my-alias
+-------+--------------+--------+----------------------------------------+--------------+-----------+-----------+----------------------+
| ALIAS | FINGERPRINT  | PUBLIC |              DESCRIPTION               | ARCHITECTURE |   TYPE    |   SIZE    |     UPLOAD DATE      |
+-------+--------------+--------+----------------------------------------+--------------+-----------+-----------+----------------------+
|       | 3b3bd7f47fca | no     | Debian bookworm amd64 (20260608_05:24) | x86_64       | CONTAINER | 106.22MiB | 2026/06/08 22:01 -03 |
+-------+--------------+--------+----------------------------------------+--------------+-----------+-----------+----------------------+

コマンドエイリアスがIncusコマンドと同じ名前の場合、コマンドエイリアスはIncusコマンドを隠します。同じ名前の元のIncusコマンドを実行するには、まずコマンドエイリアスを削除する必要があります。

すべてのコマンドエイリアスを一覧表示するには

設定されたすべてのエイリアスを見るには、incus alias listを実行します。

$ incus alias list
+----------+---------------------------+
|  ALIAS   |          TARGET           |
+----------+---------------------------+
| my-alias | image list                |
+----------+---------------------------+

コマンドエイリアスを削除するには

既存のコマンドエイリアスを削除するにはincus alias removeにコマンドエイリアスの名前を追加して入力します。

$ incus alias remove my-alias
$ incus alias list
+----------+---------------------------+
|  ALIAS   |          TARGET           |
+----------+---------------------------+

コマンドエイリアスをリネームするには

既存のコマンドエイリアスをリネームするには、incus alias renameに既存のコマンドエイリアスの名前と新しいコマンドエイリアスの名前を指定して入力します。

$ incus alias rename my-alias my-new-alias
$ incus alias list
+--------------+---------------------------+
|    ALIAS     |          TARGET           |
+--------------+---------------------------+
| my-new-alias | image list                |
+--------------+---------------------------+

エイリアスコマンド内の引数

コマンドエイリアスを引数とともに使う場合、Incusコマンドラインクライアントはそれらの引数をエイリアスコマンドの最後に渡します。incus alias add del "delete"のエイリアスの場合、以下のコマンドはどちらも同じ結果になります。

incus delete c1 --force
incus del c1 --force

この挙動は@ARGS@という特別な文字列で変更できます。これはエイリアスの文字列内で定義された場所にすべての引数を配置します。incus alias add create-foo "create @ARGS@ foo"というエイリアスであれば、以下のコマンドはどちらも同じ結果になります。

incus create images:debian/12 foo
incus create-foo images:debian/12

番号付きの引数(@ARG1@@ARG2@、…)を使うこともでき、これはエイリアスの文字列内のこれらの位置に指定した順に配置します。incus alias add cat "exec @ARG1@ -- cat @ARG2@"というエイリアスであれば、以下のコマンドはどちらも同じ結果になります。

incus exec u1 -- cat /etc/hosts
incus cat u1 /etc/hosts

ビルトインのshellエイリアス

Incusはshellというビルトインのコマンドエイリアスがあります。このエイリアスはincus execコマンドをベースにしており、exec @ARGS@ -- su -lを実行します。

$ incus alias list
+-----------+----------------------+
|   ALIAS   |        TARGET        |
+-----------+----------------------+
| shell     | exec @ARGS@ -- su -l |
+-----------+----------------------+

incus shell myinstanceを実行すると、このコマンドはincus exec myinstance -- su -lに展開されます。

---lのようなパラメータを処理しないように指示するIncusのコマンドラインの約束事です。--がないと、展開されたincus exec mycontainer su -lというコマンドはIncusコマンドクライアントが-lをパースしようとするため失敗します。この特定のケースではincus shell-lというパラメータはないため失敗します。

su -lコマンドはsu -su --loginと同義です。 ログインシェルをrootユーザーでインスタンス内に起動します。 コマンドはrootユーザーでログインシェルを起動するために必要な設定ファイルを読みます。

shellエイリアスはIncusサーバーにビルトインされています。そのため、Incusクライアントでは削除できません。 削除しようとすると、エイリアスが存在しないというエラーになります。

$ incus alias remove shell
Error: Alias shell doesn't exist

shellという名前でエイリアスを登録すると、新しいコマンドはビルトインのコマンドエイリアスを隠すことになります。 つまり、Incusコマンドラインクライアントは新しく追加されたエイリアスを使い、代わりにビルトインのコマンドエイリアスは隠されます。追加したshellエイリアスを削除すると、ビルトインのエイリアスが再び現れます。

使い方の例

インスタンスを削除する際に確認するようにするには

インスタンスを削除する際に必ず確認を求めるようにするには、incus deleteに 常にincus delete --interactiveを実行するようにエイリアスを作成します。

以下のコマンドはdeleteという名前でコマンドエイリアスを 追加 し同じIncusのコマンドを--interactiveフラグつきで実行します。

incus alias add delete "delete --interactive"

myinstanceと呼ばれるインスタンスを削除するために、incus delete mycontainerを実行した際にIncusのコマンドラインクライアントはincus deleteincus delete --interactiveに置き換えて、代わりにincus delete --interactive myinstanceを実行することに注意してください。

インスタンス内で非rootのシェルを起動するコマンドエイリアスを使うには

いくつかのIncusイメージは以下の表に示すように非rootのユーザー名を作成するように設定されています。

ディストリビューション

ユーザー

イメージ

Alpine

alpine

images:alpine/edge/cloud

Debian

debian

images:debian/12/cloud

Fedora

fedora

images:fedora/42/cloud

Ubuntu

ubuntu

images:ubuntu/24.04/cloud

以下のコマンドで非rootのユーザー名でインスタンス内のシェルを起動できます。

$ incus launch images:debian/12/cloud mycontainer
Launching mycontainer
$ incus exec mycontainer -- su -l debian
debian@mycontainer:~$

Incusコマンドエイリアスを使うことで、そのインスタンスへのシェルを起動するコマンドエイリアスも作れます。 次のコマンドエイリアスでは、debianというユーザー名にsu -lするように指定しています。

incus alias add debian 'exec @ARGS@ -- su -l debian'

これで、以下の便利なコマンドでインスタンス内にシェルを起動できます:

$ incus debian mycontainer
debian@mycontainer:~$

注釈

suの代わりとして、sudoを使いたいこともあるでしょう。その場合コマンドは以下のようになります。

 incus alias add debian `exec @ARGS@ -- sudo --login --user debian`

注釈

システムコンテナや仮想マシンを起動する際に、Incusでは環境変数を指定できます。

 incus launch -c environment.MYVARIABLE=myvalue images:debian/12 myinstance

そのようなインスタンスのログインシェルではこれらの環境変数へはアクセスできません。これはsu -lsudo --loginでのログインシェルのセマンティクスでは環境変数は一切維持しないからです。環境変数を維持したい場合は、代わりにsu --preserve-environmentsudo --preserve-envを使う必要があります。

インスタンスに環境変数を追加する別の方法はファイルシステムの/etc/environmentというファイルに書くことです。そうすうることでインスタンスへの新しいログインシェルはこのファイルをパースし環境変数を設定します。

その他

コマンドエイリアスイメージエイリアス とは違うことに注意してください。 イメージエイリアスはイメージの別名で、通常はより短いな目やそのイメージの別の一般的なニーモニックです。

イメージエイリアスはIncus APIの一部でサーバーサイドの概念ですが、コマンドエイリアスは純粋にコマンドラインツールの設定です。