Ⅰ. WSL概述
1.1 WSL介绍
试想在Windows系统上运行Linux环境,我们需要怎么做?不同于类Unix的Mac OS,Windows不支持直接使用GNU/linux下的命令,通常的做法是下载类似VMware或者VirtualBox的虚拟机软件,再使用相应的镜像文件以运行Linux环境。而WSL的出现可以让我们直接在Windows上运行Linux环境。
WSL即Windows Subsystem for Linux的缩写,意思是linux版的window子系统。WSL可以让开发人员无需虚拟机就可以直接在Windows上运行GNU/Linux环境,包括大多数命令行工具、实用工具和应用程序,且不会产生传统虚拟机或双启动设置开销。
WSL的优点:
- 相较于虚拟机,WSL占用资源更少
-
WSL可以直接对Windows文件系统下的文件直接进行读写,文件传输更加方便
- 在Microsoft Store中选择你偏好的GNU/Linux分发版
- 运行常用的命令行软件工具(例如 grep、sed、awk)或其他ELF-64二进制文件
- 运行Bash shell脚本和GNU/Linux命令行应用程序,包括:
- 工具:vim、emacs、tmux
- 语言:NodeJS、Javascript、Python、Ruby、C/C++、C# 与 F#、Rust、Go等
- 服务:SSHD、MySQL、Apache、lighttpd、MongoDB、PostgreSQL
- 使用自己的GNU/Linux分发包管理器安装其他软件
- 使用类似于Unix的命令行shell调用Windows应用程序
- 在Windows上调用GNU/Linux应用程序
1.2 WSL2
目前WSL一共有两个版本,最新版本为WSL2。WSL2提高了文件系统性能,以及添加完全的系统调用兼容性,这一新的体系结构改变了这些Linux二进制文件与Windows和计算机硬件进行交互的方式,但仍然提供与WSL1(当前广泛可用的版本)中相同的用户体验。
WSL2 vs WSL1
功能 | WSL 1 | WSL 2 |
---|---|---|
Windows和Linux之间的集成 | ✅ | ✅ |
启动时间短 | ✅ | ✅ |
占用的资源量少 | ✅ | ✅ |
托管VM | ❌ | ✅ |
完整的Linux内核 | ❌ | ✅ |
完全的系统调用兼容性 | ❌ | ✅ |
可以与当前版本的VM Ware和VirtualBox一起运行 | ✅ | ❌ |
跨OS文件系统的性能 | ✅ | ❌ |
本文将对WSL2的安装进行介绍,我强烈建议您使用WSL2,相较于WSL1,其提供了更快的性能和系统调用兼容性。
以下情况建议安装WSL1:
- 项目文件必须存储在WSL1中(建议安装于Linux目录)。
- 一个项目要求对相同的文件使用Windows和Linux工具进行交叉编译。
一些建议
如果您的设备RAM较小(小于等于8G),那么我强烈建议您安装WSL以学习或工作。
⚠️:不建议Linux初学者直接使用WSL进行学习,使用虚拟机开始Linux的学习有更好的容错性!
Ⅱ. WSL的安装
2.1 Windows版本要求
必须运行Windows 10版本2004及更高版本(内部版本 19041 及更高版本)或 Windows 11。
Windows版本可在设置-Windows更新中查看
2.2 其他先决条件
(1) 开启VT虚拟化
- 一般情况下,此功能默认开启,若未开启,请参考以下步骤
- 重启电脑,开机后按delete键进入BIOS
- 进入BIOS后,找到Virtualization Technology,把Disabled改为Enabled
- 选择Save & Exit Setup
- 按Y确定
2.3 安装
(1) 开启WSL
以管理员身份打开PowerShell(“开始”菜单 >“PowerShell”> 单击右键 >“以管理员身份运行”),然后输入以下命令:
1
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
(2) 开启虚拟机功能
以管理员身份打开 PowerShell 并运行:
1
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
重新启动计算机,以完成WSL安装并更新到WSL2。
(3) 下载Linux内核更新包
- 点击链接进行下载WSL2内核更新包:适用于 x64 计算机的 WSL2 Linux 内核更新包。
- 运行上一步中下载的更新包。
(4) 将WSL2设置为默认版本
打开PowerShell,然后在安装新的Linux发行版时运行以下命令,将WSL2设置为默认版本:
1
wsl --set-default-version 2
(5) 打开Microsoft Store,并选择你偏好的Linux分发版。
首次启动新安装的Linux分发版时,将打开一个控制台窗口,系统会要求你等待一分钟或两分钟,以便文件解压缩并存储到电脑上。然后,需要为新的Linux分发版创建用户帐户和密码。
现已成功安装并设置了与Windows操作系统完全集成的Linux分发!
Ⅲ. 更换源
由于Ubuntu自带源速度较慢,我们此处更换阿里源,也可更换其他镜像源。
(1) 查看Codename
lsb_release -a
(2) 备份源
cd /etc/apt
sudo cp sources.list sources.list.bak
(3) 更换源
1
sudo vim sources.list
下面源信息中$Codename替换为第一步中系统的Codename,vim命令为:%s/$Codename/focal/g
。
1
2
3
4
5
6
7
8
9
10
deb http://mirrors.aliyun.com/ubuntu/ $Codename main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ $Codename-backports main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ $Codename-proposed main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ $Codename-security main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ $Codename-updates main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ $Codename main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ $Codename-backports main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ $Codename-proposed main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ $Codename-security main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ $Codename-updates main multiverse restricted universe
(4) 执行更新
1
sudo apt-get update
Ⅳ. Shell美化
此节不影响使用,可不进行。
直接点击Linux发行版程序打开的控制台不太美观,我们对其进行美化。
4.1 安装Windows terminal
在Microsoft Store中搜索下载即可,Windows11自带。下载完成后,可以直接右键点击即可选择打开下载的Linux发行版。
4.2 VIM美化
有关VIM的美化见博客VIM。
4.3 下载zsh
Ubuntu自带的shell为bash,我们选择更高效、更加美观的zsh。
下载安装zsh
1
sudo apt install zsh
查看zsh是否安装成功
1
cat /etc/shells
进入zsh,选择数字2
1
zsh
使用命令修改默认终端
1
chsh -s /bin/zsh
关闭终端重新进入即可改变默认shell
4.4 下载oh-my-zsh以及配置zsh
下载github项目到本地的~/.oh-my-zsh(需预先下载git)
1
git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
替换zsh默认配置
1
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
使文件生效
1
source ~/.zshrc
配置主题
1
vim ~/.zshrc
修改.zshrc中的ZSH_THEME变量的引号内内容即可,本文选择ys样式,也可选择其他主题
安装插件
oh-my-zsh提供了一些插件,储存在~/.oh-my-zsh/plugins
目录中,如果你希望安装一个插件,可以在~/.zshrc
的plugins=(xxx xxx …)这一行里加入插件名称。
这里我们安装两个第三方插件:语法高亮和命令提示
(1) 语法高亮
1
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh}/plugins/zsh-syntax-highlighting
(2) 命令提示
1
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh}/plugins/zsh-autosuggestions
(3) 修改配置文件并使其生效
1
2
3
4
5
6
7
vim ~/.zshrc
#修改plugin变量如下
plugins=(git zsh-syntax-highlighting zsh-autosuggestions)
#使配置文件生效
source ~/.zshrc
对于语法提示,使用——>按键即可补全,效果如下:
4.5 安装oh-my-tmux
tmux是一个及其好用的终端多开工具,可以极大的提高效率。
(1) 安装tmux
1
sudo apt-get install tmux
(2) 开启tmux
1
2
tmux #默认名字启用tmux
tmux new -s name #指定session的名字
(3) 安装oh-my-tmux
1
2
3
4
cd
git clone https://github.com/gpakosz/.tmux.git
ln -s -f .tmux/.tmux.conf
cp .tmux/.tmux.conf.local .
重启终端,打开tmux即可,另外可修改~/.tmux.conf.local来个性化自己的配置,最终效果如下:
Ⅵ. Tabby推荐
常见的shell连接工具有xshell,免费版的xshell有诸多限制。此处推荐新兴开源工具Tabby,更加美观并且集成了sftp工具,目前我已将其替换了xshell和xftp。