当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 关于个人资料

作者:精品下载站 日期:2024-12-14 02:20:27 浏览:15 分类:玩电脑

关于个人资料


简短描述

描述如何创建和使用 PowerShell 配置文件。

详细描述

您可以创建 PowerShell 配置文件来自定义环境,并向您启动的每个 PowerShell 会话添加特定于会话的元素。

PowerShell 配置文件是在 PowerShell 启动时运行的脚本。您可以使用该配置文件作为启动脚本来自定义您的环境。您可以添加命令、别名、函数、变量、模块、PowerShell 驱动器等。您还可以将其他特定于会话的元素添加到您的个人资料中,以便它们在每个会话中都可用,而无需导入或重新创建它们。

PowerShell 支持用户和主机程序的多种配置文件。但是,它不会为您创建配置文件。

配置文件类型和位置

PowerShell 支持多个范围仅限于用户和 PowerShell 主机的配置文件。您的计算机上可以有任何或所有这些配置文件。

PowerShell 控制台支持以下基本配置文件。这些文件路径是默认位置。

  • 所有用户、所有主机

    • Windows - $PSHOME\Profile.ps1
  • Linux - /opt/microsoft/powershell/7/profile.ps1
  • macOS - /usr/local/microsoft/powershell/7/profile.ps1
  • 所有用户、当前主机

    • Windows - $PSHOME\Microsoft.PowerShell_profile.ps1
  • Linux - /opt/microsoft/powershell/7/Microsoft.PowerShell_profile.ps1
  • macOS - /usr/local/microsoft/powershell/7/Microsoft.PowerShell_profile.ps1
  • 当前用户,所有主机

    • Windows - $HOME\Documents\PowerShell\Profile.ps1
  • Linux - ~/.config/powershell/profile.ps1
  • macOS - ~/.config/powershell/profile.ps1
  • 当前用户、当前主机

    • Windows - $HOME\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
  • Linux - ~/.config/powershell/Microsoft.PowerShell_profile.ps1
  • macOS - ~/.config/powershell/Microsoft.PowerShell_profile.ps1
  • 笔记

    在 Windows 中,可以通过文件夹重定向或 OneDrive 更改 Documents 文件夹的位置。我们不建议将 Documents 文件夹重定向到网络共享或将其包含在 OneDrive 中。重定向文件夹可能会导致模块无法加载并在您的配置文件脚本中产生错误。有关从 OneDrive 管理中删除 Documents 文件夹的信息,请参阅 OneDrive 文档。

    配置文件脚本按列出的顺序执行。这意味着在 AllUsersAllHosts 配置文件中所做的更改可以被任何其他配置文件脚本覆盖。 CurrentUserCurrentHost 配置文件始终最后运行。在 PowerShell 帮助中,CurrentUserCurrentHost 配置文件是最常被称为您的 PowerShell 配置文件的配置文件。

    托管 PowerShell 的其他程序可以支持自己的配置文件。例如,Visual Studio Code (VS Code) 支持以下特定于主机的配置文件。

    • 所有用户,当前主机 - $PSHOME\Microsoft.VSCode_profile.ps1
    • 当前用户,当前主机 - $HOME\Documents\PowerShell\Microsoft.VSCode_profile.ps1

    配置文件路径包括以下变量:

    • $PSHOME 变量存储 PowerShell 的安装目录
    • $HOME 变量存储当前用户的主目录

    $PROFILE 变量

    $PROFILE 自动变量存储当前会话中可用的 PowerShell 配置文件的路径。

    要查看配置文件路径,请显示 $PROFILE 变量的值。您还可以在命令中使用 $PROFILE 变量来表示路径。

    $PROFILE 变量存储“当前用户、当前主机”配置文件的路径。其他配置文件保存在 $PROFILE 变量的注释属性中。

    例如,$PROFILE 变量在 Windows PowerShell 控制台中具有以下值。

    • 当前用户,当前主机 - $PROFILE
    • 当前用户,当前主机 - $PROFILE.CurrentUserCurrentHost
    • 当前用户,所有主机 - $PROFILE.CurrentUserAllHosts
    • 所有用户,当前主机 - $PROFILE.AllUsersCurrentHost
    • 所有用户、所有主机 - $PROFILE.AllUsersAllHosts

    由于 $PROFILE 变量的值会针对每个用户和每个主机应用程序而变化,因此请确保在您使用的每个 PowerShell 主机应用程序中显示配置文件变量的值。

    要查看 $PROFILE 变量的当前值,请键入:

    $PROFILE | Select-Object *
    

    您可以在许多命令中使用 $PROFILE 变量。例如,以下命令在记事本中打开“当前用户,当前主机”配置文件:

    notepad $PROFILE
    

    以下命令确定本地计算机上是否已创建“所有用户、所有主机”配置文件:

    Test-Path -Path $PROFILE.AllUsersAllHosts
    

    如何创建个人资料

    要创建 PowerShell 配置文件,请使用以下命令格式:

    if (!(Test-Path -Path <profile-name>)) {
      New-Item -ItemType File -Path <profile-name> -Force
    }
    

    例如,要在当前 PowerShell 主机应用程序中为当前用户创建配置文件,请使用以下命令:

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

    在此命令中,if 语句可防止您覆盖现有配置文件。将 $PROFILE 变量的值替换为您要创建的配置文件的路径。

    笔记

    要在 Windows Vista 和更高版本的 Windows 中创建“所有用户”配置文件,请使用以管理员身份运行选项启动 PowerShell。

    如何编辑个人资料

    您可以在文本编辑器(例如记事本)中打开任何 PowerShell 配置文件。

    要在记事本中打开当前 PowerShell 主机应用程序中当前用户的配置文件,请键入:

    notepad $PROFILE
    

    要打开其他配置文件,请指定配置文件名称。例如,要打开所有主机应用程序的所有用户的配置文件,请键入:

    notepad $PROFILE.AllUsersAllHosts
    

    要应用更改,请保存配置文件,然后重新启动 PowerShell。

    如何选择个人资料

    如果您使用多个主机应用程序,请将在所有主机应用程序中使用的项目放入您的 $PROFILE.CurrentUserAllHosts 配置文件中。将特定于主机应用程序的项目(例如设置主机应用程序背景颜色的命令)放入特定于该主机应用程序的配置文件中。

    如果您是为许多用户自定义 PowerShell 的管理员,请遵循以下准则:

    • 将常用项目存储在 $PROFILE.AllUsersAllHosts 配置文件中
    • 将特定于主机应用程序的项目存储在特定于主机应用程序的 $PROFILE.AllUsersCurrentHost 配置文件中
    • 在用户特定的配置文件中存储特定用户的项目

    请务必检查主机应用程序文档以了解 PowerShell 配置文件的任何特殊实现。

    如何使用个人资料

    您在 PowerShell 中创建的许多项目以及您运行的大多数命令仅影响当前会话。当您结束会话时,这些项目将被删除。

    特定于会话的命令和项目包括添加到会话的 PowerShell 变量、环境变量、别名、函数、命令和 PowerShell 模块。

    要保存这些项目并使其在以后的所有会话中可用,请将它们添加到 PowerShell 配置文件中。

    配置文件的另一个常见用途是保存常用的函数、别名和变量。将项目保存在配置文件中后,您可以在任何适用的会话中使用它们,而无需重新创建它们。

    如何开始建立个人资料

    当您打开配置文件时,它是空白的。但是,您可以使用经常使用的变量、别名和命令来填充它。

    以下是一些帮助您入门的建议。

    添加列出任何 cmdlet 别名的函数

    function Get-CmdletAlias ($cmdletname) {
      Get-Alias |
        Where-Object -FilterScript {$_.Definition -like "$cmdletname"} |
          Format-Table -Property Definition, Name -AutoSize
    }
    

    自定义您的控制台

    function CustomizeConsole {
      $hosttime = (Get-ChildItem -Path $PSHOME\pwsh.exe).CreationTime
      $hostversion="$($Host.Version.Major)`.$($Host.Version.Minor)"
      $Host.UI.RawUI.WindowTitle = "PowerShell $hostversion ($hosttime)"
      Clear-Host
    }
    CustomizeConsole
    

    添加自定义的 PowerShell 提示符

    function Prompt {
        $env:COMPUTERNAME + "\" + (Get-Location) + "> "
    }
    

    有关 PowerShell 提示符的更多信息,请参阅 about_Prompts。

    有关其他配置文件示例,请参阅自定义 shell 环境。

    NoProfile 参数

    要在没有配置文件的情况下启动 PowerShell,请使用启动 PowerShell 的程序 pwsh.exe 的 NoProfile 参数。

    首先,打开一个可以启动 PowerShell 的程序,例如 Cmd.exe 或 PowerShell 本身。您还可以使用 Windows 中的“运行”对话框。

    类型 :

    pwsh -NoProfile
    

    有关 pwsh.exe 参数的完整列表,请键入:

    pwsh -?
    

    简介和执行政策

    PowerShell 执行策略部分决定您是否可以运行脚本和加载配置文件(包括配置文件)。 受限执行策略是默认策略。它阻止所有脚本运行,包括配置文件。如果您使用“受限”策略,配置文件将不会运行,并且其内容也不会应用。

    Set-ExecutionPolicy 命令设置并更改您的执行策略。它是适用于所有 PowerShell 会话的少数命令之一,因为该值保存在注册表中。您不必在打开控制台时进行设置,也不必在您的配置文件中存储 Set-ExecutionPolicy 命令。

    配置文件和远程会话

    PowerShell 配置文件不会在远程会话中自动运行,因此配置文件添加的命令不会出现在远程会话中。此外,$PROFILE 自动变量不会填充到远程会话中。

    要在会话中运行配置文件,请使用 Invoke-Command cmdlet。

    例如,以下命令在 $s 中的会话中从本地计算机运行“当前用户,当前主机”配置文件。

    Invoke-Command -Session $s -FilePath $PROFILE
    

    以下命令在 $s 中的会话中从远程计算机运行“当前用户,当前主机”配置文件。由于未填充 $PROFILE 变量,因此该命令使用配置文件的显式路径。我们使用点源运算符,以便配置文件在远程计算机上的当前范围内执行,而不是在其自己的范围内执行。

    Invoke-Command -Session $s -ScriptBlock {
      . "$HOME\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1"
    }
    

    运行此命令后,配置文件添加到会话的命令将在 $s 中可用。

    参见

    • about_Automatic_Variables
    • about_Execution_Policies
    • about_函数
    • about_提示
    • about_Remote
    • about_范围
    • about_签名
    • Set-ExecutionPolicy

    您需要 登录账户 后才能发表评论

    取消回复欢迎 发表评论:

    关灯