wsl安装和配置
wsl是让我从ubuntu切换到windows的重要原因。但是由于最近重装windows系统发现了很多问题。特地总结了一下。
第一部分: 安装
网上很多教程都是各种功能开启,还要下载微软提供的一些工具。但是至少我在高版本的windows 10上是很简单的。首先是用用管理员权限打开power shell
1 | # 这里是列出wsl可以安装的版本 |
第二部分: 迁移wsl
接下来就是等待安装完成。感觉是不是很简单。可是默认微软wsl是安装在C盘的, 这样导致我哪天系统恢复重装,那我ubuntu里的东西是不是没了。虽然我本来就是大部分目录都是外挂到windows下的,但是还是有很多工具在自己的目录下的,丢失了会比较可惜。所以我们必须用工具进行迁移。
1 | C:\Users\timo\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_XXXXXX |
原先我一直是使用LxRunOffline这个工具进行迁移的,但是当时我记得我的ubuntu子系统是用windows商店安装的,没有任何问题,但是这次是wsl里直接安装的。问题我看还有人提了对应的issue,但是作者估计还得看看。
https://github.com/DDoSolitary/LxRunOffline/issues/195
那这样就没办法了吗? 当然不是,wsl自己有导入导出的功能,只是原先不知道还能指定目录导入,看了这篇文章发现原来还可以这样做。
https://blog.csdn.net/weixin_37210821/article/details/115440535
1 | # 列出有哪些子系统 |
第三部分: 设置默认用户
你以为这样就万事大吉了吗? 出现了新问题,这个子系统启动的用户居然都是root,虽然我可以su到其他账户,但是默认root让人比较不爽。网上教程都是这样的(包括上面那篇文章里):
1 | Ubuntu config --default-user user |
但是这个在我这边是执行不了的。放狗搜索了一下,找到了这个解法:修改注册表
https://cn.kevinmcgowan.org/303153-how-to-set-default-user-NDQJEO-article
- 采用 regedit 并导航到键: HKEY_CURRENT_USER/SOFTWARE/Microsoft/Windows/CurrentVersion/Lxss
- 检查其子项以找到在项目中具有正确名称的分发 DistributionName
- 创建或修改名为DWORD的项目 DefaultUid 并将其设置为默认用户的用户ID(uid)。这里root用户是id 0 而第一个用户ID是1000(0x3e8).
作者写的很详细了,这里唯一要注意的就是最后一条id,需要改成 10进制,然后设置为 1000
好了,又踩完一个坑,后面居然又来一个,ubuntu默认目录居然是windows system32,这个也太无语了。
第四部分: 设置起始目录
在windows terminal的设置里将启动目录设置为如下就可以了。当然自己看下就明白含义了。
1 | \\wsl$\Ubuntu-20.04LTS\home\timo |
同时为了跟windows的磁盘交互性能,建议使用wsl 1
1 | > wsl --set-version Ubuntu-20.04LTS 1 |
第五部分: 展示
好了,windows terminal + wsl + ubuntu + zsh, 作为sa的基本顺手的工具就这样完成了。 因为使用oh-my-zsh,所以基本不需要什么设置。
这个是windows termial的一些设置
https://docs.microsoft.com/zh-cn/windows/terminal/
https://www.sitepoint.com/windows-terminal/
具体的配色方案可以参考
https://github.com/mbadolato/iTerm2-Color-Schemes/tree/master/windowsterminal