当前位置: 首页 > 科技观察

Windows如何在不安装虚拟机的情况下使用Linux系统作为开发工具?

时间:2023-03-19 13:58:09 科技观察

大家好,我是忠义。作为一名嵌入式开发程序员,经常需要在Linux环境下编译一些代码。安装虚拟机比较方便,但是太占内存了。性能不好的电脑打开虚拟机后,可能无法做其他事情。安装双系统也比较麻烦,往往需要重启电脑才能完成系统切换。今天给大家介绍一款Windows上的Linux工具,无需虚拟机,双系统,即可轻松在Windows上使用Linux。WSL简介WindowsSubsystemforLinux(简称WSL)是Windows10上原生运行Linux二进制可执行文件(ELF格式)的兼容层,由微软和Canonical联合开发。目标是让纯Ubuntu14.04“TrustyTahr”镜像能够下载并解压到用户本地计算机,镜像中的工具和实用程序可以在这个子系统上原生运行。简而言之,使用WSL相当于在Windows中嵌入了一个Linux系统。可以用所属Windows系统访问本地系统,可以使用Windows网络上网,继承Windows中配置的hosts等,LinuxGUI除外。wsl中可以使用操作以外的操作。WSL目前有两个版本,WSL1和WSL2,最新的版本是2。WSL2与版本1相比,主要区别在于提高了文件系统的性能和系统调用的兼容性。建议使用WSL2。安装WSL确认windows版本并非所有windows都支持WSL,需要确保系统版本为Windows10Build16237或更高版本。您可以通过【设置】查看系统版本号。要启用WSL服务,您需要先在Windows中启用“适用于Linux的Windows子系统”。打开“控制面板”->“程序和功能”,在左侧栏中选择“打开或关闭Windows功能”,在打开的对话框中找到并勾选“Linux的Windows子系统”,点击【确定】关闭对话框框,等待系统完成新功能的安装,根据提示重启电脑。在MicrosoftStore安装WSL在MicrosoftAppStore搜索Linux,可以看到一系列的Linux发行版,根据自己的需要选择适合自己的发行版,这里我选择Ubuntu20.04,下载完成后启动,等待安装完成,输入账号和密码,我们现在已经有了一个Linux环境。WSL基本设置配置用户名和密码在开始菜单中打开Ubuntu后,Ubuntu会安装和初始化很长时间,然后会提示你设置Linux用户名和密码。替换源替换/etc/apt/sources.list文件中的源。安装ubuntu20.04后,默认的软件更新源是国外的,在国内用起来很慢。需要更换成国产源,才能正常安装安装。更新软件。备份源列表Ubuntu默认配置的源不是国内服务器,下载更新软件比较慢。首先备份源列表文件sources.list:#首先备份源列表sudocp/etc/apt/sources.list/etc/apt/sources.list_backup打开sources.list文件修改选择合适的源,替换原文件的内容,并保存编辑后的文件,我们选择的是中国科学技术大学。#打开sources.list文件sudovim/etc/apt/sources.list编辑/etc/apt/sources.list文件,在文件前面添加阿里云镜像源:#中科大源debhttps://mirrors.ustc.edu.cn/ubuntu/focalmainrestricteduniversemultiversedeb-srchttps://mirrors.ustc.edu.cn/ubuntu/focalmainrestricteduniversemultiversedebhttps://mirrors.ustc.edu.cn/ubuntu/focal-updates主受限宇宙multiversedeb-srchttps://mirrors.ustc.edu.cn/ubuntu/focal-updates主受限宇宙multiversedebhttps://mirrors.ustc.edu.cn/ubuntu/focal-backports主受限宇宙multiversedeb-srchttps://mirrors.ustc.edu.cn/ubuntu/focal-backportsmainrestricteduniversemultiversedebhttps://mirrors.ustc.edu.cn/ubuntu/focal-securitymainrestricteduniversemultiversedeb-srchttps:///mirrors.ustc.edu.cn/ubuntu/focal-securitymainrestricteduniversemultiversedebhttps://mirrors.ustc.edu.cn/ubuntu/focal-proposedmainrestricteduniversemultiversedeb-srchttps://mirrors.ustc.edu.cn/ubuntu/焦点提案dmainrestricteduniversemultiverse#添加阿里源debhttp://mirrors.aliyun.com/ubuntu/focalmainrestricteduniversemultiversedeb-srchttp://mirrors.aliyun.com/ubuntu/focalmainrestricteduniversemultiversedebhttp://mirrors.aliyun.com/ubuntu/focal-securitymainrestricteduniversemultiversedeb-srchttp://mirrors.aliyun.com/ubuntu/focal-securitymainrestricteduniversemultiversedebhttp://mirrors.aliyun.com/ubuntu/focal-updatesmainrestricteduniversemultiversedeb-srchttp://mirrors.aliyun.com/ubuntu/focal-updatesmainrestricteduniversemultiversedebhttp://mirrors.aliyun.com/ubuntu/focal-proposedmainrestricteduniversemultiversedeb-srchttp:///mirrors.aliyun.com/ubuntu/focal-proposedmainrestricteduniversemultiversedebhttp://mirrors.aliyun.com/ubuntu/focal-backportsmainrestricteduniversemultiversedeb-srchttp://mirrors.aliyun.com/ubuntu/focal-backportsmainrestricteduniversemultiverse#添加清华源debhttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/focalmainrestricteduniversemultiverse#deb-srchttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/focalmainrestricteduniversemultiverseebhttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/focal-updatesmainrestricteduniversemultiversedeb-srchttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/focal-updatesmainrestricteduniversemultiversedebhttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/focal-backportsmainrestricteduniversemultiverse#deb-srchttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/focal-backportsmainrestricteduniversemultiverseebhttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/focal-securitymainrestricteduniversemultiverse#deb-srchttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/focal-securitymainrestricteduniversemultiverse刷新列表sudoapt-getupdatesudoapt-getupgradesudoapt-getinstallbuild-essential安装SSH服务默认情况下,当Ubuntu第一次安装时,不允许通过SSH进行远程访问在Ubuntu上启用SSH非常简单。以root用户或具有sudo权限的用户执行以下步骤:sudoaptupdatesudoaptinstallopenssh-server安装完成后,SSH服务会自动启动。您可以通过键入以下内容来验证SSH是否正在运行:sudoservicesshstatus输出显示该服务正在运行并且能够在系统启动时启动:*sshdisrunning您现在可以通过SSH连接到您的Ubuntu系统。启用S??SH登录使用cp命令备份SSH相关配置文件:sudocp/etc/ssh/sshd_config/etc/ssh/sshd_config.bak使用vim编辑器编辑“sshd_config”文件:sudovim/etc/ssh/sshd_configPort8022(因为Windows10的SSH端口默认已经被占用,所以我改成新的端口)ListenAddress0.0.0.0(去掉前面的#)PermitRootLoginyes(改成yes)PasswordAuthenticationyes(改成yes)并输入命令:servicesshstart启动SSH。这样就可以通过远程登录工具登录WSL了。安装图形界面Windows安装VcXsrvWSL目前不支持图形界面,先下载VcXsrv,按照安装程序默认安装即可,可以更改安装路径。安装后会有两个程序,分别是XLaunch和VcXsrv,可以用来远程访问linux。启动XLaunch,选择:“onelargewindow”,设置Displaynumber为0,其他默认:安装Ubuntu桌面环境sudoapt-getinstallubuntu-desktopunitycompizconfig-settings-managerssudoapt-getinstallxfce4执行以下命令exportDISPLAY=localhost:0ccsm会自动弹出ccsm的配置界面。如下图配置。完成后点击关闭,将以下命令写入~/.bashrc,每次开机都会自动执行。导出显示=`cat/etc/resolv.conf|grep名称服务器|awk'{print$2}'`:0然后执行source~/.bashrc命令。然后在WSL中启动Xfce会话,在startxfce4XLaunch中出现如下画面,表示安装成功。注意事项使用sudosystemctlstartssh启动ssh服务时,系统会产生如下错误:Systemhasnotbeenbootedwithsystemdasinitsystem(PID1)。无法运行。原因:WSL使用经典的SysVinit(sysvinit)系统。您可以使用ps-p1-ocomm=命令查看当前系统使用的是哪个init系统。hongyi@DESKTOP-LHH3HQP:/home$ps-p1-ocomm=init解决方法:不使用systemctl命令,而是使用等效的sysvinit命令。本文转载自微信公众号《嵌入式与Linux那些事》,可通过以下二维码关注。转载本文请联系嵌入式和Linux那些东西公众号。