Hacker News 中文摘要

RSS订阅

我经常使用的自写脚本 -- Scripts I wrote that I use all the time

文章摘要

作者分享了自己十多年来积累的实用shell脚本,重点介绍了几个常用的剪贴板工具脚本:copypasta用于简化系统剪贴板操作,pastas可实时监控剪贴板内容变化,cpwd则用于快速复制当前工作目录路径。这些脚本极大提升了日常工作效率。

文章总结

我日常使用的实用脚本合集

维护我的dotfiles超过十年的过程中,我编写了许多小型shell脚本。以下是我个人最喜爱的一些脚本分类介绍。

剪贴板工具

  • copy/pasta:封装系统剪贴板命令的简易包装器,支持macOS的pbcopy和Linux的xclip,使用频率极高
  • pastas:实时监控剪贴板变化并输出内容,每周使用约一次
  • cpwd:将当前工作目录复制到剪贴板(相当于pwd | copy),每天使用约一次

文件管理

  • mkcd:创建目录并立即进入,几乎每次创建目录时使用
  • tempe:快速进入临时目录作为沙盒环境,避免手动清理
  • trash:将文件移至回收站而非直接删除,使用频率高于rm命令
  • mksh:快速创建可执行的shell脚本模板,每几天使用一次

网络相关

  • serveit:在当前目录启动本地静态文件服务器,每周使用几次
  • getsong/getpod:通过yt-dlp下载音频内容(音乐/播客),每周使用几次
  • getsubs:下载视频英文字幕,每几天使用一次
  • wifi:控制WiFi开关(最常用toggle选项),每月使用约一次
  • url:解析URL各部分信息,用于处理跟踪链接等场景

文本处理

  • line:提取指定行号内容,类似head/tail的补充
  • scratch:打开临时Vim缓冲区处理快速文本任务,每天使用
  • straightquote:将"智能引号"转换为"直引号",每周至少使用一次
  • markdownquote:为文本添加Markdown引用符号
  • nato:将字母转换为北约音标单词,用于电话报读场景

开发工具

  • REPL启动器:包括iclj(Clojure)、ijs(JavaScript)、iphp(PHP)等各语言REPL
  • jsonformat:美化JSON输出
  • httpstatus:查询HTTP状态码说明,每月使用几次

系统工具

  • theme:一键切换系统明暗主题(包括终端/Vim等),每天使用
  • sleepybear:跨平台系统休眠命令
  • ds-destroy:递归删除.DS_Store文件

特色工具

  • boop:根据上条命令结果播放成功/失败音效
  • timer:带通知的计时器,配合bb命令后台运行
  • ocr:图片文字识别(目前仅支持macOS)
  • tuivid:在终端中播放视频(虽然几乎不用但很有趣)

这些脚本大多源于日常工作中的实际需求,通过自动化重复操作显著提高了效率。作者建议读者也可以尝试创建适合自己的实用脚本,并欢迎通过联系方式分享有趣的脚本创意。

(注:本文保留了原博客的主要工具介绍和典型使用场景,删减了部分代码示例和次要细节,使内容更加紧凑易读。)

评论总结

总结评论内容:

  1. 对脚本实用性的肯定
  • 多位用户认为这些脚本非常实用(评论1,3,4) "Looks very useful!"(评论1) "It's been a while since I haven't read something as useful!"(评论3)
  1. 对标准工具的讨论
  • 部分用户建议使用sed等标准工具替代复杂脚本(评论2,8,12) "sed can print an arbitrary line from a file"(评论2) "I like to learn and use the standard utilities for most of this"(评论8)
  1. 开发者工作流演变
  • 有用户分享从新手到资深开发者对脚本态度的变化(评论6) "When I was a fresh engineer...Now, as a more tenured engineer..."(评论6)
  1. 个性化脚本分享
  • 多位用户分享自己的实用脚本(评论5,7,11,14,19) "I have a bash script similar to the one listed 'removeexif'"(评论7) "My favourite alias that I use all the time is this..."(评论19)
  1. 对脚本命名的建议
  • 有用户建议在自定义脚本名前添加用户名前缀(评论10) "I prepend my custom aliases or scripts with my user name"(评论10)
  1. 对工具选择的讨论
  • 关于是否应该优先使用系统自带工具的讨论(评论12,15) "Any reason to not simply use uuidgen"(评论12) "You can configure your shell to notify the terminal of directory changes"(评论15)
  1. 对开发效率的看法
  • 有用户支持定制化工具提升效率(评论13,14) "It's okay -- even good -- for the tools to bend to the user"(评论13) "I don't think it's premature optimization because I kept getting faster at it"(评论14)