终端 > Warp Drive 概览
环境变量
# 环境变量 Warp Drive 中的环境变量让您可以单击即可保存、同步并将环境变量加载到您的终端会话中。支持静态值和来自 1Password、LastPass 和 Hashicorp Vault 等外部管理器的动态密钥,可确保凭据安全,避免出现在源代码中。 ## Warp 中的环境变量是什么? Warp 中的环境变量与 .env 文件类似,但您可以: * 单击即可将其加载到您的终端会话中。 * 在参数化工作流程中使用它们。 * 动态引用来自外部管理器的密钥。 ## 如何创建和编辑环境变量 您可以通过以下方式创建新的环境变量: * [Warp Drive](/knowledge-and-collaboration/warp-drive/), + → 环境变量 * [命令面板](/terminal/command-palette/), 创建新的团队或个人环境变量 任何这些入口点都将打开环境变量编辑器,您可以在其中命名并描述您的环境变量。  ## 管理单个环境变量 Warp 支持两种类型的环境变量:静态变量和动态变量。 ### 静态变量 静态变量与 .env 文件类似。您可以通过输入原始文本字符串来创建变量。每个变量都有一个变量名称和相应的值。  保存环境变量后,您可以单击它以将其加载到终端会话中。  当您使用静态变量时,Warp 会将它们安全地存储在 Warp Drive 中。\ \ 注意:静态变量不应用于替代密钥管理器。对于任何敏感信息,请使用动态变量。 ### 动态变量 :::note Warp 绝不会存储动态变量中使用的密钥。Warp 只存储在运行时动态检索密钥时所使用的命令。 ::: 动态变量允许您引用存储在 Warp 外部(如 1Password 或 LastPass)安全密钥管理器中的密钥。您可以使用自定义命令为任何具有公共 API 或 CLI 的系统(如 AWS 或 Hashicorp Vault)创建动态变量。 ### **如何创建和编辑动态环境变量** 要创建新的动态变量: 1. 打开环境变量编辑器。 2. 使用钥匙图标调出动态变量菜单。 3. 选择集成的密码管理器或“命令”来编写您自己的自定义集成。  #### **集成密码管理器** 在开始之前,请确保您已为您选择的工具安装了 CLI,并按照说明启用 CLI: * [1Password CLI](https://developer.1password.com/docs/cli/get-started/) * [LastPass CLI](https://github.com/lastpass/lastpass-cli) 然后,您可以单击钥匙图标并从下拉菜单中选择您的管理器。  CLI 将要求您进行身份验证,然后为您提供可用密钥的列表。 :::note 选择密钥名称永远不会存储实际的密钥。Warp 使用您的选择生成一个命令,在运行时动态拉取您选择的密钥。 :::  ### **如何编写自定义密钥命令** 参考您的外部密钥管理器的文档。然后,编写一个自定义命令来检索密钥。 :::note 您的自定义命令应返回您希望加载到环境中的确切字符串。请确保选择您想要加载的确切字段,因为许多密钥管理器 CLI 默认提供额外的格式化。 ::: 例如,您可以使用 [Hashicorp Vault CLI](https://developer.hashicorp.org.cn/vault/docs/commands) 编写一个命令来检索并加载暂存服务器的密码字段。使用密钥命令时,Warp 会存储命令,但绝不会存储实际的密钥。密钥在运行时被引用并加载到终端会话中。 ``` // vault kv get -field=password secret/staging/app/server/creds ```  ### 使用环境变量 有三种方法可以调用您的环境变量并将其加载到终端会话中: 1. [单击以加载到当前会话中](/knowledge-and-collaboration/warp-drive/environment-variables/#click-to-load-into-a-current-session) 2. [单击以加载到子 shell 中](/knowledge-and-collaboration/warp-drive/environment-variables/#click-to-load-into-a-subshell) 3. [选择以通过工作流程加载](/knowledge-and-collaboration/warp-drive/environment-variables/#select-to-load-with-a-workflow) #### 单击以加载到当前会话中 首先,从 Warp Drive 或命令面板中单击您的环境变量。然后,查看确认框。如果您的环境变量正确,请按回车键将其加载到您的会话中。   这些环境变量现在将在您的会话剩余时间内保持有效。 #### 单击以加载到子 shell 中 要将环境变量加载到子 shell 中,您需要打开 [Warp Drive](/knowledge-and-collaboration/warp-drive/) 并在 Warp Drive 索引中找到您的环境变量。然后,您可以使用溢出菜单选择“在子 shell 中加载”。 将环境加载到子 shell 中可以降低环境变量意外污染您的工作区的风险。子 shell 定义明确,一旦您退出它,由 Warp 环境变量设置的任何环境变量都将被清除,除非它们已经存在于父会话中。   #### 选择以通过工作流程加载 每次运行工作流程时,您都可以从现有的环境变量中进行选择。这允许您将环境变量动态注入到参数化工作流程中,从而可以在多个环境(例如生产环境和暂存环境)中使用单个工作流程命令。 例如,您可能有一个用于创建新团队的工作流程,该工作流程使用了环境变量 $SERVER\_URL。通过使用工作流程卡片中的环境变量下拉菜单,您可以动态注入所需的变量。这确保了工作流程引用了正确的值,从而使命令能够使用相关的特定于环境的信息运行。这些环境变量现在将在您的会话剩余时间内保持有效,直到您清除它们或用不同的环境覆盖它们。  ### 在 Warp Drive 中导入和导出环境变量 请参阅我们的 [Warp Drive 导入和导出](/knowledge-and-collaboration/warp-drive/#import-and-export) 说明。保存或同步环境变量以加载到您的终端会话中。
Warp Drive 中的环境变量让您可以单击即可保存、同步并将环境变量加载到您的终端会话中。支持静态值和来自 1Password、LastPass 和 Hashicorp Vault 等外部管理器的动态密钥,可确保凭据安全,避免出现在源代码中。
Warp 中的环境变量是什么?
标题为“Warp 中的环境变量是什么?”的部分Warp 中的环境变量与 .env 文件类似,但您可以
- 单击即可将其加载到您的终端会话中。
- 在参数化工作流程中使用它们。
- 动态引用来自外部管理器的密钥。
如何创建和编辑环境变量
标题为“如何创建和编辑环境变量”的部分您可以通过以下方式创建新的环境变量
- Warp Drive, + → 环境变量
- 命令面板, 创建新的团队或个人环境变量
任何这些入口点都将打开环境变量编辑器,您可以在其中命名并描述您的环境变量。

管理单个环境变量
标题为“管理单个环境变量”的部分Warp 支持两种类型的环境变量:静态变量和动态变量。
静态变量
标题为“静态变量”的部分静态变量与 .env 文件类似。您可以通过输入原始文本字符串来创建变量。每个变量都有一个变量名称和相应的值。

保存环境变量后,您可以单击它以将其加载到终端会话中。

当您使用静态变量时,Warp 会将它们安全地存储在 Warp Drive 中。
注意:静态变量不应用于替代密钥管理器。对于任何敏感信息,请使用动态变量。
动态变量
标题为“动态变量”的部分动态变量允许您引用存储在 Warp 外部(如 1Password 或 LastPass)安全密钥管理器中的密钥。
您可以使用自定义命令为任何具有公共 API 或 CLI 的系统(如 AWS 或 Hashicorp Vault)创建动态变量。
如何创建和编辑动态环境变量
标题为“如何创建和编辑动态环境变量”的部分要创建新的动态变量
- 打开环境变量编辑器。
- 使用钥匙图标调出动态变量菜单。
- 选择集成的密码管理器或“命令”来编写您自己的自定义集成。

集成密码管理器
标题为“集成密码管理器”的部分在开始之前,请确保您已为您选择的工具安装了 CLI,并按照说明启用 CLI
然后,您可以单击钥匙图标并从下拉菜单中选择您的管理器。

CLI 将要求您进行身份验证,然后为您提供可用密钥的列表。
如何编写自定义密钥命令
标题为“如何编写自定义密钥命令”的部分参考您的外部密钥管理器的文档。然后,编写一个自定义命令来检索密钥。
例如,您可以使用 Hashicorp Vault CLI 编写一个命令来检索并加载暂存服务器的密码字段。使用密钥命令时,Warp 会存储命令,但绝不会存储实际的密钥。密钥在运行时被引用并加载到终端会话中。
// vault kv get -field=password secret/staging/app/server/creds使用环境变量
标题为“使用环境变量”的部分有三种方法可以调用您的环境变量并将其加载到终端会话中
单击以加载到当前会话中
标题为“单击以加载到当前会话中”的部分首先,从 Warp Drive 或命令面板中单击您的环境变量。
然后,查看确认框。如果您的环境变量正确,请按回车键将其加载到您的会话中。


这些环境变量现在将在您的会话剩余时间内保持有效。
单击以加载到子 shell 中
标题为“单击以加载到子 shell 中”的部分要将环境变量加载到子 shell 中,您需要打开 Warp Drive 并在 Warp Drive 索引中找到您的环境变量。然后,您可以使用溢出菜单选择“在子 shell 中加载”。
将环境加载到子 shell 中可以降低环境变量意外污染您的工作区的风险。子 shell 定义明确,一旦您退出它,由 Warp 环境变量设置的任何环境变量都将被清除,除非它们已经存在于父会话中。
选择以通过工作流程加载
标题为“选择以通过工作流程加载”的部分每次运行工作流程时,您都可以从现有的环境变量中进行选择。这允许您将环境变量动态注入到参数化工作流程中,从而可以在多个环境(例如生产环境和暂存环境)中使用单个工作流程命令。
例如,您可能有一个用于创建新团队的工作流程,该工作流程使用了环境变量 $SERVER_URL。通过使用工作流程卡片中的环境变量下拉菜单,您可以动态注入所需的变量。这确保了工作流程引用了正确的值,从而使命令能够使用相关的特定于环境的信息运行。
这些环境变量现在将在您的会话剩余时间内保持有效,直到您清除它们或用不同的环境覆盖它们。
在 Warp Drive 中导入和导出环境变量
标题为“在 Warp Drive 中导入和导出环境变量”的部分请参阅我们的 Warp Drive 导入和导出 说明。