Vmware用烦了,太麻烦,太占用资源,换个轻量点的:WSL + Ubuntu
一、关于WSL
Windows Subsystem for Linux(WSL)是一个用于在本地运行linux二进制可执行文件(ELF格式)的兼容层。与虚拟机相比,wsl没有虚拟硬件的过程,而是直接在windows上虚拟一个linux内核,模拟linux系统调用,以运行linux执行文件。因此效率要比虚拟机高,但是它使用的是自己实现的init进程而不是发行版的init进程,并且几乎没有实现任何系统服务,因此只适用于软件的开发,而不是作为桌面环境或生产性的服务器。
二、安装WSL
1. 安装“适用于Linux的Windows子系统”
(搜索)打开“启用或关闭Windows功能”, 选中“适用于Linux的Windows子系统”,点击确认按钮,并根据提示重启电脑。
2. 使用Windows应用商店安装Ubuntu
(搜索)打开“Microsoft Store”,在里面的搜索栏输入“Ubuntu”,选择需要的版本进行安装。
当前最旧的版本为Ubuntu 18.04.5 LTS,最新的Ubuntu 22.04 LTS。
有未标注版本号的Ubuntu,这是可以滚动升级的版本,使用do_release-upgrade命令可以直接滚动升级到最新版Ubuntu
说明:
1) 关于硬盘分区
windows的硬盘分区到加载到Ubuntu的/mnt目录下, 如C盘在/mnt/c,E盘在/mnt/e。
2) 关于网络
WSL的Ubuntu采用桥接模式连接网络, 用ifconfig查看,可以看到另一个内网网段的地址,内外网均可访问。
三、初始使用WSL的Ubuntu
(搜索)打开“Ubuntu”,即可进入Ubuntu界面。
第一次进入时,系统会要求增加一个用户,设置用户名和密码。
四、Windows与Ubuntu的互操作
互操作性是指,既可以在windows中运行linux进程,也可以在linux中运行windows进程,并且支持两个不同进程间的输入输出重定向。
1. 在windows中运行linux进程
在windows中使用wsl [command]运行linux命令,需要注意:
linux命令使用当前目录作为工作目录;
对于windows文件,拥有运行WSL的windows用户权限;对于linux文件拥有登录用户权限;
文件路径使用linux格式;
例子(抄的,没太看明白,估计用不着):
C:\temp> wsl ls -la <- contents of C:\temp -> C:\temp> wsl sudo apt-get update [sudo] password for username: Hit:1 https://archive.ubuntu.com/ubuntu xenial InRelease Get:2 https://security.ubuntu.com/ubuntu xenial-security InRelease [94.5 kB] C:\temp> wsl ls -la | findstr "foo" -rwxrwxrwx 1 root root 14 Sep 27 14:26 foo.bat C:\temp> dir | wsl grep foo 09/27/2016 02:26 PM 14 foo.bat C:\temp> wsl ls -la > out.txt C:\temp> wsl ls -la /proc/cpuinfo 1 root root 0 Sep 28 11:28 /proc/cpuinfo C:\temp> wsl ls -la "/mnt/c/Program Files" <- contents of C:\Program Files -> |
2.在linux中运行windows命令
在linux中运行windows命令,使用[binary name].exe(后缀不要省略),linux可以直接访问windows命令的原因在于linux共享了windows的PATH环境变量(我猜是linux中唯一的守护进程init做的)。需要注意:
一般windows命令的工作目录为当前linux的工作目录。如果linux工作目录位于linux文件系统内,则windows的工作目录会改为Base.exe的工作目录(原因见2.4小节)。
拥有与运行WSL拥有者一致的权限
需要注意路径,看下面的例子
例子(也是抄的):
$ notepad.exe $ ipconfig.exe | grep IPv4 | cut -d:-f2 172.21.240.1 10.159.21.24 $ ls -la | findstr.exe foo.txt $ cmd.exe /c dir <- contents of C:\ -> $#cmd 原生命名需要通过cmd.exe运行 $ cmd.exe /C dir <- contents of C:\ -> $ PING.EXE www.microsoft.com Pinging e1863.dspb.akamaiedge.net [2600:1409:a:5a2::747] with 32 bytes of data: Reply from 2600:1409:a:5a2::747:time=2ms $ notepad.exe "C:\temp\foo.txt" $ notepad.exe C:\\temp\\foo.txt |
五、Ubuntu更换国内镜像源并更新软件包
Ubuntu的官方镜像列表在"Official Archive Mirrors for Ubuntu",里面有大学、组织、公司,由于往往只有大公司可能在全国布置多节点以提高访问速度,所以对比了下几家大公司(的ping值),最后腾讯云镜像最快,阿里云镜像略慢,华为云镜像不太稳定。
操作:
$ sudo sed -i 's#http://archive.ubuntu.com#https://mirrors.cloud.tencent.com#' /etc/apt/sources.list $ sudo sed -i 's#http://security.ubuntu.com#https://mirrors.cloud.tencent.com#' /etc/apt/sources.list $ sudo apt update $ sudo apt upgrade |
参考:
评论