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 1
我选择 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
oneisall8955 2023-03-11 09:30:57 +08:00
一直这样用,买了云主机,再也没有折腾过 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
janus77 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 1
我用 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 ,很舒服。 |