Windows Terminal + WSL2 + CENTOS 配置Windows命令终端
本文最后更新于:May 12, 2020 am
本文主要用于记录在Windows上使用WSL2和centos系统打造一个免费高效的shell终端的配置过程以及界面优化过程。
1、选型分析
之前一直都是使用termius和windows来进行ssh管理,但是最近termius要过期了(没钱续费),不用盗版(版权意识),ssh的Agent Forwarding功能是个人刚需且为termius的付费版才有的功能,所以开始研究windows上免费的ssh客户端管理工具或者是方式。
(mac系统用户可以跳过这篇文章)首先考虑到了mac,因为mac系统是类unix系统,在命令行终端操作上要比windows好太多,但是没钱买mac,所以pass
然后如果直接使用linux系统的话虽然shell的问题很容易解决,但是其他的办公软件无法使用或者很难用;如果用虚拟机跑linux,启动麻烦,耗费性能,文件管理也十分麻烦;所以pass
还有就是各种windows上的各种免费第三方工具,如powershell、GitBash、cmder等等,能实现一定的Linux命令和shell功能,但是相比原生linux还是功能残缺。
但是如果只要管理各种ssh客户端的话很多免费工具已经足够优秀了,而笔者本次除了管理ssh之外还想要实现一定的shell功能,因此最后锁定Windows10上面的2004版本的wsl2工具,用它来运行一个linux系统,虽然是残缺的Linux,但是在shell功能和ssh功能上和直接运行Linux并无差异。唯一需要注意的就是windows的版本要比较新。
WSL 2 is only available in Windows 10 builds 18917 or higher
2、安装wsl
windows官网的安装教程比较详细,并且wsl的安装启用比较简单,我们可以直接使用管理员模式的powershell通过命令行来启用:
1 |
|
命令顺利执行完后需要重启,这时候输入wsl --help
就可以看到wsl已经安装成功。
3、安装centos
Windows的应用商店中有一些不错的linux发行版,包括很多同学都很喜欢的ubuntu,但是个人比较熟悉使用centos,而应用商店中的centos是要收费的,不过好在github上面有CENTOS官方开源的安装包,我们这里使用github上的安装包进行安装。
如果使用应用商店中的发行版直接点击安装即可。随后便可以跳过下面的centos的安装部分。
首先我们去centos的GitHub页面下载对应的安装包:
注意这里要切换分支进行下载,以centos7-x86.64
为例,这里对应的就是最新的centos7.8
系统,我们只需要下载对应的tar.xz
压缩包即可。
1 |
|
接着我们以管理员身份打开一个powershell窗口:
1 |
|
注意这里安装完成之后需要重启powershell来进行下一步的安装
1 |
|
接下来就可以使用下述两种方式尝试启动
1 |
|
4、升级centos为wsl2
1 |
|
5、配置windows terminal
使用windows的cmd或者powershell都可以直接输入wsl命令进入到wsl系统中进行操作,但是由于这两者的界面比较丑,因此我们这里使用可以定制更多参数的windows terminal来进行替换。
不过windows terminal目前来说属于比较轻量级的产品,如果需要更多的功能可以考虑一下其他的软件,这里额外推荐一个免费的全平台终端terminus
,注意比收费的termius要多一个字母n,也是github上面的一个开源项目,免费高效且内置多种主题和少量还可以的插件。
5.1 安装windows terminal
windows terminal直接使用win10自带的应用商店即可搜索下载安装。
5.2 安装powerline/fonts
powerline/fonts是github上面的一个项目,涵盖了较多的字体,windows本身内置的字体可能在shell中显示不太美观,所以这里我们需要在windows系统中和wsl中都安装字体。
首先在wsl中使用git拉取项目并且安装
1 |
|
在Windows中也需要安装该字体,以UbuntuMono为例,同样是下载之后进入到对应的文件夹中手动安装所有的ttf字体即可:
(注意尽量以管理员身份为本机所有用户安装)
5.3 配置iTerm2-Color-Schemes
主题的效果我们可以在官网进行预览,配置参数我们可以在对应的GitHub中找到。需要注意的是要找到对应的windows terminal
目录中的配置。
5.4 配置setting.json
setting.json的参数非常多,我们可以根据自己的习惯设定显示界面和快捷键等操作,并且还可以添加背景图片,自定义不同shell的图标icon和主题等用以区分不同的shell避免误操作。
1 |
|
5.5 ssh_config
最后我们再搭配ssh自带的ssh_config来添加各种自定义ssh参数,如果需要在这上面开启ssh的Agent Forwarding功能,个人习惯是单独创建一个脚本并且在bash中设置alias快捷操作。
1 |
|
然后在bashrc文件中添加alias即可快速操作,对应的ssh_config参数可以使用man ssh_config命令来查看。
这里贴出几个常用的参数:
1 |
|
6、效果展示
wsl2使用的应该是windows定制的内核(目前我的系统内核是4.19.84-microsoft-standard
),同时无法使用systemd工具,但是作为terminal来使用已经是绰绰有余了,命令的丰富程度也要远胜于powershell、gitbash和其他的第三方命令行,安装一些常用命令的方便程度也要远胜于cygwin等。windows系统的硬盘也会直接挂载在wsl中的/mnt
目录下,可以直接使用Linux的sed、awk、paste等命令来对windows下的文本进行操作。
注意在默认情况下会把系统本身的硬盘也挂载到
/mnt
目录下,注意不要误操作rm命令