约 1898 字

约 9 分钟

#配置文件

#简介

PowerShell 配置文件(profile)是一个在会话启动时自动执行的 .ps1 脚本。可以在其中定义别名、函数、提示符、环境变量和其他个性化设置。

配置文件不是必需的,默认情况下可能并不存在。$PROFILE 变量保存当前用户、当前宿主对应的配置文件路径。

#查看配置文件路径

$PROFILE 本身等价于当前用户、当前宿主的配置文件路径,它还有其他变体:

> $PROFILE
> $PROFILE.CurrentUserCurrentHost
> $PROFILE.CurrentUserAllHosts
> $PROFILE.AllUsersCurrentHost
> $PROFILE.AllUsersAllHosts
变体作用范围
CurrentUserCurrentHost当前用户,仅当前宿主(如 pwsh)
CurrentUserAllHosts当前用户,所有宿主
AllUsersCurrentHost所有用户,仅当前宿主
AllUsersAllHosts所有用户,所有宿主

PowerShell 7 在 Windows 上通常使用 $HOME\Documents\PowerShell\ 目录,在 Linux 和 macOS 上通常使用 ~/.config/powershell/ 目录。Windows PowerShell 5.1 使用 WindowsPowerShell 目录,两者互不影响。

#创建配置文件

先创建父目录,再创建配置文件:

> $dir = Split-Path -Parent $PROFILE
> New-Item -ItemType Directory -Path $dir -Force | Out-Null
> New-Item -ItemType File -Path $PROFILE -Force | Out-Null

使用编辑器打开配置文件(code 需要安装 VS Code,Windows 上也可使用记事本):

> code $PROFILE
> notepad $PROFILE

编辑并保存后,重新加载配置:

> . $PROFILE

#常用自定义

#别名

Set-Alias -Name ll -Value Get-ChildItem

#函数

function Get-Today {
    Get-Date -Format 'yyyy-MM-dd'
}

#提示符

prompt 函数的返回值会作为命令提示符:

function prompt {
    "PS $(Get-Location)> "
}

#环境变量

$env:EDITOR = 'code'

这些设置只在当前会话中有效,但配置文件会在每次启动时重新执行,因此效果等同于持久配置。

#注意事项

  • 配置文件会在每次启动对应宿主时执行,应保持简洁,避免耗时操作。
  • 配置文件中出现错误时,每次启动都会显示错误信息,建议先用 pwsh -NoProfile 排查。
  • 使用 pwsh -NoProfile 可以临时跳过配置文件启动。
  • 不同宿主(如 VS Code 集成终端、Windows Terminal)可能加载不同的配置文件。

#推荐阅读

更新: 2026/11/2

作者: planc

创建: 2026/11/2