V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
asilin
V2EX  ›  Linux

10 年 Ubuntu 桌面老用户开始转向 Win,请问我该怎么入门 WSL 和 Win 终端?

  •  
  •   asilin · 40 天前 · 3188 次点击
    这是一个创建于 40 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如题,从 Ubuntu 11.04 开始到现在的 Ubuntu 16.04 ,一直坚持使用 Unity 桌面的 Ubuntu 不动摇,但奈何陪伴多年的 ThinkPad E480 近两年频繁无故花屏、死机,一狠心一跺脚入手了最新的 Thinkbook 14+ 2024 AMD 。

    但是问题来了,新的笔记本太新了,导致即使最新的 Ubuntu 24.04 也不能完全支持。

    后来我开始“反思”自己,是否太过于执着 Linux ,是否陷入到另外一个极端,于是开始着手使用 Windows 来替换之后的工作流。

    目前遇到的几个痛点:

    • Win 下面的“WSL1”,“WSL2”,“终端”等太混乱了,我应该怎么入门?
    我就单纯想有个 Linux 终端环境,而且这几天看新闻说好像微软要改进 WSL ,不晓得会改变什么?

    • Windows Defender 怎么关闭,搜了下好像无法关闭,只能用其他“管家”替换;
    那我是否该保留还是替换呢?替换成什么“管家”好呢,目前有自带的“联想管家”。

    • 习惯了 APT/YUM ,我不太信任第三方软件,因为我不确定它们会在我的文件系统哪里遗留一些东西,注册表、服务、开机启动做一些小动作(可能 Win 应用商店使用沙盒能好一些),我该怎么避免这种“洁癖”,或者有什么工具能够辅助我?

    总的来说,原来的 Linux 系统每一个包、每个文件、每个进程的作用、权限、位置、资源利用率我都一清二楚,不信任的软件直接用 docker 来运行,避免污染主系统,转到 Windows 后有些迷茫,不该如何自处了。
    53 条回复    2024-06-10 09:03:08 +08:00
    Maboroshii
        1
    Maboroshii  
       40 天前 via Android
    换更新的内核试试,在 windows 上用 linux 环境,为什么要折腾自己
    gtese
        2
    gtese  
       40 天前
    最近 wsl 下的 kali 不能升级包,卡死了。
    抓狂中。
    wsl 好用~
    xtreme1
        3
    xtreme1  
       40 天前   ❤️ 1
    1. wsl 1 是实现 linux 的系统调用, 目前属于事实停止维护状态, wsl 2 是 hyper-v 虚拟机, 微软仍在活跃维护, 使用 wsl 2 即可
    2. 设置中将所有保护项关闭即可, 网上各种脚本可能影响 windows 更新
    3. 无解. linux 包管理实际上不解决此问题, apt/yum 替代品有 winget, scoop
    FrankFang128
        4
    FrankFang128  
       40 天前   ❤️ 1
    1. 安装你喜欢的发行版到 WSL2 (比如我装了 ArchLinux )
    2. 让 VSCode 连接 WSL2 来开发所有程序(比如我使用 WSL2 的 JS 、Ruby 、Go 开发环境)
    3. 在 WSL2 安装 Docker ,所有软件都跑在这个 Docker 里(我的意思是不要在 Windows 里安装 Docker )
    FrankFang128
        5
    FrankFang128  
       40 天前   ❤️ 1
    4. 文件直接放到 WSL2 ,不要放在 Windows 里。简单了说,Windows 只是你的 UI 渲染引擎,不是你的文件存储地方,也不是你安装软件的地方。
    asilin
        6
    asilin  
    OP
       40 天前
    @FrankFang128 这种想法听起来不错
    david98
        7
    david98  
       40 天前   ❤️ 1
    1 、推荐直接用 wsl2 镜像网络
    2 、可以再装个火绒,不过我觉得没必要
    3 、apt 在 wsl 里同样可用,wsl2 已经就是个虚拟机了。内核都可以自己编译,不过做了深度融合,对虚拟机一些个特殊的调用 win 做了 hook ,资源消耗比较轻量。wsl 里 你随便装 ubuntu 或者其它发行版
    win 本身现在同样区分 root 权限和普通用户权限,不要乱装没有证书的应用,从官方渠道下载应用,已经很安全了
    ho121
        8
    ho121  
       40 天前 via Android
    还有个选择:等 ubuntu 支持新电脑
    BeautifulSoap
        9
    BeautifulSoap  
       40 天前 via Android   ❤️ 2
    该说的上面都说了,补充几点
    1. wsl2 记得设置内存使用上限,不设倒也可以看你具体情况
    2. 注册表管理器找到如下键值,这是你 wsl2 的 vhdx 路径,可以更改路径把 wsl2 的虚拟硬盘文件移动到其他地方方便管理。今后换电脑重装系统只需要备份好这个 vhdx ,你的整个 wsl2 环境都能一瞬间恢复: 计算机\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss\{发行版 uuid}\BasePath
    3. 要用 gui 可以用 wslg ,虽然我更喜欢直接 xserver (因为 wslg 的窗口没法简单管理大小)
    ysc3839
        10
    ysc3839  
       40 天前 via Android   ❤️ 1
    我个人选择 MSYS2 + zsh ,终端用 MSYS2 的 mintty 。
    Windows Terminal 可以用,但不太建议搭配 MSYS2 用,可能会有一些小问题,不介意的话可以用。
    WSL 我只用 1 ,有其他需求直接用虚拟机。
    Windows Defender 用组策略关闭。
    怕残留文件的话那就尽量别在主系统里安装东西,都装到沙盒或者虚拟机的系统里。
    ysc3839
        11
    ysc3839  
       40 天前 via Android
    @ysc3839 为什么不推荐用 Windows Terminal ,因为它使用了 Pseudo Console ,这类似 Unix 的 pty ,终端可以拿到 cli 程序输出的内容。但是 Windows 传统的控制台(终端)要实现修改颜色等功能并不是像 Unix 那样输出一串特殊的序列,而是调用 API 修改颜色后再输出。为了兼容这种传统的模式,Pseudo Console 是用类似 screen/tmux 的模式,cli 程序输出内容后更新内部 buffer ,然后计算修改部分输出给终端,那这个中间层势必会带来一些影响。不过一般来说有问题也只是些小问题,不影响日常使用。除了 Windows Terminal ,其他许多终端也会使用 Pseudo Console ,都可能遇到相同的问题。而 mintty 是直接使用 MSYS2 的 pty ,不使用 Pseudo Console ,就不会有此类问题。
    waytin
        12
    waytin  
       40 天前
    wsl2 有 gui 界面吗,如果跑程序有窗口调用需求呢
    FrankFang128
        13
    FrankFang128  
       40 天前
    @waytin 可以安装 Linux GUI ,不过性能很差。还可以安装 X Server ,显示效果也很诡异,总的来说难堪大用。
    AoEiuV020JP
        14
    AoEiuV020JP  
       40 天前
    wsl 真的不行,用了几年,现在 vmware 出个人免费了,果断关闭 hyperv 全家,
    enihcam
        15
    enihcam  
       40 天前
    Windows Core Server + WSLg
    BeforeTooLate
        16
    BeforeTooLate  
       40 天前
    vagrant
    VermouthcZzz
        17
    VermouthcZzz  
       40 天前
    Win 沙盒 sandboxie 还是不错的~ 我个人一般安装不同账号微信,顺便备份微信数据了(doge)
    https://github.com/sandboxie-plus/Sandboxie
    cosette
        18
    cosette  
       40 天前   ❤️ 1
    和真正的虚拟机运行 Linux 还是有区别,看要做的事情,最简单的方法就是去 ms store 直接安装 ubuntu ,打开 windows terminal 会自动配置,了解一下 windows terminal 的 profiles 就知道怎么回事了。

    在 wsl2 里面大部分情况下使用没什么区别,但 GUI 显示有点问题,不管是 wslg 还是 x server (不过既然都用 windows 了还纠结 linux desktop 感觉也很奇怪)。

    Windows 和 linux 的理念完全不同,核心的习惯基本都要改,没有真正的包管理器(你可以用 choco 、scoop 、winget ,但和 Linux 的包管理两个东西,覆盖面也有限),ms store 的 app 并不都是 uwp ,也就是并不都是可以清洁安装卸载的。

    关闭 wd 需要安装另一个第三方杀毒软件/安全软件,要直接关闭比较麻烦。

    至于你说的注册表、服务项、开机启动这些东西,学习一下怎么看就行了,注册表的建议是 leave it be ,别管它。至于服务项,可以查看,但想要禁用、修改之类的就不见得简单了。在 windows 上软件的行为是由三方开发者决定的,而不是像 Linux 上有统一的软件仓库,全权控制规范。

    总的来说,你无法将 Windows 变得 linux-like ,特别是你是一个资深的 Linux 用户的话。
    Stevenv
        19
    Stevenv  
       40 天前   ❤️ 1
    我的建议别用 WSL 。简直是坑自己。直接用 manjaro 把。还行。Thinkbook 14+ 2023 AMD 路过
    asilin
        20
    asilin  
    OP
       40 天前
    @cosette 好的,既然打算用 Windows ,就已经做好用 Win 的思路去解决问题了
    asilin
        21
    asilin  
    OP
       40 天前
    @Stevenv 我也想回归 Linux ,再等等吧。

    不过既然要从之前的 Unity 桌面切换到 Gnome 3/4 ,后面就不一定选择 Ubuntu 了,ArchLinux/Fedora/Debian 看起来都是不错的选择。
    xytest
        22
    xytest  
       40 天前
    我刚从 win 转到了 乌班图,感觉 wsl 用着不得劲。所以搞了个双系统 win 打游戏,乌班图跑点开发啥的。
    waytin
        23
    waytin  
       40 天前
    @FrankFang128 行吧 还想着能不能跑 ros
    lisxour
        24
    lisxour  
       40 天前
    @BeautifulSoap 可以用导出导入的功能直接将 wsl 系统装到别的盘,根本不用操心 c 盘重装问题
    Jinnrry
        25
    Jinnrry  
       40 天前   ❤️ 1
    wsl1 和 wsl2 都用过,总结一句话,都是一坨狗屎,除非迫不得已,都别用这玩意,总会遇到各种奇奇怪怪的问题,动不动就折腾你一天
    BeautifulSoap
        26
    BeautifulSoap  
       40 天前
    @lisxour wsl 导出命令会把虚拟磁盘里的所有文件导出成 tar 文件。导入也是解包 tar ,与其这么折腾还不如直接把 vhdx 复制出来最简单。想改 wsl 的路径直接把注册表里路径改了移动下 vhdx 就行
    mmdsun
        27
    mmdsun  
       40 天前 via iPhone   ❤️ 1
    WSL 2 官网文档很全面看一遍再查一查差不多
    https://learn.microsoft.com/zh-cn/windows/wsl/

    以前遇到奇怪问题是不支持 systemctl 最新版已经有开启开关了,开发一直 WSL2+Linux docker 还没遇到什么问题。
    laminux29
        29
    laminux29  
       40 天前
    你主要的问题是,你的方案太小众,太非主流了,这种情况需要完全掌控,要不你很有钱,要不你能力极强能 hold 住。

    1.Linux 本来是为无桌面的 Server 设计的,你非要拿来玩桌面,甚至当主力机,必然会遇到非常多的小问题。而且因为这种场景的用户少,很多问题,原因难找,就算找到原因,开发者也不一定能及时修复。

    2.你接触的 OS 太少了。但凡是个正经的计算机爱好者,Windows 、Linux 、Mac 、安卓,必须都要有相应的机器,不要偏袒哪个 OS ,都要去用,去尝试,去了解它们的优缺点。

    3.你电脑故障了,应该去修理,或者去收一个同款。直接换 OS ,相当于整体基座更换,所有习惯重来一遍,代价太大了。
    tashigaofei
        30
    tashigaofei  
       40 天前
    Thinkbook 14+ 2024 AMD 不能完全支持 ubuntu 24.04 ? 用 live usb 适用了以下,没发现什么问题。你这里遇到了什么问题,我准备也买一个这个电脑。
    Rubbick
        31
    Rubbick  
       40 天前
    之前用了 8 年 deepin 作为主力,最近也是入手了 thinkbook 14+,感觉 win11 + wsl2(ubuntu 22.04)挺好用的,应该暂时不会回去用 Linux 类桌面了
    WebKit
        32
    WebKit  
       40 天前 via Android
    刚刚把用了一天的 Windows 重装成 Manjaro 。换之前觉得能克服 Windows 上的一些问题。换之后才发现不行,终端太难用了,没有包管理器感觉不方便
    david98
        33
    david98  
       39 天前
    @waytin #12 wsl2 调试很方便 不需要 gui ,可以直接用 win 上 ide 调试 wsl2 里的程序,vscode 和 jetbrains 全家桶都支持,如果要调试 linux 的 gui ,wsl2 支持 wslg ,x11 可以配置做转发,但不用也是可以的,可以直接调起一个粗糙的 gui 界面
    一般情况下,我都是直接用 win 下的 gui 程序,如 ide 开发工具,wsl 里不需要 gui ,如果需要,那么 wslg 这个粗糙节面也够了。wsl2 里虽然也支持跑 chrome 这种 gui 程序,但何必呢,你直接用 win 下的 chrome 不是更好的选择吗
    runliuv
        34
    runliuv  
       39 天前
    FinalShell + VM WARE 一把梭
    lisxour
        35
    lisxour  
       39 天前
    @BeautifulSoap #26 导入导出只是为了将 wsl 系统从 c 盘移走,做一次就完事了,以后重装系统啥的也不需要管什么备不备份
    flynaj
        36
    flynaj  
       39 天前 via Android
    wsl 残废了,装 VirtualBox 虚拟机,老电脑系统导过来,开无缝模式非常丝滑,
    JingW
        37
    JingW  
       39 天前
    WSL 一直有不确定的卡死问题,干重活几天就会出现 100% CPU ,有时甚至只能重启
    所以现在还是当玩具玩
    whenov
        38
    whenov  
       39 天前
    Ubuntu 24.04 具体是不支持新电脑的哪些特性呢
    jqtmviyu
        39
    jqtmviyu  
       39 天前
    arch 系的支持如何?
    如果是我的话我宁愿换个发行版也不换 win, 习惯差距太大, 很难适应的.

    我估计用 win+wsl 的还是有生态/游戏的需求, 只是开发的话怎么都不如 unix 环境.
    lovercpuer
        40
    lovercpuer  
       39 天前
    我的做法是 win+ubuntu 虚拟机,目前正常开发使用。直接 vscode 的 ssh remote 或者直接虚拟机的桌面版。
    yf215
        41
    yf215  
       39 天前
    @asilin Fedora 不错的,而且下半年 Gnome 新版本支持完美的分数缩放了。
    asilin
        42
    asilin  
    OP
       39 天前
    @yf215 期待,目前这个 Thinkbook 14+ 2024 AMD 是一个 3K 屏幕,175% 的缩放大小刚好合适。
    nagisaushio
        43
    nagisaushio  
       39 天前
    卧槽简直是另一个我,我也是入了 thinkbook 14+ 2024 Ultra5 ,然后发现 ubuntu 各种不兼容,转 win 了
    nagisaushio
        44
    nagisaushio  
       39 天前
    @whenov #38 我和楼主类似,也是入了 tb14+ 2024 ,装了 ubuntu 24.04 有如下问题 ( 1 )合盖后直接重启 ( 2 )外接 2.5k 屏时最高只有 1920x1080 分辨率 ( 3 )内屏和外屏缩放倍数不同时显示有问题( 4 )分数缩放还差点意思,感觉鼠标会不跟手。

    ( 1 )太致命了,怎么也调不好。
    yf215
        45
    yf215  
       39 天前
    @asilin 我的也是 2K 屏,用的 Debian 12 ,就因为 Gnome 无法完美整数缩放,所以换了 KDE 。
    yagamil
        46
    yagamil  
       39 天前
    hyperv 妥妥的垃圾,垃圾中的战斗机。连分辨率都不能自动适配,被 vmware 甩几条街。

    用 ubuntu/linux 的好处是 让人专注一件事情。
    alex177027
        47
    alex177027  
       39 天前
    WSL 没有 32G 不建议碰,不然 SSD 提前报废是轻轻松松
    WD 关闭可以使用 Windows11 轻松设置
    https://bbs.pcbeta.com/viewthread-1972024-1-2.html
    或者去 Github 搜搜 wd remove
    想要 apt 和 yum 这种可以去用 scoop 或者 chocolaty
    想要细致入微地看可以用 sysinternals suite 辅助你,基本上该有的都有,不过这么一来有点本末倒置了
    viruscamp
        48
    viruscamp  
       39 天前
    @BeautifulSoap 至少半年前就支持直接导出 vhdx 了

    wsl --help
    --export <Distro> <FileName> [选项]
    将分发版导出到 tar 文件。
    文件名可以是 - for stdout 。

    选项:
    --vhd
    指定应将分发版导出为 .vhdx 文件。

    --import <Distro> <InstallLocation> <FileName> [选项]
    将指定的 tar 文件作为新分发版导入。
    文件名可以是 - for stdin 。

    选项:
    --version <Version>
    指定要用于新分发的版本。

    --vhd
    指定所提供的文件是 .vhdx 文件,而不是 tar 文件。
    此操作在指定的安装位置创建 .vhdx 文件的副本。

    --import-in-place <Distro> <FileName>
    将指定的 .vhdx 文件作为新分发版导入。
    必须使用 ext4 文件系统类型设置此虚拟硬盘的格式。
    Al0rid4l
        49
    Al0rid4l  
       39 天前
    windows terminal+msys2 或者 WSL

    用 xx 管家那还不如 WIndows Security

    文件系统遗留那必然是会遗留的, 不管你用 winget, chocolatey, scoop, 总会有那么一些软件会遗留...信不过第三方那就自己写 PS 脚本吧, 我是尽量选择一些开源的工具, 免安装, 国产都丢虚拟机
    whenov
        50
    whenov  
       38 天前
    @nagisaushio
    1. 可以看看 dmesg 或 journal -b -1 的 log ?或许可以通过修改/etc/systemd/logind.conf 来解决;
    2. 这个感觉像配置问题;
    3-4 的缩放问题我也不清楚了
    iorilu
        51
    iorilu  
       38 天前
    别太当回事, 别要搞得好像系统装了就永远不会重装一样

    直接用, wsl 里用命令行难道和 ubuntu 有啥不一样吗
    wencan
        52
    wencan  
       38 天前
    我的也是 thinkbook 14+ amd
    2022 年版本
    当时装上 debian 后,键盘都用不了
    因为 debian 内核还不支持那键盘。ubuntu 最新版据说支持,但安装上,依然用不了键盘
    装上 fedora ,体验和稳定性不比 debian 差
    感觉现在的 fedora 跟十年前的 fedora ,已经不是一个“品牌”了
    liuxu
        53
    liuxu  
       33 天前
    时代变了,win10/11 花式太多,已经各种玩不懂了,最近升配置,ubuntu 切到 gentoo 了

    liuxu@liuxuzzz
    --------------
    OS: Gentoo Linux x86_64
    Kernel: 6.6.30-gentoo-dist
    Uptime: 13 mins
    Packages: 896 (emerge)
    Shell: bash 5.1.16
    Resolution: 2560x1440
    DE: Plasma 5.27.11
    WM: kwin
    Theme: [Plasma], Breeze [GTK2/3]
    Icons: [Plasma], breeze [GTK2/3]
    Terminal: konsole
    CPU: AMD Ryzen 9 5950X (32) @ 4.000GHz
    GPU: NVIDIA GeForce RTX 3070 Lite Hash Rate
    Memory: 1486MiB / 80312MiB
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1078 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 18:55 · PVG 02:55 · LAX 11:55 · JFK 14:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.