[转载]简单配置与美化Powershell和Terminal

前言

部分开发者可能习惯用 PowerShell,但我习惯直接在 WSL 中做复杂脚本的开发。

PowerShell 官方指南: PowerShell 文档 - PowerShell | Microsoft Docs

目前默认是 5.x 版本,可以手动安装最新的 7.x。

官方文档:Windows 终端自定义提示符设置 | Microsoft Docs

PowerShell 美化

PowerShell 是微软的 shell 程序,比 cmd 先进,内置在 Windows 10 内的版本是 5.0,但是现在已经有全新的 PowerShell Core 7.0 可供下载安装了,个人建议下载一个,毕竟后面那个跨平台()但是不下也可以,不妨碍后面的教程:

因为苹果 zsh 的终端有各种花里胡哨的东西,所以 PowerShell 也想变漂亮;在 zsh 中有一个比较厉害的插件叫做 oh-my-zsh,所以到 PowerShell 这里来就整了一个差不多的 oh-my-posh,也可以美化 PowerShell;

因为 Windows Terminal + PowerShell Core + oh my posh 已经被微软官方认定为最佳组合了,所以官方也整了一个教程教你怎么使用这个玩意了,所以可以直接去看

安装 Powerline 字体

shell - 字体配置

安装 oh my posh

Oh-My-Posh 为 PowerShell 提供主题了功能。

官方有安装文档:Windows | Oh My Posh

下载安装 oh-my-posh

winget install oh-my-posh --source winget
 
 

这将安装一个应用程序 oh-my-posh.exe

编辑相应配置文件

官方文档 Change your prompt | Oh My Posh

1. 在 Windows Terminal 中敲下下面两行命令

  • 第一条(确保先创建配置文件)
New-Item -Path $PROFILE -Type File -Force
 
 
  • 第二条(使用记事本打开配置文件)它的作用和 Linux 中的 ~/.bashrc 相似;
notepad $PROFILE
 
 

2. 在打开的记事本中写入如下内容脚本文件,并保存


# 导入oh-my-posh
oh-my-posh init pwsh | Invoke-Expression
 
 
  • 命令表示导入 oh-my-posh

更改后,请重新加载配置文件以使更改生效。

. $PROFILE
 
 

更新 oh-my-posh

winget upgrade oh-my-posh
 
 

自定义主题

Customize | Oh My Posh

oh-my-posh 提供了一些预留主题,查看 Themes | Oh My Posh

agnosterplus 主题为例,想要更改主题:

notepad $PROFILE
 
 

根据官方文档 Windows | Oh My Posh 所说,应当这样更改:

  • 这里的 $env:POSH_THEMES_PATH 指向 oh-my-posh 的预置主题目录

更改原本的 init 行,更改主题为 agnosterplus

# 导入oh-my-posh 并且应用agnosterplus主题

oh-my-posh init pwsh –config $env:POSH_THEMES_PATH\agnosterplus.omp.json” | Invoke-Expression

更改后,请重新加载配置文件以使更改生效。

. $PROFILE
 
 
  • 如果你没有使用 PowerLine 字体,使用经典主题 robbyrussell 也不会出现乱码方块问题。

配置完后,每次打开 Windows Terminal 中的 Power shell 都会执行配置文件中的命令。

预留主题

如果不是很喜欢默认主题,可以自行选择主题样式。

oh-my-posh 提供了一些预留主题,查看 Themes | Oh My Posh

也可以使用以下命令来查看所有主题以及主题的名称

Get-PoshThemes
 
 

找到喜欢的主题后,可以在之前的脚本文件中将主题名称替换为你想要主题的名称。

  • 注意:此处获取主题在 oh-my-posh2 的命令为:

    Get-Theme
       
       

这时,你会发现出现了一些方框,效果并不像图片上那么好。那是因为,还没有给主题安装适应的字体。

安装 posh-git

posh-git 是一个 PowerShell 模块,它通过提供可在 PowerShell 提示符中显示的 Git 状态摘要信息来集成 Git 和 PowerShell,

Posh-Git 提供了 Git 状态信息的提示,并为 Git 命令、参数、远程和分支名称等添加 tab 自动补全;

首先,你得安装 git,git - 安装 - 配置

在 Windows 上,脚本执行策略必须设置为 RemoteSignedUnrestricted。通过执行 Get-ExecutionPolicy 来检查脚本执行策略设置。

如果策略未设置为两个必需值之一,请以管理员身份运行 PowerShell 并执行 。

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Confirm
 
 

congPowerShell 提示符执行以下两个命令之一,具体取决于(A) 你从未安装过 posh-git,还是 (B) 你已经安装了以前的版本:

(A) 你从未安装过 posh-git

# (A) You've never installed posh-git from the PowerShell Gallery
PowerShellGet\Install-Module posh-git -Scope CurrentUser -Force
 
 

注意:如果系统要求你信任 PowerShell 库中的程序包,请回答以继续安装 posh-gityes

或(B) 你已经安装了以前的版本:

# (B) You've already installed a previous version of posh-git from the PowerShell Gallery
PowerShellGet\Update-Module posh-git
 
 

编辑相应配置文件

官方文档 dahlbyk/posh-git: A PowerShell environment for Git (github.com)

1. 在 Windows Terminal 中敲下下面两行命令

  • 第一条(启动编辑 power shell 配置文件的引擎)
if (!(Test-Path -Path $PROFILE )) { New-Item -Type File -Path $PROFILE -Force }
 
 
  • 第二条(使用记事本打开配置文件)它的作用和 Linux 中的 ~/.bashrc 相似;
notepad $PROFILE
 
 

2. 在打开的记事本中写入如下内容脚本文件,并保存

# 导入posh-git
Import-Module posh-git
 
 
  • 命令表示导入 posh-git

然后使用命令让配置文件生效

更改后,请重新加载配置文件以使更改生效。

. $PROFILE
 
 

安装 Nerd Fonts 字体并应用

1. 安装字体

shell - 字体配置

2. 使用字体

windows-terminal 字体配置

创建 linux style 的命令 alias

官方已经提供了一些兼容性别名 - PowerShell | 微软文档 (microsoft.com)

方式 1 – 通用别名创建函数

自己可以增加一个创建别名的函数:django - 相当于 PowerShell 中的 Bash 别名 - Stack Overflow

一般通过创建函数(New-Item Function) 的方式来创建 Alias,而不是使用官方的 Set-Alias 命令,详情见:关于函数提供程序 - PowerShell | Microsoft Docs

$profile 中添加

notepad $PROFILE
 
 
function New-BashStyleAlias([string]$name, [string]$command)
{
    $sb = [scriptblock]::Create($command)
    New-Item "Function:\global:$name" -Value $sb | Out-Null
}
 
 

调用示例如下

New-BashStyleAlias django-admin-jy 'jython.exe /path/to/jython-dev/dist/bin/django-admin.py @args'
 
 

官方已经有了 ls 的别名,但还没有 la``ll

New-BashStyleAlias la ls
New-BashStyleAlias ll ls
 
 

实际上通过创建函数(New-Item Function) 的方式来创建别名 Alias,将不能进行 tab 自动补全,详情见:关于函数提供程序 - PowerShell | Microsoft Docs

通过这种方式创建的别名,要删除,使用命令

Remove-Item Function:<Function name>
 
 

例如删除 ll 别名

Remove-Item Function:ll
 
 

获取所有的函数

Get-ChildItem -Path Function:
 
 

方式 2 – 定义一个函数

另外一种方式是定义一个_函数_,这样可以自动完成参数名称(在 - 之后按 tab 键),缺点是你要为每个 alias 都编写一个函数

function django-admin-jy {
    jython.exe /path/to/jython-dev/dist/bin/django-admin.py @args
}
 
 

方式 3 – 官方的 Set-Alias 等命令

也可以通过官方的方式(Set-Alias 等)来创建 alias

要注意的是,PowerShell 别名(Set-Alias 等命令)不允许使用参数,它们只能引用命令名称,所以这种方法不能写出通用的创建函数

命令名称可以是 cmdlet函数的名称,也可以是脚本或可执行文件的名称/路径

阅读文档

首先设置一个保存别名的文件

在配置文件所在的目录创建一个新的配置文件 profile.ps1

notepad $((Split-Path $profile -Parent) + "\profile.ps1")
 
 

在其中写入一些 alias

Set-Alias -Name la -Value ls
Set-Alias -Name ll -Value ls

 
 

这个新的配置文件将在 powershell 加载时加载

以后想要修改,可以

notepad $((Split-Path $profile -Parent) + "\profile.ps1")
 
 

其实际保存在 Documents\PowerShell\profile.ps1,Documents 是你系统的文档文件夹的路径

Pasted image 20220609151207

简单配置与美化Powershell和Terminal

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值