文章摘要
作者分享了自己十多年来积累的实用shell脚本,重点介绍了几个常用的剪贴板工具脚本:copy和pasta用于简化系统剪贴板操作,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,3,4) "Looks very useful!"(评论1) "It's been a while since I haven't read something as useful!"(评论3)
- 对标准工具的讨论
- 部分用户建议使用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)
- 开发者工作流演变
- 有用户分享从新手到资深开发者对脚本态度的变化(评论6) "When I was a fresh engineer...Now, as a more tenured engineer..."(评论6)
- 个性化脚本分享
- 多位用户分享自己的实用脚本(评论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)
- 对脚本命名的建议
- 有用户建议在自定义脚本名前添加用户名前缀(评论10) "I prepend my custom aliases or scripts with my user name"(评论10)
- 对工具选择的讨论
- 关于是否应该优先使用系统自带工具的讨论(评论12,15)
"Any reason to not simply use
uuidgen"(评论12) "You can configure your shell to notify the terminal of directory changes"(评论15)
- 对开发效率的看法
- 有用户支持定制化工具提升效率(评论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)