惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Palo Alto Networks Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
C
CERT Recently Published Vulnerability Notes
C
Cybersecurity and Infrastructure Security Agency CISA
S
Schneier on Security
S
Securelist
酷 壳 – CoolShell
酷 壳 – CoolShell
C
CXSECURITY Database RSS Feed - CXSecurity.com
Cyberwarzone
Cyberwarzone
Apple Machine Learning Research
Apple Machine Learning Research
S
SegmentFault 最新的问题
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
GbyAI
GbyAI
Security Latest
Security Latest
Last Week in AI
Last Week in AI
Microsoft Security Blog
Microsoft Security Blog
云风的 BLOG
云风的 BLOG
Recorded Future
Recorded Future
Webroot Blog
Webroot Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
TaoSecurity Blog
TaoSecurity Blog
C
Cisco Blogs
博客园 - 【当耐特】
Blog — PlanetScale
Blog — PlanetScale
Hugging Face - Blog
Hugging Face - Blog
B
Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Attack and Defense Labs
Attack and Defense Labs
The Last Watchdog
The Last Watchdog
U
Unit 42
阮一峰的网络日志
阮一峰的网络日志
Project Zero
Project Zero
WordPress大学
WordPress大学
L
LINUX DO - 最新话题
F
Fortinet All Blogs
L
LINUX DO - 热门话题
PCI Perspectives
PCI Perspectives
Simon Willison's Weblog
Simon Willison's Weblog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
MongoDB | Blog
MongoDB | Blog
Latest news
Latest news
P
Proofpoint News Feed
T
Threat Research - Cisco Blogs
The Hacker News
The Hacker News
爱范儿
爱范儿
O
OpenAI News
J
Java Code Geeks
T
The Exploit Database - CXSecurity.com
H
Hackread – Cybersecurity News, Data Breaches, AI and More

PixelNest

会议是效率的杀手 国庆出游记录 对居家办公的一些想法 2022 春节 《搏击俱乐部》的结局 纪念 PAI 头一回达到 100 卡片笔记法 《刑法学讲义》的部分摘录 迁移博客 《UNIX 传奇》摘录 就地过年 一点记录:docker-compose 编排不同项目间的网络 近期读的几本书 办新身份证 git 获取其他分支的单个文件或目录 我的高考成绩 推荐 2020 年上半年的 8 部影视作品 ChromeOS 开发者模式 终于下单了《守望者》 联通来电管家服务 一些实用的 bash 代码片段 关于 鸟枪换炮 《架构整洁之道》摘录 惨淡的星球大战 旧笔记本电脑 if...then... 命令行检测 SSL 证书过期时间 《程序员的职业素养》读书笔记 2019 国庆假期 在 Ubuntu 里按空格键预览 《基本穿搭》笔记 我在 Ubuntu 里安装的一些软件 让人郁闷的英语学习过程 色彩理论基础 向百度主动推送网站链接 两部电视剧 《历史的教训》摘录 新工具 Koa 获取客户端 IP 备案了 apiDoc 基础语法 《代码整洁之道》摘录 BBC 纪录片 《逻辑的乐趣》 读不下去的《原则》 蓝牙鼠标唤醒休眠的 Ubuntu Google 发布会 2018 国庆假期 开发者的时间追踪和统计 使用 curl 发送 POST 请求的几种方式 《重来 2》读书笔记 Linux 和 MacOS 命令行转换图片用法整理 《Go 语言实战》笔记 Win10 微软拼音添加小鹤双拼以及其他配置 针对不同场景临时禁用 eslint 规则的方法 《好妈妈胜过好老师》读书笔记 又读完一本尤·奈斯博的小说 近期写 Go 的一点语法碎片整理 ffmpeg 合并 MP4 M4A 文件 睡前看手机的大问题 《局外人》读书笔记 菊次郎与佐纪 读书笔记 3 菊次郎与佐纪 读书笔记 2 菊次郎与佐纪 读书笔记 1 豆瓣图片服务器防盗链 《如何有效阅读一本书》读书笔记 - 3 《如何有效阅读一本书》读书笔记 - 2 《如何有效阅读一本书》读书笔记 - 1 Vim iskeyword 济南 图个乐 开始看不懂《西部世界》了 剧透 听到几个好故事 过周末 相亲 让人失望的 Apple 悬疑故事 AI 记忆 世纪三部曲 上帝的梦
配置 Win10 Linux 子系统作为开发环境
2018-08-27 · via PixelNest

Hyper

没想到,有一天我还会在 Windows 下做开发,更没想到,凭着 Win10 的 Linux 子系统,开发体验还不错。

Hyper

首先,要有一个用着舒服的终端,我选用了 Hyper,这是一款基于 Web 技术、跨平台的终端软件。在 Hyper 的窗口菜单里依次选择 File -> Edit -> Perferences… 会打开一个文本文件,是 Hyper 的配置文件,文件名为 .hyper,实际上这是一个 JS 文件,看内容就知道,开头除注释外的第一行是 module.exports = {。我对这个配置文件做了如下修改:

module.exports = {
    // 老年人,喜欢比较大的字体,字小了费眼
    fontSize: 16,
    // 有人是打开终端后输入 `bash` 或者 `ubuntu` 或者 `wsl` 命令进入 Linux 子系统,我个人没有这个需求,所以如此设置,打开终端后直接进 Linux 子系统。
    // 执行 `bash` 和 `wsl` 命令进入 Linux 子系统后,当前的目录跟进入子系统前一样,而执行 `ubuntu` 命令进入子系统后,当前的目录变成了用户的 Home 目录,这样比较符合我的习惯。
    shell: 'C:\\Users\\Username\\AppData\\Local\\Microsoft\\WindowsApps\\ubuntu.exe',
    shellArgs: [],
    // 想通过这个配置去掉在终端下敲命令时出现的 `bell` 声音,然而结果没生效,在按 Tab 补全时,仍然有讨厌的提示音。结果是通过修改 shell 的初始加载文件来达到目的的。下面会提到。
    bell: 'false',
    // 这是给终端配置的主题颜色
    plugins: ['hyper-material-theme'],
}

zsh

这也是个习惯了,在这个子系统里我也装上了 zsh 和 oh-my-zsh 作为日常 shell。为了提升 Win10 下 Linux 子系统的开发体验,我在之前 Ubuntu 环境里的 .zshrc 基础上做了一些修改供这个子系统用。

bell

其中一点就是前面说过的 bell 的问题。我是通过在 .zshrc 里添加下面这句配置来解决的。

unsetopt beep

我尝试过在 /etc/profile 或者 ~/.profile 文件里加上这句配置,结果都没其作用,进入系统 zsh 时,zsh 默认并没有加载这两个文件,我想与其修改这两个文件,再修改 .zshrc 或者 /etc/zsh/zprofile 去 source 那两个 profile 文件,不如干脆就把这句配置直接写到 .zshrc 里吧。这样固然对其他 shell 不起作用,但是我也不用其他 shell,没什么负面影响。

umask

.zshrc 做的另一个修改是加了 umask 022 这句配置。进入 Linux 子系统后,默认的 umask000,这样你创建的每个目录的权限都是 777,那还了得。出于跟上面一段同样的原因,我还是把这句配置加到了 .zshrc 里。

z

zsh 有个好用到让人想哭的插件名叫 z,用上它之后,目录切换如行云流水,操作起来飘若浮云,矫若惊龙。再也不用费脑子去记某个文件完整的路径和文件名了,具体细节不在本文讨论范围,请自行体验。

在 Win10 Linux 子系统里,我自然也给 zsh 配上了这个插件,却发现每次启动终端进入 zsh 时,就给我报个错 _z_precmd:1: nice(5) failed: operation not permitted,Google 了一下,在这里找到了一个答案 _z_precmd:1: nice(5) failed: operation not permitted · Issue #230 · rupa/z

默认状态下,zsh 会尝试以低优先级 (给进程 设置高的 nice 值)来运行后台进程,但是 Win10 子系统没让这么做,给进程设置 nice 值时就报了错。Windows 似乎没有修复这个问题,或者可能是他们并没有认为这是一个问题,只好修改 zsh 的行为 —— 不去修改后台进程的 nice 值 —— 来规避这个报错信息了,方法是在 .zshrc 里添加如下内容:

case $(uname -a) in
   *Microsoft*) unsetopt BG_NICE ;;
esac

做了一点微小的工作,差不多能舒服地用了。之后一顿操作,安装 nvmgit clone 过来 vim、tmux 的 dotfiles 配置文件,原来 Ubuntu 系统的 ssh 公钥私钥也搬过来……好了。