ssh默认打开目录 terminal wsl_WSL,挽救了我的RedmiBook16锐龙版

本文介绍了作者在RedmiBook16上尝试安装CentOS和Ubuntu遇到的问题及解决方案,最终选择了WSL进行开发环境的搭建,并分享了WSL的安装过程和服务自启动设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    之前一直使用我大爱的X230作为开发机,一直比较难受的是分辨率太低(最高1366*768), 然后屏幕素质也比较差,今年618入手了一部RedmiBook16锐龙版,下面记录一下我建设开发环境的过程。

    先说一下我对环境的需求吧:

    1. 代码开发一般都在linux环境,最好是centos

    2. python3.7以上版本

    3. IDE我习惯使用Pycharm和VsCode

    4. 偶尔需要使用windows进行一些非代码类的工作

    通常的选择有两种:

    1. 虚拟机, 不管是centos下的win10虚拟机,还是win10下安装linux虚拟机,虚拟机运行时占据的大量系统资源都会造成机器的卡顿,毕竟咱的机器也不是很强力。

    2. 双系统, 我之前一直选择这种方式,而且已经习惯了在centos的Gnome桌面下工作,缺点是切换系统时需要重启,并且在两个系统之间共享文件不方便。

    下面是我新机(redmibook16)的配置信息--Win+R 运行dxdiag可以查看系统信息:

705ce6983882aa5e40b0ad014b400ae6.png

    处理器是 AMD Ryzen 5 4500U with Radeon Graphics          (6 CPUs), ~2.4GHz   这款处理器是AMD比较新的处理器,给我带来了不小的麻烦07ef8a3aa0cc22d916cef8431f797c74.png07ef8a3aa0cc22d916cef8431f797c74.png

    内存 16384MB RAM  当时选择这款电脑就是看上了16G内存,又够便宜787ba30bb3d8c952fb19b956d85ed368.png787ba30bb3d8c952fb19b956d85ed368.png

    双系统能不能行?

    电脑原装系统是正版的win10家庭版,又赠送了正版的office,我一开始的想法还是双系统,准备就保留原装系统再安装一个CentOS,反正win10也不是常用的系统,家庭版凑合用吧,就不不改装我钟爱的企业版win10了。

    尝试CentOS失败

    于是尝试安装Centos,首先是用惯了的Centos7.2版本,然后就What了10b297c8f17fadfe4796e2c9f37a3cc8.png10b297c8f17fadfe4796e2c9f37a3cc8.png10b297c8f17fadfe4796e2c9f37a3cc8.png---

d64b0ff26f263a595cd6aaa7d9ee5fc9.png

    各种百度以后,基本可以判断是系统缺少驱动导致无法继续运行,更换了最新版本的CentOS8.2仍然提示这个错误,看来这台电脑是与Centos无缘了。

    再试Ubuntu失败

    然后我又尝试了Ubuntu的两个最新发行版本18.04和20.04,毕竟Ubuntu是针对桌面电脑的,而Centos主要针对服务器,对AMD平台的支持不如Ubuntu。结果喜人,我终于进入了Ubuntu的桌面54ad639ab8ec49482ac9982a8f1675d9.png54ad639ab8ec49482ac9982a8f1675d9.png,然而,高兴的太早了,很快我就发现了问题--主要有两点,因为这两点问题已经导致系统无法正常使用,就没有继续发掘。

    1. 亮度始终在最高亮度,调节亮度的快捷键是可以使用的,数值也在变,只是屏幕的实际亮度不会变。

    2. 网页上的视频无法播放,本地视频没有尝试

    最终判断问题,仍然是显卡驱动问题。

    寻找显卡驱动失败

    我首先到小米的官网寻找驱动,结果当然是失败的,只有win10的驱动程序。不怕,我们还有amd的官网,于是我找到了---

https://www.amd.com/zh-hans/support/apu/amd-ryzen-processors/amd-ryzen-5-mobile-processors-radeon-graphics/amd-ryzen-5-4500u

然后我绝望了07ef8a3aa0cc22d916cef8431f797c74.png07ef8a3aa0cc22d916cef8431f797c74.png07ef8a3aa0cc22d916cef8431f797c74.png07ef8a3aa0cc22d916cef8431f797c74.png07ef8a3aa0cc22d916cef8431f797c74.png07ef8a3aa0cc22d916cef8431f797c74.png,官网也只有win10版本驱动

beab50352bcbe4e24a8dab21de5d0f1d.png

    难道只能放弃?或者使用虚拟机?b6064c35bb4a28b09df303d264987395.pngb6064c35bb4a28b09df303d264987395.pngb6064c35bb4a28b09df303d264987395.png

    在安装Ubuntu的时候,因为不熟悉安装流程,我把我原装的win10破坏了,此时,带着非常强烈挫败感的我,只好先重新安装win10系统,既然重装,当然选择我所钟爱的企业版Win10了

    一番努力后,我的Win10企业版LTSC又上线了,各种驱动也装好了,首先还是来个打底的虚拟机尝试一下吧,如果这都不行,那就只能退货88了07ef8a3aa0cc22d916cef8431f797c74.png07ef8a3aa0cc22d916cef8431f797c74.png07ef8a3aa0cc22d916cef8431f797c74.png。Win+R 运行winver 命令可以查看win10系统的详细版本信息c4811c07fa5269bbecc01a0f57686217.png

    所幸,还算顺利,Oracle的virtualbox装下去,centos顺利的跑起来了,毕竟16G内存,跑起来还不算卡,能接受。宝宝心里苦啊,难道就这样忍了吗?还是果断退货呢?这一晚上,我纠结的睡不着。

    睡不着,就漫无目的的在百度上乱搜,然后有一个以前没接触过的东东映入了我的眼帘--WSL--这是什么东东?为什么搜linux的东西的时候总是会跑出来。(可能是因为我之前一直用centos,没怎么接触ubuntu,然后windows的wsl又没有centos,我以前搜索习惯用centos做关键字,竟然一直没有发现wsl这个东东)。

     救世主来了,就是WSL!!!

    wsl(Windows Subsystem for Linux--适用于 Linux 的 Windows 子系统)官方文档地址:https://docs.microsoft.com/zh-cn/windows/wsl/

    wsl 目前有两个版本,wsl1 和 wsl2。wsl2 要求win10更新到版本 2004 的内部版本 19041 或更高版本,因为我用的是win10企业版LTSC 1809的版本,不满足WSL2的条件,此处就不讨论WSL2的内容了。

    WSL安装

   1. 先启用“适用于 Linux 的 Windows 子系统”可选功能,以管理员身份打开 PowerShell 并运行:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

    2. 重启计算机,从微软商店安装想要的linux分发版本。那么问题来了,win10企业版没有微软商店--43573cc213969af6ae053f2be4894a65.png--好吧,先想办法安装个微软商店,还是要靠万能的搜索引擎啊。(有需要商店找不到的可以给我留言,我发给你。)

    在微软商店搜索linux有100多条结果,免费的里面最眼熟的当然是ubuntu,支持同时安装多个不通版本,但是不能同时安装多个相同版本。搜索Centos发现只有收费版本,不太贵,有时间了我可能会试试。这段时间一直在用的就是Ubuntu18.04版本。

    WSL与正常Linux的差别

    下面是我使用一个多月总结的几点差别

    1. wsl不能使用systemd相关的命令,也不能使用poweroff/reboot等命令,同样的,如果需要服务自启动,方式和正常的linux也不相同

    2. 使用netstat命令获取不到网络相关信息

    3. gdb生成不了内核转储文件(网上说是通过ulimit开启生成后,默认生成转储文件在程序目录下,但是找不到)

    4. 生成不了共享内存

    后面2点我也并不理解,毕竟内核的东西还是比较深的。

    WSL下的服务自启动设置

    1. 在wsl中创建或修改文件 /etc/init.wsl, 写入以下内容,需要启动的服务可以根据需要自行定义,命令最好先进行测试

#! /bin/sh

# 启动ssh服务

/etc/init.d/ssh restart

# 启动rredis服务

/etc/init.d/redis-server restart

# 启动mariadb服务 服务名mysql

/etc/init.d/mysql restart

# 启动Celery

/etc/init.d/celery restart

添加执行权限  添加以后可以执行下验证是否能打开需要的服务

sudo chmod +x /etc/init.wsl

    2. 在windows中添加启动项:

win+R运行 shell:startup 进入启动目录 注意不要有空格

创建vbs文件,名称自定义.vbs,在文件中写入以下两行内容

Set ws = WScript.CreateObject("WScript.Shell")

ws.run "wsl -u root /etc/init.wsl start", vbhide

    3. 重启系统,此时服务已经可以随win10启动一起启动了

    WSL系统的桌面我还没研究过,不过通常服务器我们很少使用桌面系统,在开发时我们可以使用远程开发的方法,现在主流的IDE应该都能支持,下面简单介绍以下Pycharm

    pycharm--tools菜单下有一个Deployment子菜单可以配置远程主机,需要配置Connection和Mappings

b4682efaf7846bca32ca33a0fe186259.png

9698d68941abcb539a30918cef14f38f.png

配置以后即可在本地和远程目录间同步代码。

同时,需要配置远程的Interpreter,这样就可以在远端执行代码了。

a04eb6934312486aebdcbd56578a4c9f.png

    用了1个多月,感觉WSL比起双系统或者虚拟机来说还是有很多优势的,对系统资源的占用,不通系统的切换,系统间的文件通信都要方便很多。win10的硬盘是挂载在/mnt对应盘符下的,从wsl很方便的即可访问win10下的文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值