Loading... ## 前言 `Windows Terminal`是微软官方推出的更现代的终端工具, 相较于直接使用`cmd/powershell`, 使用体验更加完美. 这里记录下在WIN10专业版系统上部署终端以及安装`oh-my-posh`进行美化和命令行功能增强的过程, 使其接近`oh-my-zsh`的体验. <span style='color:red'>注意: 因为属于复盘记录, 以下内容的部分截图包含了最终部署好的效果.</span> --- ## 终端安装 `Windows Terminal`有多种安装方式, 这里我们直接在微软应用商店里搜索"windows terminal", 然后点击安装即可. * 因为已经安装好了, 所以下图中显示的为"打开"而不是"获取" ![2977225686-tuya.webp](https://zoe.red/usr/uploads/2024/09/3552425314.webp) --- ### 扩展(可选): `powershell` 版本更新 * `powershell`作为`windows terminal`的默认shell存在, 最新的`powershell`提供了更多的特性和功能, 为了更好的体验, 建立考虑升级计划. * 官方升级指南: [链接](https://learn.microsoft.com/zh-cn/powershell/scripting/install/installing-powershell-on-windows?view=powershell-7.2) * 实施准备: winget工具初始化 * winget项目地址: https://github.com/microsoft/winget-cli * 参照客户端安装说明, 打开`App Installer`对应的页面, 点击`安装`, 会跳转到本地的应用商店, 继续安装过程, 主要环节如下图 > winget工具初始化, 为后续安装最新版powershell等做准备 ![PixPin_2024-09-12_06-36-45-tuya.webp](https://zoe.red/usr/uploads/2024/09/645067421.webp) 验证安装版本: 在打开的`powershell`中, 执行`$host`或者`$psversiontable`, 可以发现系统自带的为v5.1.\*.\*版本 ![1218650719-tuya.webp](https://zoe.red/usr/uploads/2024/09/88748462.webp) `powershell`升级: 参考官方升级指南, 使用`winget`命令查找并升级 * 查找结果显示最新的`powershell`稳定版安装包版本v7.4.5.0 * 注意: 安装好的`powershell-7.4` 会安装到新目录,与系统自带的v5.1并行存在/运行。 * v7.4路径: "C:\Program Files\PowerShell\7\pwsh.exe" * v5.1路径:"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" ```powershell ➜ ~ winget search Microsoft.PowerShell 名称 ID 版本 源 --------------------------------------------------------------- PowerShell Microsoft.PowerShell 7.4.5.0 winget PowerShell Preview Microsoft.PowerShell.Preview 7.5.0.4 winget ➜ ~ winget install --id Microsoft.Powershell --source winget 已找到 PowerShell [Microsoft.PowerShell] 版本 7.4.5.0 此应用程序由其所有者授权给你。 Microsoft 对第三方程序包概不负责,也不向第三方程序包授予任何许可证。 正在下载 https://github.com/PowerShell/PowerShell/releases/download/v7.4.5/PowerShell-7.4.5-win-x64.msi ██████████████████████████████ 103 MB / 103 MB 已成功验证安装程序哈希 正在启动程序包安装... 已成功安装 ``` 关闭全部`windows terminal`窗口后, 重新启动, 此时可以看到最新安装的`powershell`存在了 ![2456093363-tuya.webp](https://zoe.red/usr/uploads/2024/09/1556829751.webp) 打开设置页面, 在"启动"选项卡页面, 修改默认shell为最新的`powershell7.4`, 点击保存, 使配置生效. ![3296109665-tuya.webp](https://zoe.red/usr/uploads/2024/09/3596795081.webp) 重新打开终端, 验证效果: ![2541974105-tuya.webp](https://zoe.red/usr/uploads/2024/09/395286110.webp) > 备注: 如果以上过程卡在`winget`工具安装环节, 也可以跳过直接在windows store搜索`powershell`并安装 ![PixPin_2024-09-12_06-14-07-win-store-install-powershell-tuya.webp](https://zoe.red/usr/uploads/2024/09/3845164545.webp) --- ### 扩展(可选): 安装 `gsudo` * 使得在终端中可以临时提升管理员权限执行一些操作, 效果类似于Linux中`sudo` * 官方安装指南: https://gerardog.github.io/gsudo/docs/install * 备注: `gsudo`只是一个便携的控制台应用: 部署过程除了将 gsudo 路径添加到 系统环境变量`PATH` 之外,不需要 在Windows上部署相关服务,也不会做任何其它修改。 参照官方安装指南, 使用`winget`工具安装`gsudo` * 安装后需要重启终端,刷新 `PATH` 环境变量 ```powershell winget install gerardog.gsudo ``` 验证效果: 关闭并重新启动`windows terminal`, 执行如下命令 * 执行提权前后对比如图: 管理员/特权模式也会在当前选项卡左上角多出"Administrator"的标记, 输入`exit`会退出特权模式 ```powershell # 示例: 切换到管理员模式powershell # 使用升级安装的v7.4版本 gsudo pwsh # 使用系统自带的v5.1版本 gsudo powershell ``` ![image.png](https://zoe.red/usr/uploads/2024/09/3525118957.png) 如果你觉得 `gsudo` 不够直观,希望用 `sudo`,可以通过以下方式重命名: * 之后提升特权只需要执行`sudo`, 即可, 示例如图 ```powershell # 管理员模式下执行 Set-Alias 'sudo' 'gsudo' # 其它 #Set-Alias 'su' 'gsudo' ``` ![image.png](https://zoe.red/usr/uploads/2024/09/1479767080.png) --- ### 扩展(可选): Nerd Fonts字体安装 * `oh-my-posh`提供了不同的主题, 其中可能涉及一些一些特殊的字符显示, 需要用到Nerd Fonts, 否则可能显示乱码等异常. * 安装方式: * 官网下载(推荐): 选择一款自己喜欢的, 手动下载安装 * [官网链接](https://www.nerdfonts.com/) * [字体预览/下载](https://www.nerdfonts.com/font-downloads) * 大部分字体提供了在线预览 方便在切换对比不同 * 示例: JetBrainsMono Nerd Font, 下载好后, 全选字体, 右键批量安装即可 * winget安装 * 示例安装: JetBrainsMono Nerd Font ```powershell # 查找 winget search Nerd-Fonts """ 名称 ID 版本 匹配 源 --------------------------------------------------------------------------------- JetBrainsMono Nerd Font DEVCOM.JetBrainsMonoNerdFont 3.2.1 Tag: nerd-fonts winget LSDeluxe lsd-rs.lsd 1.1.5 Tag: nerd-fonts winget """ # 安装 # 需要管理员权限执行 winget install --id DEVCOM.JetBrainsMonoNerdFont ``` --- ## oh-my-posh 下面开始介绍`oh-my-posh`以及相关增强组件的安装配置(注意: **仅针对当前用户配置生效**) * 自动补全: ReadLine插件 * 项目地址/安装文档: https://github.com/PowerShell/PSReadLine * Git增强: `posh-git`插件可在`powershell` 提示符中显示` git`仓库状态摘要信息, 也提供git 选项补全 * 项目地址/安装文档: https://github.com/dahlbyk/posh-git * 终端图标显示增强: `Terminal-Icons`插件 * 项目地址/安装指南: https://github.com/devblackops/Terminal-Icons 安装配置脚本(管理员权限执行) ```powershell # 0. 检查/创建 配置文件 # 注意: 系统自带powershell 与 后来升级安装的最新pwsh的默认配置文件位置不同 # 详细区别可以分别在2个对应的终端中执行$PROFILE, 查看输出进行比对 if (!(Test-Path -Path $PROFILE )) { New-Item -Type File -Path $PROFILE -Force } # 1. oh-my-posh 安装 winget install oh-my-posh --source winget # 编辑配置文件, 添加默认主题 配置信息 # 示例主题: robbyrussell, 类似于oh-my-zsh的默认主题 # 本地全部可用主题查看: start $env:POSH_THEMES_PATH # 也可以参照主题模板, 定制自己的. 之后保存到$env:POSH_THEMES_PATH 路径下, 然后修改如下配置, 替换成自己的配置名即可 notepad $PROFILE """ oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\robbyrussell.omp.json" | Invoke-Expression """ # (可选) 主题选择 # 本地主题预览: 终端执行Get-PoshThemes # 在线主题链接: https://ohmyposh.dev/docs/themes # (可选)升级命令 # winget upgrade oh-my-posh --source winget ``` 增强插件部分(管理员权限执行) ```powershell #2. ReadLine 命令自动补全 安装 Install-Module PSReadLine # 编辑配置文件, 添加 按键功能绑定 相关配置信息 notepad $PROFILE """ Import-Module PSReadLine Set-PSReadLineKeyHandler -Key Tab -Function MenuComplete Set-PSReadlineKeyHandler -Key UpArrow -Function HistorySearchBackward Set-PSReadlineKeyHandler -Key DownArrow -Function HistorySearchForward """ # 3. posh-git Git增强功能 安装 PowerShellGet\Install-Module posh-git -Scope CurrentUser -Force # 编辑配置文件, 添加配置信息 notepad $PROFILE """ Import-Module posh-git """ # 可选扩展 # 终端文件图标显示增强 Install-Module -Name Terminal-Icons # 编辑配置文件, 添加 按键功能绑定 相关配置信息 notepad $PROFILE """ Import-Module -Name Terminal-Icons """ ``` 以上安装/配置完成后, 接下来开始进行字体设置, 切换为上面我们安装的`JetBrainsMono Nerd Font` ![1536528880-tuya.webp](https://zoe.red/usr/uploads/2024/09/1307491145.webp) 重新打开终端, 查看效果: ![image.png](https://zoe.red/usr/uploads/2024/09/2195289058.png) --- ## 扩展: 终端 快捷键设置 习惯了tmux快捷键拆分窗口(左右/上下拆开成为多个panel)功能,庆幸 windows terminal也支持了快捷键自定义功能, 可以根据习惯修改,直接设置即可,个人修改方案如下: * 拆分窗格, split right: `ctrl+/`, 左右拆分 * 拆分窗格, split down: `ctrl + -`, 上下拆分 * 同时修改其它常用操作快捷键(参照iterm使用习惯) * 新建标签页: `ctrl+n`, 新开一个shell * 关闭窗格: `ctrl + w`, 关闭当前shell ![233758563-tuya.webp](https://zoe.red/usr/uploads/2024/09/1870041132.webp) ## 扩展 --- 在`Windows Terminal`中添加`Git-Bash`启动项目 * 安装git: * 官网手动下载安装: https://git-scm.com/download/win * 官网命令行自动下载安装: `winget install --id Git.Git -e --source winget` * 部署参见: https://www.cnblogs.com/cong-wang/p/15026535.html THE END 本文作者:将夜 本文链接:http://zoe.red/2024/610.html 版权声明:本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。 最后修改:2024 年 09 月 12 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏