
1 sunrisewestern 2023-03-11 01:46:16 +08:00 你这个本质是在 windows 在使用类 linux 的命令行指令去做代替 cmd 或者 powershell 的指令,而 wsl 是给想在 windows GUI 下用 linux 系统的人用的,还是不一样的 |
2 thedrwu 2023-03-11 04:01:00 +08:00 via Android 2000-2010 那会儿 mingw 纯原生和 msys 的前身(叫什么忘了)互相交互的时候会把命令行参数里的 /转译成\ 于是脚本常常遇到意想不到的 bug ,不知道现在改了没。 只能选择 cygwin 或者手动 sfu |
3 ysc3839 2023-03-11 05:53:37 +08:00 via Android 我选择 MSYS2+zsh |
4 jin7 2023-03-11 08:19:41 +08:00 via Android powershell 也是有学习成本的 |
5 Aaron01 2023-03-11 08:54:03 +08:00 via Android 我也觉得这样比 wsl 好用点 |
6 itechify PRO 一直这样用,买了云主机,再也没有折腾过 wsl |
7 mrpzx001 2023-03-11 09:34:48 +08:00 wsl2+docker+remote development |
8 yaott2020 2023-03-11 09:38:26 +08:00 via Android 我倒是觉得 wsl2 更好,wsl2 提供几乎原生的 Linux 环境,而且相对可以隔离主机文件,不需要也可以直接删。虽然资源占用大了一点,但还是可以接受的。 |
9 ericguo 2023-03-11 09:38:52 +08:00 真的喜欢原生命令行还不如直接换 Linux/Mac ,不差钱换 Mac 比较好,桌面端软件全。 |
10 zxCoder 2023-03-11 10:19:23 +08:00 优势是大部分应用都是移植到原生的 win32 应用, 能和主机共享一套环境. (比如我 IDE 里调用的 python, powershell 里的 python 和 MinGW 里的 python 都是同一个, 版本和包都是一致的.) 这个优势我咋没感觉出来,那用 WSL 的话,IDE 里调用的 python 是 WSL 的 python ,命令行里调用的也是 WSL 的 python ,有啥不同的吗 |
11 rb6221 2023-03-11 10:20:13 +08:00 所以你用的还是 win ,只是命令行相关的操作进行了加强而已。而很多人是为了用 linux 。本质不一样的 |
12 missdeer 2023-03-11 10:44:27 +08:00 via Android 直接用 msys2 就行了,pacman 包管理 |
13 coyove 2023-03-11 10:56:32 +08:00 现在日常工作用 msys2 ,优点就是方便,把根目录打包就可以带走。基本的工具链 pacman 也都有(平常主要是 pythongo ,c++),基本的代码编辑完全可以胜任,gopls ,clangd 都是开箱即用,正儿八经的编译大概率会出问题,但因为服务端的工作性质,本地编译基本可以忽略。 |
14 cc666 2023-03-11 10:58:45 +08:00 需求不同,你这不是 WSL2 欲解决的主要需求 |
15 coyove 2023-03-11 11:00:29 +08:00 现在日常工作用 msys2 ,优点就是方便,把根目录打包就可以带走。基本的工具链 pacman 也都有(工作主要是 vim + py/go/c++),代码 IDE 完全可以胜任,gopls ,clangd 都是开箱即用,正儿八经的 c++编译大概率会出问题,搜 hack 能解决一部分,但因为服务端的工作性质,本地编译基本可以忽略,倒是没有太多影响。 |
16 duke807 2023-03-11 11:02:15 +08:00 via Android 一直在笔记本上用 linux/gentoo 路过 |
17 qq565425677 2023-03-11 11:12:27 +08:00 via Android 按 op 的需求确实没有必要装 wsl ,不过 wsl 主要是用来提供 linux 的系统环境,而不是提供一个 shell |
18 lyc8503 OP @sunrisewestern @janus77 @cc666 确实可能我的需求可能不需要 WSL, 不过感觉身边很多人都是装了 WSL 只是为了 Linux 下的终端体验, WSL 太大了不一定适合所有人, 所以提这个帖子讨论一下. @zxCoder 这样配置的话遇到系统调用(特别是文件 io)密集的程序是有比较明显的性能损失的, 无论是 WSL1 还是 WSL2, 只有 WSL2 下把文件全放在 Linux 下才能达到接近原生的性能, 但这样 Windows 访问其中的文件又是通过网络文件系统了, 速度慢且容易出现兼容性问题. @duke807 笔记本用 Linux 有不少小毛病, 比如耗电快+容易睡死+GUI 不那么流畅, 个人也习惯 Win 了就一直用着了. |
19 HENQIGUAI 2023-03-11 11:21:20 +08:00 Windows 下一直感觉 Powershell + .Net 可以吊打 Linux 下的 shell 脚本,不过可能大多数时候没那么轻巧好用。 |
20 ShadowPower 2023-03-11 12:50:44 +08:00 via Android 我用 WSL 不是为了那些命令,只是为了运行真正的 ELF 可执行文件,然后还要用 Linux 的 syscall 。不少原本只适配 Linux 的方案现在都可以轻松跑起来。 之前做一些项目特别依赖平台相关的特性,例如监视文件和文件属性变化。这种东西在 Mac 上都会有差异,监视文件变化的地方不一样。一些跨平台库虽然接口统一了,但行为还是有一些区别,导致不同的平台上代码可能会多执行或者少执行。 以前直接用 Linux 桌面来做开发,桌面谈不上好用,只能凑合用,小毛病挺多的。像投屏到会议平板之类的还全是问题,根本不能用。有了 WSL 之后,几乎同时满足办公协作和开发的需求。我也用过虚拟机和 vagrant 之类的东西搭环境,便利程度不及 WSL 。 用 msys2 那套的话,我曾经遇到过 sed 的行为不样的问题,已经太久远了,细节忘了…… |
21 tool2d 2023-03-11 14:38:26 +08:00 我也是用 MinGW ,ls 那些命令基本上都能用。 也不是真的需要 linux 内核,只要一些常用终端软件,能正常编译和运行就可以了。 |
23 laqow 2023-03-11 20:22:19 +08:00 MinGW 能编译的就是纯 windows 应用了,对 linux 特性依赖基本没有的那些。有些没针对 windows 优化的部分就算能编译也比 linux 环境下性能低很多。比较担心 Msys2 里面 symlink 、pipe 或路径转码反斜杠转换之类的有 bug 直接把重要文件冲了,重要事情还是在虚拟机里面跑独立 linux 做。 |
24 creanme 2023-03-11 20:42:25 +08:00 不就为了用那些命令吗,推荐 terminal + nushell |
25 AnroZ 2023-03-11 20:51:16 +08:00 用 SWL+ubuntu 子系统已经很多年了 |
26 xinleibird 2023-03-11 20:59:55 +08:00 MinGW 还可以开 X server 呢……自己玩当然好玩,拿来做开发环境也凑活,可是太折腾了。真是奉旨摸鱼摸这种东西、摸编辑器是最好玩的吧,否则就算了吧。 |
27 lscho 2023-03-11 21:05:15 +08:00 所以我选择 macOS |
28 coolair 2023-03-11 21:07:41 +08:00 via Android winget + PowerShell ,好用的不得了。winget 提交源 PL 很快就通过。PS 在 Win 下真的是无敌,觉得不好用的,是因为你不会用。很多人可能专门看了 bash 之类的编程书,确少有人针对 PS 学习过,毕竟应用范围不及 shell ,但是看完文档后,会发现真是强大,而且 win 的文档真心完善。 |
29 tairan2006 2023-03-12 00:19:30 +08:00 via Android WSL 最重要的是有个 Linux 环境…写 C/C++或者用其他语言调用 C 库的时候,没这个环境调试很麻烦。 |
30 chenzhongxiang 2023-03-12 00:33:52 +08:00 via iPhone c/c++开发,需要跨 win 和 linux 封装抽象层,clion 跑在 win 上。写好 cmake 配置后 clion 里切换配置自动在 win 和 wsl linux 环境里切换简直不要太方便。以前都是写完一大段然后推到 git 再 pull 下来,如果发现抽象层不合适还要重新两边都改再推 git ,现在点一下换个配置立即换了环境。丝滑~~ |
31 hxy100 2023-03-12 02:09:26 +08:00 蹲个点,因为我跟楼主的使用习惯一样。 |
32 binghe 2023-03-12 05:05:49 +08:00 scoop install 怎么更改安装位置 现在默认是装在用户目录下的,我想改到 D 盘或者 E 盘的自定义目录下可以吗? |
33 zed1018 2023-03-12 08:24:05 +08:00 不做 python 不太清楚怎么弄,我是写 kotlin/spring-boot 的,我是全部都在 wsl2 里。 我的方案是项目、gradle 、jdk 全在 wsl2 ,intelliJ 能直接从 wsl2 里读到 sdkman 装的 jdk 。IO 除了 IDE 的 index 基本不走 9pfs 。如果觉得 indexing 太慢现在 GW 也支持 WSL2 ,不过主要问题是不能共享插件和设置同步,一个项目单独的一套 backend 。 |
34 likeunix 2023-03-12 08:44:58 +08:00 为了用 WSL2 ,我在系统服务里把 虚拟机平台 打开,但是感觉 VMware 里的虚拟机有点卡,不知道会不会降低本地软件的性能 |
37 agagega 2023-03-12 15:21:18 +08:00 我用 Windows 的时候也喜欢像 OP 这样,其实大多数时候虽然不方便但也能满足需求。以前人们比较 Windows 和 macOS 的命令行就是在这个层面上的。WSL 跟它们其实不是一个层面的东西,没有那种同属于一个系统的感觉。 不过有个问题是,不知道怎么把 VS Prompt 和 Git Bash 结合起来,也许直接把那堆工具链加到 Bash 的 PATH 里就行了? |
38 Slurp 2023-03-12 21:59:31 +08:00 吹 PowerShell 的就算了,启动两三秒,语法一脉相承的没有审美…… |
39 bigtear 2023-03-12 22:52:03 +08:00 可以试试 Nushell ,一个 Rust 写的 Shell ,设计理念和 Powershell 类似,但是速度比 Powershell 快得多,原生跨平台。 目前在用 Windows Terminal + Nushell + Git bash 工具链,非常好用。偶尔需要 Linux 环境就用 WSL1 + Alpine Linux ,很舒服。 |