美化过程其实分成两个部分,PowerShell 和 Windows Terminal,这两个软件是独立的,Windows Terminal 只是一个壳(载体),用来显示 PowerShell 的输出内容,最终执行 Shell 的还是 PowerShell。Windows Terminal 本身有主题机制,通过配置文件很容易更改主题。同样地,PowerShell 也可以进行个性化配置,但最强大的之处在于它的插件机制,可以通过引入模块到 PowerShell,增加 PowerShell 的功能。
所以接下来将独立配置 PowerShell 和 Windows Terminal。
1. 下载window Terminal
在微软应用商店下载即可,win11默认自带。
2. 安装Visual Studio Code(VS Code)
官网下载安装,不多说。
3. 配置powershell
3.1 安装scoop
scoop 是 Windows 平台的包管理工具(非官方),类似 Linux 的 yum 或者 mac 的 homebrew 。打开 PowerShell,输入命令:
# 设置执行权限
> Set-ExecutionPolicy RemoteSigned -scope CurrentUser
# 从网络下载脚本并安装
> Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')
# ( 如果出现错误提示,是因为访问不了目标地址,使用如下地址安装 )
> Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://cdn.yulinyige.com/script/scoop-installs.ps1')
可能出现的问题
网络问题,解决办法:使用vps代理
输入scoop,报错:scoop : 无法将“scoop”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。解决办法:由于scoop未正确安装,根据报错中的位置将其删掉,重新安装即可。
3.2 下载依赖包(oh-my-posh和posh-git)
使用管理员权限打开powershell,按步骤执行如下的命令,需要确认的,直接按y
Set-ExecutionPolicy AllSigned
Install-Module posh-git -Scope CurrentUser -Verbose
Install-Module oh-my-posh -Scope CurrentUser -Verbose
在使用install命令时,可能会由于网络不佳问题导致报错,可以根据日志信息,自行下载nupkg格式的安装包。将文件下载到本地后,后缀修改为zip,解压放在powershell的依赖包安装路径下即可。
获取powershell的依赖包安装路径命令
$Env:PSModulePath
3.3 下载字体(FantasqueSansMono-NF)
该字体是为了解决部分主题中显示乱码问题,使用scoop安装即可,安装好字体后,建议重启系统,否则可能会遇到powershell找不到该字体的情况。
> scoop search FantasqueSansMono-NF
> scoop bucket add 'nerd-fonts'
> scoop install FantasqueSansMono-NF
3.4 配置powershell主题
首先需要开启Prompt
# 这是开启默认配置的
> Set-Prompt
# 设置主题,Agnoster 是主题名
> Set-PoshPrompt -Theme Agnoster
输入完上面的命令后,会发现powershell的命令行界面发生了改变,但是会出现一些乱码的情况,因为当前使用的字体没有包含特殊的符号,编辑powershell默认的字体为刚才下载的字体即可。
powershell效果
但是上面开启的Prompt效果仅仅对当前的窗口有效,关闭窗口重开就没有了,我们需要将该主题配置写入powershell的配置文件中,输入PROFILE,可以直接使用vscode打开配置文件。
$PROFILE code
$PROFILE
将下面的配置信息写入配置文件中即可,每次启动powershell,它会自动加载配置文件。
Import-Module posh-git
Import-Module oh-my-posh
#设置美化主题
Set-PoshPrompt -Theme agnoster
#设置tab键补全
Set-PSReadlineKeyHandler -Key Tab -Function Complete
#设置上键为后向搜索历史记录
Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward
#设置下键为前向搜索历史记录
Set-PSReadLineKeyHandler -Key DownArrow -Function HistorySearchForward
3.5 增强Powershell的ls功能
dircolors 是 Linux 下的命令,可以设置 ls 指令在显示目录或文件时的色彩,同样的,如果也想让 PowerShell 显示彩色目录,可用插件 DirColors 实现。
# 安装 DirColors
> Install-Module DirColors
# 打开 PowerShell 配置
> code $PROFILE
在配置文件末尾添加一行,重启 PowerShell 就可以看到彩色目录了。
Import-Module DirColors
3.6 使用 ColorTool 自定义 PowerShell 文字颜色
上面说明了怎么使用oh-my-posh配置好powershell主题,oh-my-posh是更改显示内容的风格,而ColorTool是更改文字的颜色。
ColorTool是微软出品的用于更改Powershell文字颜色的工具。
# 安装微软官方颜色工具
> scoop install colortool
# 查看内置的配色方案,共有 8 种
> colortool --schemes
# 设置主题,后面是配色方案名称。
> colortool OneHalfDark.itermcolors
3.7 更换oh-my-posh主题
oh-my-posh内置了很多的主题,可以点击链接查看,挑选喜欢的主题,记录主题名称,修改配置文件中Set-PoshPrompt -Theme 后面的名称即可。
一些主题效果展示
4. 配置window Terminal
Window Terminal有两个配置文件,一个是默认的default.json,不能被修改,一个是setting.json,我们需要修改的就是这个文件,旧版本的window Terminal只能在配置文件(Profile.json)中修改,新版已经添加了配置的图形界面。
4.1 配置文件介绍
配置文件由四部分组成
-
Global Windows Terminal APP 整体的配置,启动参数、样式等,对应下图的 Global Config。 -
profiles 配置每个终端的样式。 -
schemes 终端配色方案。 -
actions 定义快捷键操作,一般默认即可。
globals属性设置了Windows Terminal的主要配置,如:默认使用的终端配置,使用的主题等。值得注意的是,defaultProfile使用GUID连接profiles的相关配置。profiles使用colorScheme属性连接schemes。详细释义如下。
「属性」 | 「释义」 | 「说明」 |
---|---|---|
alwaysShowTabs | 始终显示标签 | |
defaultProfile | 默认终端 | GUID,用于连接终端配置 |
initialCols | 默认列数 | |
initialRows | 默认行数 | |
keybindings | 快捷键配置 | |
command | 快捷键执行的命令 | |
keys | 快捷键 | |
requestedTheme | 主题 | |
showTabsInTitlebar | 在标题栏中显示终端窗口标签栏 | |
showTerminalTitleInTitlebar | 在标签栏中显示终端标签 | |
acrylicOpacity | 不透明度 | |
closeOnExit | 退出后关闭 | |
colorScheme | 颜色主题 | |
commandline | 命令行程序 | |
cursorColor | 光标颜色 | |
cursorShape | 光标形状 | |
fontFace | 字体 | |
fontSize | 字体大小 | |
guid | GUID | 终端配置标识 |
historySize | 历史大小 | |
icon | 图标 | |
name | 名称 | |
snapOnInput | 嗅探输入 | |
startingDirectory | 初始目录 | |
useAcrylic | 使用不透明度 |
背景图片、字体、大小、毛玻璃效果等设置在图形界面中可以直接操作,这里就不多说了。
4.2 添加配色方案
schemes 管理配色方案,同样是一个数组,每种配色方案会有一个名字 name ,引用配色方案就是通过 name 的值。默认预设了几种配色方案,可在 default.json 查看,可以点击官方链接查看。
// 典型的 schemes 格式
{
"schemes":[
{
"name": "Campbell", // 配色方案名称,必须的
"foreground": "#CCCCCC", // 输出显示字体颜色
"background": "#0C0C0C", // 背景色
"cursorColor": "#FFFFFF", // 光标颜色
"black": "#0C0C0C", // 箭头左边三角,git 目录的 .git 目录下提示箭头背景提示文字
"red": "#C50F1F", // ssh 后 vim 打开文本文件已输入行普通字符显示文字
"green": "#13A10E", // git 目录的 .git 目录下提示箭头背景提示
"yellow": "#C19C00", // git 目录的分支箭头背景提示
"blue": "#0037DA", // 目录箭头本体
"purple": "#881798", // ssh 后 vim 等工具打开文件后的 { 和 }等符号本体,git 更新完后显示的分支箭头背景提示
"cyan": "#3A96DD", // 引号及内部字符
"white": "#CCCCCC", // 未知
"brightBlack": "#767676", // cd 等 命令后面的 .. 和 * 等特殊符号,以及命令参数字符颜色
"brightRed": "#E74856", // 系统提示字符颜色:错误的命令,git status 显示
"brightGreen": "#16C60C", // ssh 用户权限显示
"brightYellow": "#F9F1A5", // 输入的命令字符
"brightBlue": "#3B78FF", // ssh 文件夹等高亮显示,ssh 目录,vim 打开文本文件未输入行 ~ 字符显示
"brightPurple": "#B4009E", // 未知
"brightCyan": "#61D6D6", // ssh vim 等工具打开文件后的 { 和 } 等符号背景
"brightWhite": "#F2F2F2" // 目录箭头左边和中间的提示文字
}
]
}
上面是配色方案在json文件中的含义,可以根据上面的配置说明自定义配色。网上也有一些别人做好的配色方案,Windows Terminal Themes 该网站收录了大量配色,可以直接复制配色添加到配置文件中使用。
4.3 添加ssh远程服务器
安装OpenSsh客户端
在系统设置--应用--中点击可选功能,找到OpenSsh客户端,点击添加功能选项添加即可。
设置SSH登录配置文件
打开window Terminal,先使用ssh命令行登录远程服务器,验证openssh客户端是否可用。
然后打开设置页面,找到setting.json文件,关键位置在profiles--list中
"profiles":
{
"defaults":
{
// Put settings here that you want to apply to all profiles.
},
"list":
[
{
// Make changes here to the powershell.exe profile.
"guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
"name": "Windows PowerShell",
"commandline": "powershell.exe",
"hidden": false
},
{
// Make changes here to the cmd.exe profile.
"guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
"name": "命令提示符",
"commandline": "cmd.exe",
"hidden": false
},
{
"guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
"hidden": false,
"name": "Azure Cloud Shell",
"source": "Windows.Terminal.Azure"
}
]
},
这个list中的三个{}中的内容,对应着window Terminal默认的三个配置,分别是**"Windows PowerShell"「,」“cmd”「,」“Azure Cloud Shell”**的配置内容。
我们需要添加一个ssh连接远程服务器的配置。复制其中的一个配置,并修改相应的内容即可完成添加。也可以在图形界面中点击“添加新配置文件按钮”。
添加如下内容到配置文件中
{
// 背景图片
"backgroundImage": "D:\Users\admin\Pictures\bule.jpg",
// 配色
"colorScheme": "NightLion v1",
// 命令
"commandline": "ssh -p 22 [email protected]",
"font":
{
"size": 13
},
// guid值,唯一标识符,随机生成
"guid": "{47bb9940-f45b-4ab3-bf86-354cbbc66fcb}",
//配置名称
"name": "linux",
"icon": "xxxx.jpg",
},
重点配置:
❝
guid:该值是唯一标识符,可使用new-guid获取一个新的guid
❞
❝
commandline:这个是启动该选项后默认运行的命令。
❞
❝
name:选项卡名称,用于区分
❞
❝
icon:选项卡图标,可以自定义位置
❞
将上面的配置文件修改后保持,重新启动window terminal,在下拉的三角中即可看到我们刚才添加的选项卡,点击选项卡,就会新建一个终端,输入密码即可成功连接到远程服务器。
ssh密钥登录配置
上面的配置需要每次都输入密码,比较麻烦,这里采用ssh密钥直接登录的方式,无需密码验证。
A. 在服务器端生成密钥
在服务器端的shell中执行命令
ssh-keygen
....
Enter passphrase (empty for no passphrase) :输入密码(为空,表示没有密码),建议为空
剩下的直接回车即可。
❝
该路径下的文件**“id_rsa”是私钥**,「“id_rsa.pub”是公钥」。「保证公钥在服务器端,私钥在本地端,就可以在本地端使用私钥进行免密登录远程服务器」
❞
在服务端输入以下命令,安装公钥
Cd .ssh
cat id_rsa.pub >> authorized_keys
// 上面的命令完成了公钥的安装,为了保证连接成功,还需要设置文件的权限。
chmod 600 authorized_keys
chmod 700 ~/.ssh
B. 将私钥拷贝到本地window系统中
C. 对密钥文件的权限进行修改
选择保持的id_rsa文件,右键--属性--安全--高级,点击左下角“禁用继承”,并在弹出的窗口中选中下面的“从此对象中删除所有已继承的权限”。
点击左下角的添加,在弹出的窗口中选中左下角的“选择主体”,并在弹出的小窗口的“输入要选择的对象名称”输入windows系统的用户名,点击检查名称,系统会自动校正与输入的用户名关联的具体对象名称
依次点击各个窗口的确定按钮关闭即可。
D. 修改配置文件
打开我们刚才配置好的window Terminal配置文件,修改「commandline的内容为」
"commandline" : "ssh -i D:\id_rsa [email protected]"
点击选项卡,即可看到直接连接到远程服务器了。
4.4 添加wls
WSL 是 Windows Subsystem for Linux 的缩写,译为适用于Linux 的 windows 子系统。
开启wls
打开控制面板--程序--启用或关闭windows功能,在“适用于linux的windows子系统”选项前面打勾
小技巧:使用快捷键 Win+s 打开搜索功能,在搜索框中输入关键字 「Windows 功能」,可以快速打开「「启用或关闭 Windows 功能」」。
安装linux子系统
在微软应用商店可以搜索到很多windows子系统
选择自己需要的linux系统版本,进入产品的安装界面,点击系统要求,查看当前设备是否满足系统要求。
点击安装即可,第一次启动Ubuntu会要求创建一个用户,输入账户和密码,设置完成后即可运行。
安装完成后,打开window terminal,即可看到wls已经配置好,可以按照之前的配置对wls进行界面美化。
End
原文始发于微信公众号(土豆的疯言疯语):Window Terminal美化及配置
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论