[玩转系统] 自定义您的 shell 环境
作者:精品下载站 日期:2024-12-14 03:04:44 浏览:14 分类:玩电脑
自定义您的 shell 环境
PowerShell 配置文件是在 PowerShell 启动时运行的脚本。您可以使用配置文件来自定义环境。你可以:
- 添加别名、函数和变量
- 加载模块
- 创建 PowerShell 驱动器
- 运行任意命令
- 并更改首选项设置
将这些设置放入您的配置文件中可确保每当您在系统上启动 PowerShell 时它们都可用。
笔记
要在 Windows 中运行脚本,PowerShell 执行策略至少需要设置为 RemoteSigned
。执行策略不适用于 macOS 和 Linux。有关详细信息,请参阅 about_Execution_Policy。
$PROFILE 变量
$PROFILE
自动变量存储当前会话中可用的 PowerShell 配置文件的路径。
有四种可能的配置文件可用于支持不同的用户范围和不同的 PowerShell 主机。每个配置文件脚本的完全限定路径存储在 $PROFILE
的以下成员属性中。
- 所有用户所有主机
- 所有用户当前主机
- 当前用户所有主机
- 当前用户当前主机
您可以创建为所有用户或仅为一个用户(CurrentUser)运行的配置文件脚本。 当前用户配置文件存储在用户的主目录中。
还有针对所有 PowerShell 主机或特定主机运行的配置文件。每个 PowerShell 主机的配置文件脚本都有一个该主机唯一的名称。例如,Windows 上的标准控制台主机或其他平台上的默认终端应用程序的文件名是 Microsoft.PowerShell_profile.ps1
。对于 Visual Studio Code (VS Code),文件名为 Microsoft.VSCode_profile.ps1
。
有关详细信息,请参阅 about_Profiles。
默认情况下,引用 $PROFILE
变量会返回“当前用户、当前主机”配置文件的路径。其他配置文件路径可以通过 $PROFILE 变量的属性访问。例如:
PS> $PROFILE
C:\Users\user1\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
PS> $PROFILE.AllUsersAllHosts
C:\Program Files\PowerShell\profile.ps1
如何创建您的个人资料
当您首次在系统上安装 PowerShell 时,配置文件脚本文件及其所属目录不存在。以下命令将创建“当前用户、当前当前主机”配置文件脚本文件(如果不存在)。
if (!(Test-Path -Path $PROFILE)) {
New-Item -ItemType File -Path $PROFILE -Force
}
当必要的文件夹不存在时,New-Item
cmdlet 的 Force 参数会创建这些文件夹。创建脚本文件后,您可以使用您喜欢的编辑器来自定义您的 shell 环境。
将自定义添加到您的个人资料
前面的文章讨论了使用制表符补全、命令预测器和别名。这些文章展示了用于加载所需模块、创建自定义完成器、定义键绑定和其他设置的命令。这些是您希望在每个 PowerShell 交互式会话中可用的自定义类型。配置文件脚本是这些设置的地方。
编辑配置文件脚本的最简单方法是在您喜欢的代码编辑器中打开文件。例如,以下命令在 VS Code 中打开配置文件。
code $PROFILE
您还可以在 Windows 上使用 notepad.exe
、在 Linux 上使用 vi
或任何其他文本编辑器。
以下配置文件脚本包含前面文章中提到的许多自定义的示例。您可以在自己的个人资料中使用任何这些设置。
## Map PSDrives to other registry hives
if (!(Test-Path HKCR:)) {
$null = New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT
$null = New-PSDrive -Name HKU -PSProvider Registry -Root HKEY_USERS
}
## Customize the prompt
function prompt {
$identity = [Security.Principal.WindowsIdentity]::GetCurrent()
$principal = [Security.Principal.WindowsPrincipal] $identity
$adminRole = [Security.Principal.WindowsBuiltInRole]::Administrator
$prefix = $(if (Test-Path variable:/PSDebugContext) { '[DBG]: ' }
elseif ($principal.IsInRole($adminRole)) { "[ADMIN]: " }
else { '' })
$body = 'PS ' + $(Get-Location)
$suffix = $(if ($NestedPromptLevel -ge 1) { '>>' }) + '> '
$prefix + $body + $suffix
}
## Create $PSStyle if running on a version older than 7.2
## - Add other ANSI color definitions as needed
if ($PSVersionTable.PSVersion.ToString() -lt '7.2.0') {
# define escape char since "`e" may not be supported
$esc = [char]0x1b
$PSStyle = [pscustomobject]@{
Foreground = @{
Magenta = "${esc}[35m"
BrightYellow = "${esc}[93m"
}
Background = @{
BrightBlack = "${esc}[100m"
}
}
}
## Set PSReadLine options and keybindings
$PSROptions = @{
ContinuationPrompt = ' '
Colors = @{
Operator = $PSStyle.Foreground.Magenta
Parameter = $PSStyle.Foreground.Magenta
Selection = $PSStyle.Background.BrightBlack
InLinePrediction = $PSStyle.Foreground.BrightYellow + $PSStyle.Background.BrightBlack
}
}
Set-PSReadLineOption @PSROptions
Set-PSReadLineKeyHandler -Chord 'Ctrl+f' -Function ForwardWord
Set-PSReadLineKeyHandler -Chord 'Enter' -Function ValidateAndAcceptLine
## Add argument completer for the dotnet CLI tool
$scriptblock = {
param($wordToComplete, $commandAst, $cursorPosition)
dotnet complete --position $cursorPosition $commandAst.ToString() |
ForEach-Object {
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_)
}
}
Register-ArgumentCompleter -Native -CommandName dotnet -ScriptBlock $scriptblock
此配置文件脚本提供了以下自定义的示例:
- 为其他根注册表配置单元添加两个新的 PSDrive。
- 创建自定义提示,如果您在提升的会话中运行,该提示会发生变化。
- 配置 PSReadLine 并添加键绑定。颜色设置使用 $PSStyle 功能来定义 ANSI 颜色设置。
- 为 dotnet CLI 工具添加制表符补全。该工具提供参数来帮助解析命令行参数。 Register-ArgumentCompleter 的脚本块使用该功能来提供制表符完成功能。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag