前段时间 win11 更新了 AMD 三级缓存的补丁,我的 Lenovo R9000P 也是等不及想尝鲜了,这里就记录一下我在 win11 里安装配置各种 shell 的过程。首先简单介绍一下用到的工具和软件:
- Windows Terminal,终端管理、配置软件
- Powershell7,微软开源的跨平台 Shell,Powershell 升级版
- oh-my-posh,Powershell 上的开源主题引擎
- WSL2,Windows 上的 Linux 子系统,除了 IO 不如原生以外,其他方面的表现都和原生差不多,且支持 GUI
- oh-my-zsh,用于管理和简化 zsh 配置的开源 Shell 工具,内置多种主题,支持许多便利的插件
- WSA,Windows 上的安卓子系统,刚刚上架美区,对于普通 app 的支持还可以,但玩手游还不太行,虽然现在能调用独显(需要 WDDM3.0 和 WSL 专门的驱动),但独显调用非常得不积极,毕竟才刚开始对外开放
一、Windows Teminal
Win11 预装了 Windows Teminal 的 UWP 应用,就不用自己装了,只需要自己设置一下就可以了,预装的这个 Windows Teminal 设置界面是没有 GUI 的,需要修改 json 文件,如果要使用 GUI 设置的话,去 Microsoft Store 更新一下就可以了。当然 Win10 的话,就需要自己去 Microsoft Store 安装了。
Windows Teminal 我是很推荐装一个的,一方面它方便管理单个终端的配置,另一方面它又能像浏览器一样多开多个终端,还有官方的支持,可以说是很方便了。
二、Powershell7
我因为没有什么独特的需求,所以选择的是Powershell7.1.5 稳定版,直接下载安装包安装就行,Powershell7 和系统原版 Powershell 安装在不同目录,他们的使用互不影响。
此外,Powershell7 也可以在 Microsoft Store,但是因为 UWP 应用在沙盒中运行,如果你要装外网的包是不走系统代理的,所以并不是很推荐,虽然这个限制可以用一条 cmd(管理员) 命令解除:
FOR /F "tokens=11 delims=\" %p IN ('REG QUERY "HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Mappings"') DO CheckNetIsolation.exe LoopbackExempt -a -p=%p
这条命令会解锁所有的 UWP 应用的代理限制,请考虑是否符合你的需求。
1. Powershell 安装 oh-my-posh
oh-my-posh 是一个用于 Powershell 的主题引擎,主要作用是让你的 Powershell 不再那么老土,作为一个老宅,自然是喜欢弄这些花里胡哨的效果,下面是它的链接:
点进 release 下载 install 文件进行安装。
当然了 oh-my-posh 也可以通过 Powershell 进行安装:
Install-Module oh-my-posh -Scope CurrentUser
官方文档还提供了其他安装方式:
安装完后使用一下指令即可列出所有的主题:
Get-PoshThemes
然后就有了以下的画面,可以看到,每个主题的色块都怪怪的,这是因为字体缺少 oh-my-posh 所需的字符的缘故,我们需要下载一个支持完备的字体。
2. Windows 安装 NF 字体
oh-my-posh 在设计时使用的是 Nerd Font,所以我们必须确保下载的字体支持 Nerd Font 的标准,oh-my-posh 官方文档推荐我们使用
我是用的也是这种字体,下载解压后找到里面的 Meslo LGM NF.TrueType 字体文件(只需要这一个就行)拖入 Win11 的字体设置里就完成了 Meslo LGM NF 字体的安装。
然后在 Windows Terminal 内设置 Powershell7 使用 Meslo LGM NF 字体,再次 Get-PoshThemes
就可以看到各式的主题了。
3. Powershell 配置主题生效
然后选一个好康的安装,我选的是 sorin,比较喜欢这种简洁一些的^^,选好之后输入一下命令启用主题:
Set-PoshPrompt -Theme sorin
为了每次启动 Powershell 都让该命令生效,需要编辑一下 Powershell 的配置文件 $PROFILE,以下指令可以新建 $PROFILE,如果 $PROFILE 不存在的话
if (!(Test-Path -Path $PROFILE )) { New-Item -Type File -Path $PROFILE -Force }
接着键入 notepad $PROFILE
来编辑 $PROFILE,将 Set-PoshPrompt -Theme sorin
这行命令写进去即可。成效:
嗯,很好,,就是太朴素了,果然还是要花里胡哨的才行。
4. Windows Terminal 配置颜色
于是我又去iterm-2-colors-chemes找了下配色。
它的使用方法很简单,先在 Readme.md 里选一个妖艳的颜色,比如 Aurora,然后去"https://github.com/mbadolato/iTerm2-Color-Schemes/blob/master/windowsterminal/Aurora(你选择的颜色名).json" 这里,将里面的内容添加到 Windows Terminal 的 json 配置文件里的 "schemes" 中,再将你要改色的终端 "colorSchemes": Aurora(你选择的颜色)
就行。
5. Window Terminal 配置背景效果
从上面这些配置可以看出,我的审美真的非常微妙,一边想简洁,一边又不能太简洁,所以背景的话,我只设置亚克力模糊透明效果、调一下边距就好了,在 Windows Terminal 里就可以设置,各位如果喜欢也可以放两张图片上去,二次元也可以放几个老婆上去。
三、WSL2
在使用 WSL2 之前,我们需要先给 Powershell 提升一下,因为 WSL 很多指令需要用到管理员权限,所以我们要一种更方便的开启 Powershell 管理员的方法。
1. Powershell 安装 gsudo
gsudo 的项目地址:
安装 gsudo 只需要一条 Powershell 指令就行了:
PowerShell -Command "Set-ExecutionPolicy RemoteSigned -scope Process; iwr -useb https://raw.githubusercontent.com/gerardog/gsudo/master/installgsudo.ps1 | iex"
安装过程中会问你是否要使用 sudo
作为 gsudo
的别名,我这里选择是。安装完后重启,环境变量生效后就可以使用 sudo
来快速跳转到管理员级别的 Powershell 了。
2. 将管理员级别的 Powershell 添加到 Windows Terminal
如果你不想每次都输入 sudo
指令,你也可以将一个管理员级别的 Powershell 添加到 Windows Terminal,每次就打开这个 Powershell。只需要在 Windows Terminal 的 json 配置文件中 "profile" 的 "list" 里加上:
{
"acrylicOpacity": 0.80000000000000004,
"backgroundImage": null,
"colorScheme": "Aurora",
"commandline": "gsudo.exe pwsh.exe", //需要将 pwsh.exe 加入环境变量
"experimental.retroTerminalEffect": false,
"font":
{
"face": "MesloLGM NF"
},
"guid": "{981d83ca-4f2a-5b98-aa13-e9ddbcd91ab8}",
"hidden": false,
//Powershell7 的图标路径,你的位置可能不同,可以在 Windows Terminal 中查看
"icon": "ms-appx:///ProfileIcons/pwsh.png",
"name": "PowerShell Admin",
"padding": "8",
"startingDirectory": "%USERPROFILE%",
"useAcrylic": true
},
然后就可以看到 Windows Terminal 多了一个管理员 Powershell 的按钮
3. 安装 WSL2
首先打开 Microsoft Store 下载 Ubuntu 20.04 LTS 版
下载完成后,Powershell 管理员执行
wsl --install
安装过程如下:(安装完后需要重启,重启后就可以正常使用 WSL 了,Windows Terminal 也会自动添加一个 Ubuntu 终端)
查看一下当前 WSL 版本:
wsl -l -v
已经是 WSL2 了,如果你早就是 WSL1 用户则需要执行 wsl --update
然后 wsl --set-version Ubuntu-20.04 2
切换成 WSL2
一切安装完后使用 wsl
命令(或在 Window Terminal 新建)进入 Ubuntu,更着它的指示创建一个普通用户并设置密码,之后使用如下指令设置 root 密码
sudo passwd
如图,改密成功
4. 更换 apt 源
为了更好地安装使用 Linux 软件,我们需要对 apt 进行换源以摆脱网络的限制。
首先备份 apt 源:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
使用 Vim 编辑 sources.list,sudo vim /etc/apt/sources.list
,用下面阿里云镜像源替换掉原本的 Ubuntu 源:
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
然后执行更新:
sudo apt-get update && sudo apt-get upgrade
5. 安装 oh-my-zsh
首先需要说明的是 zsh 是一个强大的 shell 工具,和 bash 同属一类,但更强大,而 oh-my-zsh 则是为了管理和简化 zsh 的配置而开发的。
照例,先放上 oh-my-zsh 的地址:
先进行 zsh 的安装 sudo apt install zsh
并用检查是否安装成功 zsh --version
:
将 root 用户和普通用户都从 bash 切换到 zsh:(如果你不是 Ubuntu 子系统,zsh 的安装位置可能会变,可以通过 echo $SHEll 来查看 bash 的位置就知道 zsh 在哪了)
sudo chsh -s /bin/zsh && chsh -s /bin/zsh
然后安装 oh-my-zsh:(官方提供了三种基础的安装方式 curl、wget 和 fetch,这里以 curl 为例)
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
不出意外你输入这条命令后,得到的是 curl failed 的结果,因为 GFW 限制了你的网络,你的 curl 指令和 wget 指令全部木大。。。
所以现在有两种方法:
- 一是翻出去,由于 WSL2 使用了 Hyper-V 服务,有一张自己的虚拟网卡,即使 Win11 上有代理也需要解决一堆问题,这里就不展开了,改天写篇文章来讲讲 WSL2 的代理问题
- 二是换源,下国内镜像就好了,又方便又快速,所以这里用第二种方法,使用 gitee 的镜像来安装 oh-my-zsh:(开头用 sudo 是以 root 用户的身份进行安装,如果想给普通用户装则不要加 sudo)
sh -c "$(curl -fsSL https://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh)"
轻 松 秒 杀(发出笔记本维修厮的叫声)
(可选)Oh-my-zsh 多用户共享:
以上的安装仅仅只是将 oh-my-zsh 安装在了普通用户目录下(如果你没有使用 sudo 的话)。为了实现 oh-my-zsh 的所有用户共享,我们需要将其移动到 /usr/share 文件夹下,这样做完后,每个用户只需要配置自己的 ./zshrc 就能使用了,具体做法参考上面的链接,或者直接敲入下面的命令:
# 移动 oh-my-zsh 目录到 /user/share
sudo mv /home/你的用户名/.oh-my-zsh /usr/share/oh-my-zsh
cd /usr/share/oh-my-zsh/
# 将配置文件模板复制到 zshrc,以后都从这个zshrc文件导出模板,方便使用
cp templates/zshrc.zsh-template zshrc
#从 MarcinWieczorek 的 AUR 包中获取补丁文件并应用于 zshrc 文件
wget https://aur.archlinux.org/cgit/aur.git/plain/0001-zshrc.patch\?h\=oh-my-zsh-git -O zshrc.patch && patch -p1 < zshrc.patch
# 创建到 zshrc 文件的硬链接,以便它为新用户创建一个实际的独立副本
sudo ln /usr/share/oh-my-zsh/zshrc /etc/skel/.zshrc
#默认新用户使用 zsh,这样每个新创建的用户都可以直接用 oh-my-zsh 了
sudo useradd -D -s /bin/zsh
如果你要更改默认的 zshrc 设置并让他生效,就更改 /usr/share/oh-my-zsh/zshrc 这个文件,然后对每个用户执行以下操作即可:
cp /usr/share/oh-my-zsh/zshrc ~/.zshrc
6. 配置 oh-my-zsh 主题
接下来就可以去挑选主题了:
由于 oh-my-zsh 下 sorin 主题的表现没有 oh-my-posh 下的表现好,我决定装一个 powerlevel10k,这款主题也是非常得受欢迎:
依旧是使用 gitee 的源来装:
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
装完后使用 vim ~/.zshrc
配置好 ZSH_THEME="powerlevel10k/powerlevel10k"
(如果你执行了上方可选内容,可以更改 /usr/share/oh-my-zsh/zshrc,然后在 cp 到普通用户和 root 用户),当然了 powerlevel10k 也用到了默认字体集没有的字符,所以得在 Windows Terminal 中将 Ubuntu 终端的字体设置成之前下载的 Meslo LGM NF 字体才能正常显示,然后顺便也换个颜色、改个亚克力透明效果。
此时重启终端你就可以看到如下的配置界面:(没有看到也可以使用 p10k configure
指令手动调出)
更着 powerlevel10k 的指示配置完成后就成了这样:
7. WSLg 体验
用 Win11 下的 WSL2 当然要体验一下 WSLg,虽说这个功能 Win10 预览版就有了,但不妨碍我现在才第一次用(:
微软官方给了一些 Example:
## Update list of available packages
sudo apt update
## Gedit
sudo apt install gedit -y
## GIMP
sudo apt install gimp -y
## Nautilus
sudo apt install nautilus -y
## VLC
sudo apt install vlc -y
## X11 apps
sudo apt install x11-apps -y
## Google Chrome
cd /tmp
sudo wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb
sudo apt install --fix-broken -y
sudo dpkg -i google-chrome-stable_current_amd64.deb
## Microsoft Teams
cd /tmp
sudo curl -L -o "./teams.deb" "https://teams.microsoft.com/downloads/desktopurl?env=production&plat=linux&arch=x64&download=true&linuxArchiveType=deb"
sudo apt install ./teams.deb -y
## Microsoft Edge Browser
sudo curl https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-dev/microsoft-edge-dev_93.0.946.1-1_amd64.deb -o /tmp/edge.deb
sudo apt install /tmp/edge.deb -y
我这里就先不装这些了,因为后面我也不太用得着,我就随便运行一个 GUI 程序看看行不行吧,所以就翻出来了一年前下载的一笔未动的 Games101 的作业(本来准备用心学的,结果两个视频看了一年。。),配置好 eigen3、opencv、g++、gdb、cmake 后运行:
可以看到成功弹出了一个 GUI,因为这个作业我没写,所以也不知道 GUI 里到底应该是什么,但能弹出来 GUI 就说明我的安装还是蛮 ok 的,作业嘛,等以后再写吧^^
四、WSA
前些天微软刚刚在美区上线了安卓子系统,国区还没有动静,但 Win11 Inside Perview Beta 通道已经可以装了,如果你不是 Win11 预览版可以在这里加入:
1. Microsoft Store 安装 WSA with Amazon Appstore
如果你是 Windows 预览体验用户的话请将通道切换成 Beta 通道,然后浏览器打开美区的 Microsoft Store :(不需要科学上网)
进入之后,点击 Get 按钮会弹出对话框请求打开 Microsoft Store
然后在 Mircosoft Store 点击下载就行了
安装完后点击启动
最开始会启动 Aamazon Appstore,直接关掉就好,我们需要的是它附带安装的 WSL,在开始菜单点击 Windows Subsystem for Android™️
2. 设置 WSA
为了方便我便我们后续的操作,我们需要进行两个设置:
- 打开 WSA 的开发人员模式,并开启 USB 调试,记录下 ADB 连接地址
- 在 Win11 防火墙中允许 WSA 访问局域网
3. 安装 .apk 文件到安卓子系统
照理说使用之前附带的 Amazon Store 就可以完成大部分应用的安装了,但是由于我的 Amazon 账号不是美区,所以有地区限制,也难以安卓一些本土的应用,所以我选择使用 adb 命令来安装应用
adb(Android 调试桥)是用于多个平台与安卓设备通信的命令行工具,是 AOSP(安卓开源项目)的一部分,可以作为 Android Studio 的一部分安装,也可以打开下方的 Android SDK Platform Tools 安装:
下载完后解压到任意文件夹,然后将 adb.exe 所在的文件夹添加到环境变量中,重启电脑。
在 Powershell 中使用 adb 连接到 WSA:
#连接地址可以在 WSA 设置下的开发者模式一栏查看
adb connect 127.0.0.1:58526
使用 abd 安装 apk:
adb install 你的apk路径
顺利地安装成功:
然后就可以在开始菜单打开应用了,说起来明日方舟最近越来越无聊了,体力也懒得刷了... z Z
虽然装上了安卓应用,但能用和能日常使用还是有很大区别的,为了能流畅地运行游戏,我又去装了支持 WSL 的 Nvidia 显卡驱动和 Microsoft Store 的 OpenGL、OpenCL 兼容包,老实说还是不如模拟器,想在 WSA 上玩游戏还是太早了。