笔记
0工具
0此页用于记录用户反馈问题后的每一次改进
关于
“写笔记”支持四种格式——Word 文档、Excel 表格、Markdown、纯文本,起稿或二次编辑时都能随时切换,同一篇笔记想用哪种形态来记,都由你说了算。
md、txt、csv、json 这类纯文本则原样载入,不做多余加工。拿一张现成的表倒进来、改几笔、再导出去,等于白用一台免费的格式转换器。
要带走就在右上角点“下载”,可导出 PDF、Word、Markdown、Excel、TXT 等格式;列表卡片“⋯”菜单里,也有同样的下载入口。
在“工具”页点“+ 上传工具”即可发布:填好名称与链接,再用 Markdown 把使用方法写清楚——能解决什么问题、怎么装、怎么用,比堆介绍实在。
要分发安装包就一并上传压缩包(ZIP、RAR、7Z、TAR.GZ,最大 35MB),别人在详情页一键下载;只放链接不带附件也可以。
工具按大家的收藏热度排序,好用的自然会被顶上来。发布后可在详情页或卡片菜单里编辑、下架。
写笔记时勾上“隐藏”,这篇就只存在于你自己的账号里:不进列表、不进搜索、不上首页精选,也不会出现在任何公开的页面,链接发给别人同样打不开。
适合放密码、草稿、日记这类只给自己看的内容;想公开,去“发布”打开它,把“隐藏”的勾去掉再保存,之后编辑会默认保持原状态,不会悄悄变回公开。
不想公开、只想临时给人看:点“分享”生成一条带密码和有效期的链接,到期自动失效,你也能随时撤销。
你的内容会同时保存在多个副本上,系统定期做备份与完整性校验,再配合异地容灾机制:就算某台机器出问题,数据也不会丢,可以长期放心存放;特别重要的资料,仍建议你另外再留一份备份。
全站跑在容器化、模块化的现代架构上,更新、部署、回滚都很快,扩展性和稳定性都按长期运营的标准来设计(Built for reliability, designed to scale)。
这个网站最早只是一个人的笔记仓库,后来慢慢长成现在的知识中枢。设计上很克制——没有广告、没有追踪、没有推荐算法,只是干干净净地存放一些东西;既然做好了,就公开出来,万一有人用得上呢。
不做大而全,不做平台梦,保持简单、保持克制、保持好奇。所有内容都由用户贡献、由用户维护:不会突然冒出付费墙,不会在角落塞广告位,也不会把你的数据卖给第三方。
产品会持续迭代,站内日志页记录着每一次改动,改了什么都有迹可循;想了解这个站是怎么一步步走到今天的,翻翻日志就能看到来龙去脉。
如果在这里看到涉嫌违规的内容,点对应卡片右侧的“举报”按钮就能提交,我们会尽快核实处理;也谢谢你花一点时间,一起把这里维护干净。
趋势
ssh config 配别名和跳板,日常少打一大半字
以前连服务器都是现场敲全量参数,ssh -p 22022 root@203.0.113.5 -i ~/.ssh/prod_key 这一串每天都打,打得我烦了才去正经配 ~/.ssh/config。配完后悔没早点配,省的不只是打字,rsync、scp、git 全都能蹭上别名。
config 的语法很简单,一个 Host 段开头配一个名字,后面缩进写参数。我现在的配置大概长这样:
Host bastion
HostName 203.0.113.5
User root
Port 22022
IdentityFile ~/.ssh/bastion_ed25519
Host web-prod
HostName 10.0.0.8
User deploy
ProxyJump bastion
IdentityFile ~/.ssh/id_ed25519
Host *.internal
HostName %h.internal.example
User admin
配完日常就是 ssh web-prod 一条,跳板机自动先连。web-prod 那台在内网 10.0.0.8,公网摸不到,ProxyJump bastion 的意思是让 ssh 先连上 bastion,再由 bastion 转发到内网目标,一条命令直达,不用先 ssh bastion 再在那边 ssh 10.0.0.8 跳来跳去。%h 这种是占位符,会替换成你敲的 Host 名,通配段批量管理同后缀的机器很好用。
ProxyJump 需要 OpenSSH 7.3 以上,老系统不一定有。老机器上就退一步用 ProxyCommand:
Host web-prod
HostName 10.0.0.8
User deploy
ProxyCommand ssh bastion -W %h:%p
-W 让 bastion 开一个透明通道转发到 %h:%p,效果跟 ProxyJump 差不多,就是每次都要另起一个 ssh 进程。现在新环境我都直接 ProxyJump,配置读起来也直观。
我踩过的一个坑是 config 文件权限太开,ssh 直接罢工:
Bad owner or permissions on /home/me/.ssh/config
ssh 对配置文件权限很较真,组和其他用户可写它就不认,怕被人塞恶意配置。修法是收紧:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/config
密钥文件的权限同理,之前把私钥从别处拷过来权限是 644,ssh 也是直接拒,报 Permissions too open,chmod 600 就好了。
配完不确定某条 Host 到底会解析成什么,用 -G 让 ssh 打印生效配置,不会真去连:
ssh -G web-prod | grep -iE 'hostname|user|port|proxyjump|identityfile'
这个我调通配符和 ProxyJump 的时候帮了大忙,能看到占位符展开后的真实值,比连不上再瞎猜强。
rsync 和 scp 也能直接用别名当主机名,同步部署目录就一句话:
rsync -avz --delete dist/ web-prod:/srv/app/
scp file web-prod:/tmp/ 同理。git 走 ssh 协议的时候也能配别名,把 GitHub 或者公司内网 git 服务器配成短 Host,clone 地址写 git clone git@mygit:org/repo.git,比记一长串 ssh:// 地址省心,还能顺便给不同 git 服务配不同的私钥,同一个公钥不用到处拷。
还有一个提升体验但容易忽略的是连接复用。设了 ControlMaster 之后,同一台机器的第二条 ssh 连接直接复用第一条的通道,不用重新握手,敲命令和 rsync 批量操作明显变快,跳板机场景尤其明显,否则每次都要在 bastion 上重新过一遍认证:
Host bastion web-prod
ControlMaster auto
ControlPath ~/.ssh/cm-%r@%h:%p
ControlPersist 600
ControlPath 是复用通道的 socket 文件路径,ControlPersist 600 表示连接闲置 10 分钟内都留着复用。这个配置唯一的副作用是偶尔某条连接卡住,socket 还占着,遇到就 ssh -O exit web-prod 主动断开,或者把 ~/.ssh/cm-* 删了重来。到现在我也没有把所有 ssh 参数都背下来,常用的就 HostName、User、Port、IdentityFile、ProxyJump 这几样,配合 -G 和 -vvv 调试,够应付绝大多数日常了。