dfx

DFINITY 命令行执行环境 (dfx) 是创建、部署和管理您为 Internet Computer platform 开发的 dapp 的主要工具。

使用带有标志和子命令的 dfx 父命令来指定您希望使用或不使用可选参数执行的操作。

基本用法

dfx [option] [subcommand] [flag]

标志

您可以将以下可选标志与 dfx 父命令或任何 dfx 子命令一起使用。

标志 说明

-h, --help

显示帮助信息。

-q, --quiet

抑制信息性消息。

-v, --verbose

显示操作的详细信息。

-V, --version

显示版本信息。

选项

您可以在 dfx 命令中使用以下选项。

选项 说明

--identity <identity>

指定运行命令时使用的用户身份。

--logfile <logfile>

如果您使用 --log file 日志记录选项,则将日志文件消息写入指定的日志文件名。

--log <logmode>

指定要使用的记录模式。 + 您可以将日志模式设置为以下之一:

- stderr 将消息记录到标准错误工具。

- tee 将消息写入标准输出和指定的文件名。

- file 将消息写入指定的文件名。

默认的日志记录模式是`stderr`。

子命令

使用以下子命令指定要执行的操作或查看特定命令的帮助信息。

有关参考信息和示例,请选择适当的子命令。

命令 描述

build

从项目中的源代码构建容器输出。

cache

管理本地计算机上的 dfx 缓存。

canister

管理部署的容器。

config

设置或更改当前项目的配置选项。

deploy

从项目中的代码部署所有或特定容器。 默认情况下,所有容器均已部署。

help

显示指定子命令的帮助信息。

identity

使您能够创建和管理用于与 Internet Computer platform 通信的身份。

ledger

使您能够与在 Internet Computer 上运行的分类帐容器中的帐户进行交互。

new

创建一个新项目。

ping

向 Internet Computer platform 或本地容器执行环境发送响应请求以确定网络连接。 如果连接成功,则返回状态回复。

replica

启动本地容器执行环境。

start

为当前项目启动本地容器执行环境一个 Web 服务器。

stop

停止本地容器执行环境。

upgrade

将本地计算机上安装的 dfx 版本升级到可用的最新版本。

dfx wallet

使您能够管理与当前选择的身份关联的默认周期钱包的周期、控制器、保管人和地址。

例子

您可以使用`dfx` 父命令来显示帮助信息或版本信息。 例如,要显示有关您当前安装的 dfx 版本的信息,可以运行以下命令:

dfx --version

要查看特定子命令的帮助信息,请指定子命令和 --help 标志。 例如,要查看 dfx build 的帮助信息,可以运行以下命令:

dfx build --help

使用日志记录选项

您可以使用 --verbose--quiet 标志来增加或减少日志记录级别。 如果您未指定任何日志记录级别,则默认情况下会记录 CRITICAL、ERROR、WARNING 和 INFO 消息。 指定一个详细标志 (-v) 会增加日志级别以包含 DEBUG 消息。 指定两个详细标志 (-vv) 会增加日志记录级别以包括 DEBUG 和 TRACE 消息。

添加 --quiet 标志会降低日志记录级别。 例如,要删除所有消息,您可以运行类似于以下的命令:

dfx -qqqq build

请记住,使用 TRACE 级别的日志记录 (--vv) 会生成大量可能影响性能的日志消息,并且只能在需要进行故障排除或分析时使用。

要在创建新项目时将日志消息输出到名为“newlog.txt”的文件并在终端上显示消息,可以运行类似于以下的命令:

dfx --log tee --logfile newlog.txt new hello_world

指定用户身份

如果您使用 dfx identity new 命令创建用户身份,则可以在运行其他 dfx 命令时使用 --identity 注释行选项更改用户上下文。

在最常见的用例中,您使用 --identity 选项调用特定容器函数来测试特定操作的访问控制。

例如,您可能想通过运行以下命令来测试 devops 用户身份是否可以调用 accounts 容器的 modify_profile 函数:

dfx --identity devops canister call accounts modify_profile '("Kris Smith")'