从 PowerShell 切换到 Bash:在 Visual Studio Code 中设置 WSL 并运行 Azure CLI

发布: (2026年3月11日 GMT+8 09:50)
8 分钟阅读
原文: Dev.to

Source: Dev.to

请提供您希望翻译的具体文本内容,我将为您翻译成简体中文。

为什么切换到 Bash?

  • 许多 Azure、DevOps 和云教程都是为 Bash 编写的。
  • PowerShell 和 Bash 的语法规则不同(例如,PowerShell 中变量使用 $)。
  • 了解两种 shell 可以帮助你避免“语法相关”的错误,并且更容易阅读以 Linux 为中心的文档。

1. 安装 Windows 子系统 Linux(WSL)

1.1 通过 PowerShell(管理员)快速安装

# 以管理员身份打开 PowerShell 并运行:
wsl --install

会发生什么?

  • 该命令会启用所需的 Windows 功能(Windows Subsystem for LinuxVirtual Machine Platform)。
  • 然后会提示你 重启 计算机。
  • 重启后,再次运行 wsl --install 将下载并安装默认的 Linux 发行版(Ubuntu)。

1.2 手动启用功能(备用方案)

  1. Win + R,输入 optionalfeatures.exe,然后按 Enter
  2. 打开或关闭 Windows 功能 对话框中,勾选:
    • Windows Subsystem for Linux
    • Virtual Machine Platform
  3. 点击 确定立即重启

重启后,打开提升权限的 PowerShell 并运行:

wsl --install

1.3 首次运行设置

  • Ubuntu 发行版会自动下载并安装。
  • 系统会要求你创建一个 UNIX 用户名密码
    • 为了安全,密码字符会被隐藏——直接输入后按 Enter 即可。

现在,你已经拥有一个可通过 wsl 访问的功能完整的 Linux 环境。

2. 在 Visual Studio Code 中打开 Bash 终端

  1. 启动 VS Code
  2. 在顶部菜单中选择 Terminal → New Terminal
  3. 点击终端面板中 plus (+) 图标旁的 下拉箭头
  4. 选择 Bash 配置文件(如果已安装 WSL,系统会自动列出)。

终端将从 PowerShell 切换为 Bash,并显示类似如下内容:

username@DESKTOP:~$

2.1 从 Bash 访问 Windows 文件夹

cd /mnt/c/Path/To/Your/Folder
# 示例:
cd "/mnt/c/Users/YourName/Documents/Linux Servers"

注意: Windows 磁盘会挂载在 /mnt/<drive-letter>/ 下。

2.2 缩短 Bash 提示符(可选)

默认情况下 Bash 会显示完整路径。若只想显示主机名和当前文件夹:

# 将此行添加到 ~/.bashrc 以实现永久更改
echo "PS1='\\h:\\W$ '" >> ~/.bashrc
source ~/.bashrc

结果提示符:

DESKTOP:Servers$

3. 在 Bash 中使用 Azure CLI

打开 Bash 后,您可以像在 PowerShell 中一样运行任何 Azure CLI 命令:

# Log in to Azure
az login

# List your subscriptions
az account list --output table

# Create a resource group (example)
az group create --name MyResourceGroup --location eastus

由于 Azure CLI 是跨平台的,同样的命令在 PowerShell 和 Bash 中都可使用。

4. 关键差异回顾

特性PowerShellBash (WSL)
变量前缀$var$var (相同),但数组、哈希的语法不同
命令链;&&;&&
路径分隔符\(Windows)/(Linux)
提示符自定义$PROFILE / $Host.UI.RawUIPS1 变量
VS Code 中的默认终端PowerShellBash(如果已安装 WSL)

了解这些差异有助于您在特定教程或工作流中决定使用哪种 shell。

5. 快速参考命令

任务PowerShellBash
安装 WSLwsl --install (admin)Same
列出已安装的发行版wsl -l -vSame
在 VS Code 中打开 Bashcode . → Terminal → BashSame
更改提示符N/A (use $PROFILE)PS1='\\h:\\W$ '
重启 Windowsshutdown /r /t 0sudo reboot (inside WSL)

🎉 一切就绪!

您现在拥有:

  • 已安装并配置 WSL
  • 在 Visual Studio Code 中将 Bash 设为终端选项。
  • 能够在类 Linux 环境中运行 Azure CLI 命令。

随意进一步探索——安装其他 Linux 发行版(wsl --list --online),自定义 Bash 配置文件,或在此设置中集成其他 DevOps 工具(Docker、Terraform 等)。祝编码愉快!

PowerShell 与 Bash 变量语法

我注意到 PowerShell 与 Bash 之间的第一个区别是变量的定义方式。

  • PowerShell – 变量必须以 $ 符号开头。
  • Bash – 变量在 定义时 不使用 $ 符号;只有在 引用 变量时才使用 $

使用 Bash 创建 Azure 资源组

Azure 中的 资源组 是一个容器,用于保存与某个应用程序相关的资源(例如,虚拟机、存储帐户、数据库)。

步骤

  1. 定义变量

    RG="Testing-10-rg"
    LOCATION="eastus"

    或者使用换行续行字符(\)一起定义:

    RG="Testing-10-rg" \
    LOCATION="eastus"
  2. 创建资源组

    az group create --name "$RG" --location "$LOCATION"
    • 在命令中引用变量时,需要在变量名前加 $,这样 Bash 会替换为对应的值。
    • 检查输出中的 provisioningState,以确认资源组已成功创建。
  3. 验证创建

    az group list --output table
  4. 删除资源组(可选)

    az group delete --name "$RG"

    Azure 会提示:

    Are you sure you want to perform this operation? (y/n)

    输入 yyes 进行确认。

结论

在不同的 shell 环境之间切换起初可能会让人感到困惑,尤其是当细微的语法差异导致命令表现异常时。从 PowerShell 转到 Bash 让我了解了不同 shell 对以下方面的处理方式:

  • 变量定义与展开
  • 命令语法
  • 文件系统导航

通过安装 Windows Subsystem for Linux (WSL) 并在 Visual Studio Code 中使用它,我能够在 Windows 上直接运行基于 Linux 的 Bash 环境,同时通过 Azure CLI 管理 Azure 资源。

这一转变带来了挑战——例如变量语法和路径约定的差异——但也让我在多个终端环境之间的工作更加得心应手。这些技能在以下场景中特别有用:

  • 云基础设施
  • Linux 服务器
  • 自动化工具(如脚本、CI/CD 流水线)

同时掌握 PowerShell 和 Bash 能为开发者和云工程师在跨平台工作时提供更大的灵活性。

Discussion

如果你也在学习 Azure 或 DevOps 工具,欢迎分享在 PowerShell 与 Bash 之间切换时最让你困惑的地方!

0 浏览
Back to Blog

相关文章

阅读更多 »