安利 wsl 给在用 Linux 的小伙伴~

2018 年 4 月 15 日
 huskar

用 Linux mint 做后端开发还是很爽的,包管理很方便,还有 jetbrain 的 IDE 可以用。我司部署环境是 Debian,稍微搞一搞就能和部署环境一致了,大部分项目就可以直接本地启起来调试,非常方便(这应该是我喜欢 linux 最重要的原因了)。

linux 开发好用,但是日常使用就不方便了,QQ 就不说了,甚至一个好用的邮件客户端都没有… 最无奈的是会遇到些奇怪的问题,比如:

  1. 每次重启后搜狗输入法的待选词列表会不见,要手动换一次皮肤才会出现
  2. 有时候 WiFi 列表搜不到任何信号,得 service networking restart 一下
  3. QtCreator 里面输入不了中文(这个算已知问题,因为 fcitx 不支持 Qt5 应用,但是知道原因也解决不了…),只能在外面打好中文粘贴进去……

有些问题想解决搜都不知道怎么搜… 总体使用 linux 的感受就是凑合,为了开发方便舍弃一些日常需求,遇到了奇怪的问题,能忍受的就假装没看见… 记得有种说法是,windows 和 mac 是把用户当用户看,而 Linux 则默认用户是开发者。虽然我也算开发,可是我真的不懂 linux 的开发啊,遇到一些问题对我来说确实解决不了,甚至只能重装解决。折腾 linux 这些年都不知道重装了多少次系统了。

所以自从 windows 推出 wsl 我就挺感兴趣的,刚出来时就体验了一下,发现坑挺多的,就放弃了。但是一直关注着 wsl 的后续发展。前段时间 wsl 从 beta 变成正式 feature 并可以在 window 商店直接下载,就一直想再试用一下。于是上周重装了 win10。

这几天试用给我的感觉是,wsl 真的已经不是玩具了,基本可以满足我使用 linux 的所有需求。

举个例子,我有个需求是每天登陆一个网站自动听一些课程,是用 python 实现的。主要用到的就是 requests 模拟请求和 pytesseract 识别验证码(验证码很简单,ocr 就能搞定)。其实这需求在原生 windows 下也能搞定,但是我就是很抵触在 windows 下写 python …而且 tessract 在 linux 下安装就一条 apt install,在 windows 下还要看看博客才会安装,更是让我抵触。但是在 wsl 下就变得很简单啦。装好 wsl 后,几个 apt 和 pip 命令安装好依赖,原来的 python 脚本直接就能跑起来啦,感觉蛮爽的。 还有就是我用 hyper terminal+zsh,有着完全不输 mac 的终端体验,很棒。

所以郑重安利一下 wsl 给在用 linux 的小伙伴,欢迎交流~

21917 次点击
所在节点    程序员
189 条回复
chocotan
2018 年 4 月 16 日
windows 卡的不行。。。我选择 linux
YumeMichi
2018 年 4 月 16 日
对我来说并不是不喜欢 WSL 只是对 Windows 系统没有需求而已 Linux 能满足我日常所有使用 包括游戏
hwdef
2018 年 4 月 16 日
新建了一个 tele 的群,欢迎加入
[wsl 技术分享]( https://t.me/joinchat/BTMvmhKJWiKjP3WPFUd78w)
yuhr123
2018 年 4 月 17 日
为了 QQ 和 Email 客户端而放弃原生使用 Linux 发行版?臣妾做不到啊!
x86vk
2018 年 4 月 19 日
@goreliu 我大概半年 /一年前试过一次,npm 会报错。在 wsl 的 bug repo 上找到了对应的 issue 不过这么久过去了,应该修好了吧
ShadowPower
2018 年 5 月 2 日
其实 Docker 是可以在 WSL 里使用的,给大家分享一下我的经验
需要在~/.bashrc 里添加一些东西

# 适用于 Docker for Windows
export DOCKER_HOST=tcp://127.0.0.1:2375

# 适用于 Docker Toolbox
#export DOCKER_TLS_VERIFY=1
#export DOCKER_HOST=tcp://192.168.99.100:2376
#export DOCKER_CERT_PATH=/mnt/c/Users/Nya/.docker/machine/certs

# 挂载 /mnt 下的一些目录到根目录下,让 WSL 的路径和 Docker 一致
if [ ! -d "/c" ] || [ ! "$(ls -A /c)" ]; then
sudo mkdir -p /c
sudo mount --bind /mnt/c /c
fi

# 如果是其他的盘符可以对照着修改……
# mount 命令需要 root 权限,所以配置一下免密码 sudo 会方便许多

# 然后跳到 /c 目录,有个小问题,根目录下启动的 Bash 跳转不了
# 可以把这个判断写得复杂一点处理 /mnt/c 的情况……
if [ "$(pwd | cut -c -7)" == "/mnt/c/" ]; then
cd "$(pwd | cut -c 5-)"
fi

像这样就可以了,我已经用来工作半年了,没有遇到过问题。
ShadowPower
2018 年 5 月 2 日
啊对了……
里面的用户名得根据实际情况修改一下
samaxu
2018 年 5 月 17 日
为什么这么多人要谈论为何不单独用 linux,
wsl 明显是更适合需要 windows 和 linux 同时使用的人啊
TripleZ
2018 年 11 月 1 日
@natscat 请问是什么第三方 Terminal 呢,一直想找替代品

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/446914

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX