自从 win10 自带了 Linux 子系统之后,家里面所有的电脑全部升级到最新版 win10 并且开启了 Linux 子系统(即 WSL ),平时工作上也必备 WSL,可惊讶的发现很多人还不知道这个。
win10 如何开启 WSL 参考: https://docs.microsoft.com/zh-cn/windows/wsl/install-win10
按照了 WSL 之后你将获得以下技能:
这么好用的 Linux 子系统,为什么还不够普及呢?
我当这是普及贴吧。
1
toptyloo 2019-12-27 15:03:42 +08:00 via Android
错觉,很多人用…
|
2
noqwerty 2019-12-27 15:04:58 +08:00 via Android 20
每隔几天就有出来夸 wsl 好用的,喷 wsl 难用的,吹 wsl2 的和骂 wsl2 倒退的😂
|
3
murmur 2019-12-27 15:07:03 +08:00
如果是 java、前端开发,用不用 wsl 其实问题不大,反正 ide 都支持了,npm install xxx 在哪里敲都一样
上传用 winscp 连服务器用 putty 还都是免费的 至于 redis 这些,可能是因为我们有统一的开发服务器吧,数据库、redis、mq 这些基础服务不需要自己开 |
4
kethylar 2019-12-27 15:08:55 +08:00
这玩意儿进步速度飞快,现在拿来做 python 开发环境已经非常给力了,windows terminal 也是一天一个样,越来越好用了
|
5
murmur 2019-12-27 15:09:11 +08:00
winscp 的体验才好,本地远程都点到对应目录,左边拉到右边,要删除的时候直接右边删文件或者文件夹,再也不会出现因为多个空格少个空格就把 /干掉的事
|
6
locoz 2019-12-27 15:09:13 +08:00
可能是因为习惯吧?另一方面,wsl 坑挺多的...
|
7
liprais 2019-12-27 15:10:44 +08:00 1
wsl1 磁盘性能一坨屎
wsl2 不就是 vmware 么..... |
8
PhaSelEza 2019-12-27 15:11:42 +08:00 1
1. 当年我试用时,WSL 的 IO 性能还比较捉急。Hyper-V 跑个完整的 Linux 比较放心。
2. Windows 7 后,计算校验码可以用: certutil -hashfile [filename] sha1 3. Windows 10 1809 的原生命令行自带 ssh、scp、curl。 |
9
ysoserious 2019-12-27 15:11:57 +08:00
等我切回 windows 就用
|
10
Phariel 2019-12-27 15:12:02 +08:00
WSL1 坑蛮大的 WSL2 也就是个新世代虚拟机 蓝瘦
|
11
Buges 2019-12-27 15:12:04 +08:00 via Android
wsl 有个坑:使用 dism 全盘备份再部署映像恢复后 wsl 直接炸了,别问我怎么知道的。
Windows 已经内置 openssh,ssh,scp,sshd 这些命令在 PowerShell 下直接使就行了。 |
12
flycn1985 2019-12-27 15:14:14 +08:00
wsl+Hyper 当个 ssh 客户端来用好评
|
13
TapCode 2019-12-27 15:17:57 +08:00
不好用,只有一个 linux 子系统
现在用的 VirtualBox,多个不同版本系统想开几个就开几个,只要内存够。 |
14
stevenkang OP |
15
fengwei23 2019-12-27 15:25:11 +08:00
我用的特别多,快成了主力了
|
16
love 2019-12-27 15:32:44 +08:00 3
都用 wsl 了何不一步到位直接用 linux
|
17
rockyou12 2019-12-27 15:34:44 +08:00 2
只要没原生 docker 我都觉得不好用……
|
18
Leonard 2019-12-27 15:36:33 +08:00
能用 zsh 吗
|
19
kernelpanic 2019-12-27 15:38:56 +08:00
"bash 中通过 python -m SimpleHTTPServer 命令..."
win10 装了 python 也可以直接用这个命令 "sha1sum、md5sum 命令..." 装了 7z,右键文件就有 CRC SHA 选项 "ssh [email protected] 快速连接服务器..." win10 内置 ssh "scp xxx.file..." 有 winscp 为什么还要敲命令,直接拖拽不更方便吗 |
20
qwerrewt 2019-12-27 16:01:16 +08:00
CertUtil -hashfile <file> MD5
|
21
ooh 2019-12-27 16:02:50 +08:00
感觉还是虚拟机给力,不同平台使用习惯一致🤣
|
23
crab 2019-12-27 16:04:09 +08:00
sha1 cmd 下直接 certutil
|
25
oott123 2019-12-27 16:26:42 +08:00
别的不说,hash 推荐一个 HashTab 的小软件。
|
26
lovedebug 2019-12-27 16:30:34 +08:00
日常使用还是很赞的
|
27
lonelymarried 2019-12-27 16:45:46 +08:00
没用过,我用 mac
|
28
9yu 2019-12-27 16:48:11 +08:00
wsl2 bug 多到爆炸。
|
29
sx90 2019-12-27 16:48:56 +08:00 1
个人印象中,程序员不是人均 2-3 台 PC 吗
难道是我的错觉吗? 既然有那么多电脑,为啥统统要装 WIN 呢? |
30
DGideas 2019-12-27 16:57:51 +08:00
头像不错~
|
31
AzadCypress 2019-12-27 17:01:44 +08:00 via Android
我觉得 wsl 挺好用的,相比虚拟机而言它可以直接用 win 里的文件系统
不过你后面提到的 ssh/scp 用 PowerShell 也可以 |
32
HENQIGUAI 2019-12-27 17:04:27 +08:00
certutil -hashfile filename -sha256
|
33
ashong 2019-12-27 17:05:20 +08:00 via iPhone
很方比,不用虚拟机了
|
34
HolmLoh 2019-12-27 17:39:13 +08:00
用,最主要是因为 cmd 和 powershell 用的不习惯
|
35
deorth 2019-12-27 17:40:19 +08:00
曾经我也是个 wsl 吹,但是 wsl 真当 linux 主机用的时候还是坑太多了。目前正在施工 debian 宿主机+显卡直通虚机安装 windows (以便打游戏)
|
36
HolmLoh 2019-12-27 17:42:54 +08:00
其实 ssh 和 scp 不一定非要用 wsl,cmd 也有,cmd 启动速度简直不要太快
我用 wsl 的原因还有一个是因为可以装 oh my zsh |
37
hwdef 2019-12-27 17:43:55 +08:00
wsl1 和 2 的性能都很差,
微软官方知道很差,但是摆出了一种,我们知道了,我们不改,回去等消息的态度。 |
38
temporary 2019-12-27 17:52:37 +08:00
最新 win10 wsl mv 文件夹报错。。。心累
|
39
kuaner 2019-12-27 18:27:14 +08:00
非杠精
LZ 举例的那些新技能,装不装 WSL 也都有啊 wsl2 倒是可以期待 |
40
fuchunliu 2019-12-27 18:28:02 +08:00 via Android
密忘了。。。
|
41
jeffh 2019-12-27 18:31:10 +08:00
楼主说的这些,git bash 大部分能解决,我为什么要用 wsl 呢,git bash 再配个 vagrant,既有 linux 又有 win 比起阉割版的 wsl 不是更香吗
|
42
Richardhtw 2019-12-27 18:37:56 +08:00
@hwdef #37 wsl2 的性能很差具体指哪方面呢?
|
43
simuhunluo 2019-12-27 18:38:02 +08:00 via Android
powershell 当做 ssh 客户端很舒服,平时 scp 也很方便。能登录到公司的 linux 就行,没必要本地搞一个 linux
|
45
oneisall8955 2019-12-27 19:30:14 +08:00 via Android
@Leonard 可以
|
46
LancerEvo 2019-12-27 19:35:14 +08:00
WSL 蛮好用 我用过一阵子 偶尔还在用
不过其实我个人不太理解 如果不搞 windows 开发为啥要买 windows 然后用 WSL 为啥不直接买个 mac |
47
echo314 2019-12-27 19:38:45 +08:00
每个人的需求都各不一样,WSL 完美涵盖你的需求,它就是神器。
但是对于其他人,WSL 不能完美涵盖他的使用需求,所以会被喷鸡肋。 先了解自己的需求再说吧。 |
48
dr2009 2019-12-27 19:59:42 +08:00
挺好用的..顺便贴个别人的教程
https://dowww.spencerwoo.com/ |
49
Helsing 2019-12-27 20:18:22 +08:00 via iPhone
cmder + wsl + Oh My Zsh 当终端用,还不错
|
50
cppgohan 2019-12-27 20:39:03 +08:00
之前蛋疼的升级到 wsl2, 结果和 proxifier 冲突... 又回滚了
|
53
LancerEvo 2019-12-27 21:17:11 +08:00
@Nasei 我又没说 mac == linux 怎么提这个
买三台电脑就完了 windows 一台 linux 一台 mac 一台 需要干啥就去哪个机器 |
54
lichdkimba 2019-12-27 21:17:48 +08:00 via iPhone
‘bash 中通过 python -m SimpleHTTPServer 命令可以快速创建一个 localhost:8000 静态服务器’
cmd 不也可以吗?? |
55
x340 2019-12-27 21:40:37 +08:00 via Android
还行吧,ltsc 用不了 wsl2,
|
56
jin7 2019-12-27 21:56:54 +08:00
win10 自带的 powershell 这些功能基本都有
|
57
lbyo 2019-12-27 22:15:55 +08:00
@murmur #3 自己不了解的领域还是不要发言了吧... java 我不清楚;但是 前端我有发言权啊,
``` yarn init:env.local; env-cmd -f .env.local --use-shell \"yarn run start:dev\" ``` 类似的这种命令,你在 windows 原生的命令行里面跑给我看看 |
59
lbyo 2019-12-27 22:23:12 +08:00
@murmur #58 大哥,这是 package.json 里的 script 好吗,webpack 的 loader/plugin 跟这个不冲突谢谢
|
60
murmur 2019-12-27 22:24:41 +08:00
@lbyo package.json 里的指令也不过是命令行操作,他可以指向任何内容,多写两行又不是就 low 了,写批处理又不是干不了活,是不是
|
62
murmur 2019-12-27 22:28:24 +08:00
@lbyo 这么说把,脚本要做的,要么是执行指令,要么是文件操作,达成目的的方法不唯一,除非库用了非 windows 支持的二进制文件,换就可以了,真遇到这种情况可以换纯 linux,兼容机最不缺的就是硬盘和内存
如果公司在 windows 开发,我可以针对 windows 编写脚本,批处理也好,js 也罢,任何能达到目的的方法都行,我又不是做开源项目,不需要纠结*nix 兼容性,也不用纠结优雅,反正写一次每次都是在跑,是不是? |
63
lbyo 2019-12-27 22:31:08 +08:00
@jin7 #61 也不行,类似这种问题只能用 cross-env 来解决,你可以搜一下
@murmur #60 你是可以用 cross-env 来解决这种问题,但是 windows 原生的命令行不支持的太多了,永远不要把时间浪费在解决这种环境冲突上,所以选择拥抱 macOS 吧 最现实的,公司都用 macOS , 你在家里用 windows, 需要 hotfix 了, 你 npm install 一堆报错,左改右改好不容易装上了依赖了; npm run start 运行不起来,你又去装 cross-env,改 package 的 script,搞完这些,线上都崩了 1 个多小时了;推代码之前还要把 package 改回来,真是有够生产力的呢 |
64
murmur 2019-12-27 22:34:15 +08:00
@lbyo 我们公司都用 windows 啊。你们公司要全配 mac 就配呗,他既然全公司配 mbp 那就把公司电脑拿回家就完了,还搞什么环境
我从 jquery+bootstrap 到 react、vue 还没遇到过不兼容的坑呢,当然我们后端纯 java,不搞 ssr 那一套 |
65
anguiao 2019-12-27 22:36:16 +08:00
WSL 作为开发环境,性能我觉得已经够用了。WSL 2 虽然是虚拟机,但是无论是启动速度、还是和 Windows 本身的整合程度,都比 VMWare 之流强多了。
不过我还是有搞一台 Linux 小主机的想法,可惜想买的东西太多,这个想法只能往后稍稍。 |
66
murmur 2019-12-27 22:36:28 +08:00
@lbyo 这个帖子讨论的是 windows 开发,macos 凑什么热闹,我感觉现在 windows 走歪了,他就应该好好走办公娱乐的路线,赶紧辞退印度工程师,别三天两头出 bug
windows 电脑最不缺的就是内存和硬盘,同样价格硬盘可以秒 mac 几圈,我装两个系统不美滋滋,只要是能在服务器跑的就必须支持 linux,要么怎么上生产,跨平台的移动端库如果想兼容 android 他也得兼容 linux,除非是 ios only |
67
lbyo 2019-12-27 22:43:03 +08:00
@murmur #64
1. 我只是不爽你对前端一知半解,就胡扯一通,告诉你前端不止 npm install xxx 2. 公司配电脑只有 mbp? iMac 了解一下,你可以选择搬回家,我们公司想配啥就配啥,管的着吗 3. 这个帖子讨论的是 WSL, 你扯什么前端 4. 你没遇到不兼容的坑不正说明你对前端了解的少,谁给你勇气说出“npm install xxx 在哪里敲都一样”的? 5. Windows 命令行确实烂,但是人家想怎么走是人家的事,人家愿意作,管的着吗,可惜你不是 CEO,幸好你不是 CEO 6. 看了你的发言,顾左右而言他,一股“老子天下第一”的味道,已 block |
68
classyk 2019-12-27 22:43:39 +08:00 1
win10 家庭版就已经携带了 WSL,很好用。而且 WSL 里面还能运行 windows 命令。可以混用
专业版再加上 hyper-v,就可以很方便的使用 docker 了 目前 windows 的开发环境还是很不错的 |
69
murmur 2019-12-27 22:48:17 +08:00 1
@lbyo
1、如果你遇到前端的坑你说出来,你碰到哪个库不兼容说出来给大家排排雷而不是说你 osx 有多优越感 2、这是 WSL 的讨论贴,你一个 iMac 来捣什么乱,难道是传说中 mac 装 win 的 3、我说前端和 java 的坑比较少,一般不需要用 WSL 解决问题,如果你遇到坑欢迎说出来而不是在这抬杠,虽然我们公司和某些人心目中的全干还差的远,但是大大小小从 jquery 到 vue 到 react 到 angular 我们都用过,java 也上了微服务 MQ 这些时髦东西,没有发言权么 4、那你说兼容性问题啊,我的知识面决定我的理解就这样,而不是说如果 xxx 如果 xxx 如果 xxx 5、至少用不到你个 mac 用户操心 6、欢迎 block |
70
yilingersier 2019-12-27 22:56:53 +08:00
电脑买来第一件事,wsl
|
71
Felldeadbird 2019-12-27 23:10:16 +08:00
为什么我 wsl 安装老出错。后面我就没搞了。还是用 VM 算了。
|
72
charlie21 2019-12-27 23:20:39 +08:00
为什么 win 里 安装 python 之后 ,用 python SimpleHTTPServer 好像不能用?
|
73
nannanziyu 2019-12-27 23:31:06 +08:00
@lbyo
1. 谁说只能用 cross-env 的? gulp 里,if (process.platform === 'win32') { $env:NODE_ENV = xxx } else { NODE_ENV = xxx } 一样可以 2.谁跟你说 windows 命令行烂的? 这么着吧,你说个任意用 Mac 的命令行能搞定的需求,我要是用 powershell 搞不定,你说让我吃啥我吃啥,行不行?反过来你敢不敢? |
74
lbyo 2019-12-28 00:26:19 +08:00
@nannanziyu #65
1. gulp? 你怎么不提 grunt 呢? 我为了解决一个因为环境不支持的问题而把构建工具换掉,鬼才,建议入职阿里好 8,KPI 杠杠的,361 对你无效 话又说回来,你在 gulp 构建的项目里,启动脚本写 ``` yarn init:env.local; env-cmd -f .env.local --use-shell \"yarn run start:dev\" ``` ?? 那你干嘛不直接用 webpack ? 真是有够好笑的呢 2. 就我自己说它烂的?自己不会搜一下, 现在有了 powershell 和 wsl 名声还好点 powershell 风格给我感觉就是将简单的东西复杂化,命令长,脚本系统大的很, 就是一门新的语言, 说白了还是靠着无所不能的 .net 框架。只要你想,从文本处理到用户界面,没什么搞不出来的东西。 但是又有什么用呢,运行慢、字体丑、可 DIY 项少的可怜 难道大家用 shell 是为了天天写脚本?这就是你心目中的生产力工具啊? https://www.google.com/search?sxsrf=ACYBGNTJby8YwOsVmDVuq_YuqrbNkj3t6A%3A1577462895825&ei=bywGXt2CMsLKmAWnmoXYAg&q=windows+%E5%91%BD%E4%BB%A4%E8%A1%8C+%E7%83%82&oq=windows+%E5%91%BD%E4%BB%A4%E8%A1%8C+%E7%83%82&gs_l=psy-ab.3...141555.148330..148462...4.0..0.176.3739.1j29....2..0....1..gws-wiz.......35i39j0j0i70i255j0i203j0i12j0i333.D1hpn9osWtE&ved=0ahUKEwid9rScm9bmAhVCJaYKHSdNASsQ4dUDCAs&uact=5 3. 这帖子是讨论 WSL, 我看到楼上有人不懂装懂说什么前端只用 npm install, 看不惯就说两句, 本来不需要扯这么多的;观念不同,谁也别想用言语胜过谁,也别骗吃骗喝,洗洗睡吧 |
77
LemonFlower 2019-12-28 00:33:23 +08:00
因为...熟悉这个平台,除了真正的平台专有的特性以外基本都可以原生解决,剩下的恐怕它也解决不了
|
78
LemonFlower 2019-12-28 00:34:33 +08:00
"平台 独享" 居然是关键词
|
79
LemonFlower 2019-12-28 00:44:36 +08:00
@lbyo 前端项目用 JS 来做启动脚本不才是正常现象吗...
硬要在里面用 Unix 命令并且以兼容 Windows 浪费时间为借口才是怪,就算全体开发人员一个 Windows 上的命令都不知道也可以在开发依赖里面加上 cash 或是 shelljs 这种东西来实现在所有平台上使用统一的命令并且不写脚本 如果这两个东西不能满足需求,那就更不应该把这种复杂的东西写在 npm script 里面了 |
80
BXGo 2019-12-28 00:47:58 +08:00 via Android
专业版才有
|
81
lbyo 2019-12-28 00:56:46 +08:00
@LemonFlower #71
1. 这个帖子本来就不是讨论 前端 的 2. Unix 下的终端就是开箱即用啊,windows 做的还不够这是事实 3. 不需要找借口,招聘的时候大都到常用的开发环境,整个公司统一就好了,其他开支都是多余的 4. 没有规定说前端项目的启动脚本只能写 JS,可以变通一下;照你这种思维,重构会变得很复杂,现在讲究渐进式; 再者说编程里面嵌套不是很正常的做法吗,比较老旧的项目,为了兼容以前的 gulp,采用 webpack 时会写比较多的配置;将 angular 迁移到 react 也需要一步一步来,先在项目中嵌套使用 react,逐步替换,而不是一口吃成个胖子 |
83
FrankD 2019-12-28 01:01:16 +08:00 via Android
如果 wsl 的好处就是你举的这几个例子,那我不如用 git bash
|
85
ruri 2019-12-28 01:13:54 +08:00 via Android
win 下面也有自带 certutil -hashfile 命令来算 md5 啊,和 ms5sum 是一样的。
我觉得这才是很多人都不知道的 win 功能吧? |
86
LemonFlower 2019-12-28 02:48:39 +08:00 via Android 1
@lbyo
1. 你自己起了"前端你有发言权"这个话题,我回复你当然也是说前端了 2. 我身边的朋友 Windows 的程度远高于 Unix,在场景限制为你所提到的 "前端" 的情况下写一个兼容 Windows 的构建脚本带来的问题远低于强制 Unix / macOS 3. 从公司层面限制 Linux 会带来一系列的坑,包括但不限于特定设备的 Bug,统一设备但桌面环境有各种 Bug,至于全体命令行... 显然不可能... macOS 也一样,个人不同的系统已经不影响开发效率的情况下花钱给每个人一个高配的 MacBook 并且强制使用也不是一个明智的选择 4. 在复杂度超过 npm script 应有的复杂度的情况下,写 js 脚本和 shell 脚本没有过大的区别,相比要求前端团队中所有人都要熟悉 Shell 脚本反而更高效,这种东西甚至涉及不到重构,更不涉及什么一口吃成胖子... 如果没有复杂度,那就更好说了,倾向于 Unix 命令并且希望跨平台的话,cash 和 shelljs 是一个相当方便的解决方案 |
87
orzorzorzorz 2019-12-28 06:06:24 +08:00 via Android
你得照顾下只有装 linux 才能焕发青春的老机子啊,我这老年笔记本跑 window,风扇能被当成 18x asmr :doge
|
88
gowinder 2019-12-28 07:30:48 +08:00 via iPhone
太阳系豆没有出,就说没有外星人?
|
89
SakuraOjosama 2019-12-28 07:58:49 +08:00
git bash 不香嘛ヾ(´∀`。ヾ)
|
90
iamverylovely 2019-12-28 08:34:15 +08:00 via Android
wsl /u
|
91
youngxhui 2019-12-28 08:54:02 +08:00 via Android
写 py 会用 vsc 连接上使用,其他没有
|
92
linmq 2019-12-28 08:57:27 +08:00 via iPhone
在用。好用。
|
93
raptor 2019-12-28 09:21:49 +08:00
有那精力直接用 linux 不好么……
|
94
netnr 2019-12-28 09:29:56 +08:00
sqlserver 数据库装不上,继续虚拟机
|
95
wee911 2019-12-28 09:31:16 +08:00
试试 wsl2, 开启后简直灾难
|
97
so898 2019-12-28 10:40:44 +08:00
因为不能和 VirtualBox 兼容,所以我选择 VirtualBox
毕竟,WSL 只能开一个,VirtualBox 不仅能开多个,还能开 Windows 虚拟机 |
98
PbCopy111 2019-12-28 10:45:56 +08:00
我觉得微软使用了 WSL,就是为了让 powershell 变得更好。。。。所以我还是先适应 powershell 吧。
|
99
changlers 2019-12-28 11:03:32 +08:00
一台外星人一台 mac,前者用了一天 wsl 就放弃了,感觉没必要,作为一个前端开发,哪里都是一样敲
|
100
ikaros 2019-12-28 11:13:32 +08:00
这些命令装个 git-bash 不是也有吗?
|