一、前言
Windows 终端是一个面向命令行工具和 shell(如命令提示符、PowerShell 和适用于 Linux 的 Windows 子系统 (WSL))用户的新式终端应用程序。 它的主要功能包括多个选项卡、窗格、Unicode 和 UTF-8 字符支持、GPU 加速文本呈现引擎,你还可用它来创建你自己的主题并自定义文本、颜色、背景和快捷方式。
以上内容引用自:Windows 终端概述 | Microsoft Docs
其最大的优点,在于他是微软公司的开源产品。
同时,微软也推出了开源的Powershell Core,微软终于有可以用的终端了!
Windows Terminal + Powershell Core的搭配,真心推荐入手一下子了。后续有可能会继续介绍下WSL(Windows Subsystem for Linux)。
好的,废话就这么多,走起。
二、安装Powershell Core
Powershell Core:这玩意儿和Windows自带的Powershell基本可以算是两个不同的东西了,相较于Windows 10自带的Powershell的颜值低,速度慢,错误提示冗长等等缺点,Powershell Core改变了太多。而且Powershell Core是.Net Core 跨平台战略的一个重要组成部分,其目的使.Net 在所有平台上通用。
在版本上,Powershell沿用了之前Powershell的版本号,现在主流Core版本号为7,最新版为7.3 Prerelease和7.2 LTS。本人选择的是7.2版本。
至于安装,请参考官网:
Github:https://github.com/PowerShell/PowerShell
三、安装Windows Terminal
介绍上面简单提过了,咱们直接安装。
微软页面:https://docs.microsoft.com/zh-cn/windows/terminal/
Github:https://github.com/microsoft/terminal
微软页面会调用Microsoft Store,这里就不介绍了,点两下就可以了。
Github在Releases下载的名为:Microsoft.WindowsTerminalPreview_1.13.10395.0_xxxxxxxx.msixbundle的文件,其中加粗部分可能根据版本不同而变化,推荐直接改名为Microsoft.WindowsTerminal.msixbundle。
上面咱们不是安装了Powershell Core吗?打开一个Powershell窗口,输入下面的命令进行安装:
Add-AppxPackage Microsoft.WindowsTerminal.msixbundle
# Microsoft.WindowsTerminal.msixbundle 为Github下载下来的文件名,根据自己情况修改
大概率第一次安装会报错:
输入以下代码导入Appx模块即可:
Import-Module Appx -UseWindowsPowerShell
通过此方法安装没有快捷方式,运行方法为开始-所有程序-终端,可以在开始中把“终端”拖到任意位置生成快捷方式。
四、简单美化
Windows Terminal已经安装完成,无特殊说明以下操作均在Windows Terminal中的Powershell Core窗口中进行。
先安装Powershell Core,后安装Windows Terminal的话,打开Windows Terminal终端会默认使用Powershell Core窗口打开。
1. 安装及启用oh-my-posh
输入以下代码安装oh-my-posh:
Install-Module oh-my-posh
输入以下代码启用oh-my-posh:
Import-Module oh-my-posh
# 导入oh-my-posh模块
Set-Theme Agnoster
# 设置使用Agnoster这个主题
Set-PoshPrompt Agnoster
# 如果上述命令报错,可尝试使用这条命令,官方更推荐上面的命令
Import-Module 是固定导入命令,想玩Powershell请记住这个命令
2. 设置字体
那么问题来了,启用oh-my-posh后,虽然颜色鲜艳好看了,但是会有乱码出现,这其实是正常现象,因为oh-my-posh使用的是Nerd字体。我们只需要安装任意一款Nerd字体,并将界面显示字体改为Nerd字体即可。
这里推荐一个网站:https://www.nerdfonts.com/font-downloads
有很多的字体下载,下载后解压缩,复制到C:\Windows\Fonts
即可,记得新安装字体需要从新打开终端。
我个人选用的是JetBrainsMono Nerd Font。
安装完字体,在终端顶部点击向下的箭头,选中设置:
左侧配置文件选择默认值(修改默认值以后所有通过Windows Terminal打开的窗口都生效,如果不想修改默认值请选择相应窗口修改)-外观-字体-选择Nerd字体:
效果如下:
刚刚设置的只是打开Windows Terminal显示的字体,为了以后单独打开Powershell时不会显示乱码,顺便把Powershell的字体也设置了。
打开任意Powershell窗口,在标题栏右键点击,选择默认值:
弹出窗口选择字体选项卡,选择Nerd字体即可:
3. 设置oh-my-posh主题
oh-my-posh有非常多的现成主题可以选择,样子请参考官方文档。
本人比较喜欢第一个主题:agnoster
,但是他的目录不是全部路径,且我不需要显示计算机名及用户名,所以对默认主题相应的进行了修改,如果嫌麻烦的可以跳过这一部分。
本地安装时自带的主题目录在:C:\Users\YOURUSERNAME\.oh-my-posh\themes
首先备份agnoster.omp.json
文件,根据自己的需求进行简单的修改,可以自己修改尝试下,修改错了可以恢复备份的文件即可。
我的修改后效果如下(第二次设置主题后为修改后效果,显示全部路径,取消主机名和用户名,保留了git分支):
如果引用其他非自带主题的话,可以使用下面命令启用:
Invoke-Expression (oh-my-posh --init --shell pwsh --config "C:\Users\kevinnots\.oh-my-posh\themes\agnoster.omp.json")
# 将最后面的路径替换为引用主题路径及json文件名即可
4. 安装DirColors
DirColors的作用就是在ls(其实Windows默认命令是dir)查看目录时,给目录、可执行文件着色,根据自己需求来选择。
以下命令安装并启用:
Install-Module DirColors
# 安装DirColors
Import-Module DirColors
# 导入DirColors模块
效果如下:
5.修改Powershell配置文件
默认状态下,导入模块只对当前窗口有效,为了每次打开终端或Powershell时,不需要重复输入代码导入模块,可以将模块导入命令写入Powershell配置文件中,相当于Linux的/etc/bashrc
或/etc/profile
文件。
Powershell有四种配置文件,分别为:本主机本用户,所有主机本用户,本机所有用户,所有主机所有用户。根据自己情况自行选择。如果搞不懂四种配置文件区别的可以选择本机本用户来使用。查看配置文件路径命令为:
$PROFILE
# 本主机本用户配置文件存档路径
$PROFILE.AllUsersAllHosts
# 所有主机所有用户配置文件存档路径
如果是新安装的Powershell Core的话,大概率是没有配置文件的,可以使用以下命令生成配置文件:
本机本用户(直接复制进Powershell窗口,回车运行即可,如果有不会重复创建覆盖):
if (!(Test-Path -Path $PROFILE)) {
New-Item -ItemType File -Path $PROFILE -Force
}
同理所有主机所有用户:
if (!(Test-Path -Path $PROFILE.AllUsersAllHosts)) {
New-Item -ItemType File -Path $PROFILE.AllUsersAllHosts -Force
}
然后使用notepad(Windows自带记事本)打开配置文件:
notepad $PROFILE
# 打开本机本用户配置文件
notepad $PROFILE.AllUsersAllHosts
# 打开所有主机所有用户配置文件
打开配置文件后,将下列命令复制进去,保存退出即可:
Import-Module oh-my-posh
# 导入oh-my-posh模块
Set-PoshPrompt Agnoster
# 设置主题
Import-Module DirColors
# 导入DirColors模块
如果喜欢打开就是空的界面的话,也可以在配置文件最后加入一个cls
来进行清屏。
更多详细内容可参考官方文档:https://docs.microsoft.com/zh-cn/powershell/module/microsoft.powershell.core/about/about_profiles?view=powershell-7.2
小结
基本上就这样了,我只进行了最简单的美化,其实Windows Terminal的美化方式还有很多,毛玻璃,透明啊,背景啊之类的,基本的编辑器美化它都能实现。有需要的小伙伴可自行研究。
Thanks for your watching.