当前位置: 首页 > news >正文

【补漏拾遗】windows 终端的自定义命令 | $PROFILE 文件的简单使用

【补漏拾遗】windows 终端的自定义命令 | $PROFILE 文件的简单使用

文章作者所用系统为 windows 11

$PROFILE 是什么

$PROFILE 是 powershell 在启动时,会自动执行的脚本文件。可以把它理解成 PowerShell 版的 .bashrc / .zshrc,可用于自定义终端命令、别名、函数、环境变量等

在 powershell 中输入 $PROFILE 就可以看到当前用户在该终端使用的配置,例如

> $PROFILE
D:\Users\Jack\Documents\PowerShell\Microsoft.PowerShell_profile.ps1

如果没有终端没有输出,可以使用如下命令创建

if (!(Test-Path -Path $PROFILE)) {New-Item -ItemType File -Path $PROFILE -Force
}

此外,$PROFILE 配置文件还有分层结构:

  • 对全用户、全终端类型生效,文件存放于 $PSHOME\Profile.ps1,终端使用 $PROFILE.AllUsersAllHosts 查看路径
  • 对全用户、当前终端类型生效,文件存放于 $PSHOME\Microsoft.PowerShell_profile.ps1,终端使用 $PROFILE.AllUsersCurrentHosts 查看路径
  • 对当前用户、全终端类型生效,文件存放于 $HOME\Documents\PowerShell\Profile.ps1,终端使用 $PROFILE.CurrentUserAllHosts 查看路径
  • 对当前用户、当前终端类型生效,文件存放于 $HOME\Documents\PowerShell\Microsoft.PowerShell_profile.ps1,终端使用 $PROFILE.CurrentUsersCurrentHosts/$PROFILE 查看路径

在终端初始化时,以上文件里的命令按先后出现的顺序执行。也就是说,本地配置(如当前用户当前终端)可以覆盖全局配置(如全用户全终端)

这里的终端类型的英文原文是 host,powershell 和 powershell7 就是不同的 host,类似于不同的终端

更详细的内容请看 微软官方中文文档

常见用法

可以在文本编辑器中打开任何 PowerShell 配置文件,例如用 VSCode 打开

code $PROFILE

定义命令别名(Alias)

Set-Alias 把冗长命令变短,提升输入效率

比如,模仿 Linux / macOS 命令习惯,或简化 PowerShell 原生命令

Set-Alias ll  Get-ChildItem
Set-Alias la  Get-ChildItem
Set-Alias cls Clear-Host
Set-Alias grep Select-String

注意:本质上是给 command 换了个名字,底层还是 PowerShell 原生命令

定义函数(Function)

定义函数可以封装重复的操作

例如快速跳转目录

function dev {Set-Location D:\Projects
}

也可以把常用的一些开源工具写成自定义命令,一键启动

设置环境变量(Environment Variables)

比如设置终端的网络代理,让他自动走 VPN

$env:HTTP_PROXY  = "http://127.0.0.1:7890"
$env:HTTPS_PROXY = "http://127.0.0.1:7890"

覆盖/包装现有命令

比如 python 的 pip install 会污染全局环境,一般都使用 uv 来管理虚拟环境,做到环境隔离

function pip {uv pip @args
}

或者简化某些常用命令:

function uvi {uv pip install -r requirements.txt
}

命令行体验优化

例如启动命令行补全行为

Set-PSReadLineOption -PredictionSource History
Set-PSReadLineOption -EditMode Windows

在终端使用 UTF-8 编码

[Console]::OutputEncoding = [System.Text.UTF8Encoding]::new($false)
$OutputEncoding = [System.Text.UTF8Encoding]::new($false)

其余实用命令可以找找其他教程哦

-NoProfile

遇到问题时,使用 pwsh -NoProfile 忽略这些配置文件,直接进入终端

写在后面

在很久以前,我就听过使用命令行可以大大提高效率,后面在对操作系统的学习中也逐渐意识到一点——命令行才是计算机真实的样子,文件管理器什么的都是命令行的套壳UI。加之Windows的文件管理器越来越烂,多次崩溃之后我希望以后就使用命令行(powershell)来替代它。

在使用命令行之前,一些常见的目录、应用被我扔进了文件管理器里的侧边栏,这样在所有页面都能快速访问。在命令行中,我想到了自定义命令的方式来实现快速访问,查询了相关资料,所以有了这篇文章(小提一嘴,AI 真好用吧,像这种知识以前哪里能那么容易学会,肯定要在一堆质量参差不齐的文章/不知所云的官方文档里粪海淘金)

我想到了《The Missing Semester》这门课程,它 MIT 大学的一门计算机课程。相比于其他正规 CS 课程,它不讲具体的算法活或语言语法,而是聚焦于一些“细枝末节”,强调工具、工作流和工程习惯。其内容包括高效使用命令行、Git、编辑器和自动化工具以及调试、构建、数据处理等真实开发中的能力,这些能真正提升效率,对于学生走向工程实战场景有很大的帮助。

本篇文章也算是对这些 Missing 知识的补充。考虑到随着时间推移,自己也会慢慢记录更多类似的文章,故为类似的零散知识建立一个合集目录,命名为 【补漏拾遗】。这篇文章也是改目录下的第一篇文章。后续会增加更多内容

参考资料

微软官方文档对PROFILE文件的介绍:中文 https://learn.microsoft.com/zh-cn/powershell/module/microsoft.powershell.core/about/about_profiles、英文 https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_profiles

GPT-5.2

http://www.jsqmd.com/news/309198/

相关文章:

  • 2026年郑州黄金回收店推荐:基于多场景实测评价,解决估价不透明与安全痛点
  • 如何选择靠谱黄金回收店?2026年郑州黄金回收店推荐与评测,解决压价与真伪痛点
  • 小程序开发平台哪个好?2026零代码小程序开发平台评测推荐
  • 2026年郑州黄金回收店推荐:基于行业合规标准评价,针对克重与成色痛点精准指南
  • 2026最新负债协商机构资质查询指南:手把手教你分辨持牌正规军与山寨机构的区别,附避雷清单!
  • insecurity.
  • MyBatis 学习笔记:Maven 项目搭建与基础 CRUD
  • 2026会员管理系统软件哪个好?功能、优劣与适用场景全对比
  • 2026年中医执业医师课程培训机构怎么选?这三家哪家好?
  • 执业医师考试哪个课程好?这三个要点与三大机构必须了解!
  • 2026年密度计/密度仪哪个品牌好?口碑、市场占有率及厂家生产实力对比
  • 智慧工地工程车篷布未覆盖分割数据集
  • 无人机火灾实例分割数据集
  • 火灾烟雾分割数据集
  • 基于 Roboflow 洪水检测数据集(`FLOOD SEPTEMBER 23 DATASET`)训练目标检测模型的完整代码
  • 风筝断了线
  • 【国产桌面操作系统】打包opencv的离线安装包
  • 2026年重庆优质连接器预应力配件销售厂家推荐与选择指南
  • 为什么说MoonBit是AI时代的编程语言
  • GoWind Admin|风行 — 开箱即用的企业级全栈中后台框架・内置微服务接口数据聚合能力
  • GoWind Admin|风行 — 开箱即用的企业级全栈中后台框架:数据权限体系设计与实现
  • 学长亲荐2026 TOP9 AI论文工具:专科生毕业论文神器测评
  • 全球首款8K全景无人机成本曝光 影翎A1标准套装综合硬件成本约5512.52元
  • 电力场景输电线路防外力破坏检测数据集VOC+YOLO格式1106张5类别
  • 教培管家第10讲:套餐管理——把教育服务“产品化”
  • 通达信【支撑压力突破】主图指标公式CJM99源码分享
  • 2026年简历自动筛选工具排名:从Moka到世纪云猎的效率大比拼
  • I/O重定向函数dup2
  • 【风电光伏功率预测】别再只盯“准确率”了:把不确定性变成收益,分布式预测怎么决定报量“偏保守”还是“偏进攻”?
  • 【高精度气象】航运避台别只看路径:风圈扩张 + 涌浪滞后,才是“绕不绕、绕多远”的真答案