Fork me on GitHub

Shell 进阶指南

Awesome Shell Awesome

这是一份非常棒的命令行框架、工具包、指南、以及小玩意儿组织清单。由 awesome-php 获得灵感。该 awesome 收集在 Unix-Shell.ZEEF.com 上也可用。

命令行效率

使你的终端体验更有效率的搜索、书签、多路复用、以及其它工具。

  • ag - 在层级目录中超快的搜索字符串
  • aliases - 针对 bash 的上下文动态组织别名
  • aliasme - 用来快速更改目录的 alias 辅助程序
  • autoenv - 基于目录的环境
  • autojump - 自带学习功能的 cd 命令,从命令行轻易地导航目录
  • bashhub - :cloud: 在云中的 bash 历史,已索引且可搜索。
  • bashmarks - 适用于 shell 的目录书签
  • bd - 迅速回到父目录
  • boilr - 从 boilerplate 模板创建项目的超快命令行工具
  • boom - 在命令行中存储链接及片断
  • borg - 基于终端的 bash 命令搜索引擎
  • byobu - 基于文本的窗口管理器及终端多路复用器
  • commacd - 在 Bash 中更快速的移动方式
  • desk - 适用于 shell 的轻量级工作区管理器
  • direnv - 针对 shell 的环境切换工具(利用 autoenv 比较)
  • enhancd - :rocket: 具有交互式过滤功能的下一代 cd 命令
  • fasd - 命令行效率提升器,提供快速访问文件及目录
  • foxy - 适合 Firefox 及 Surf 浏览器的无格式文本书签
  • fz - z 的无缝模糊补全
  • fzf - 命令行下的模糊搜索器
  • hhighlighter - 在命令输出中给单词着色
  • hr - 适用于终端的 <hr />
  • hstr - Bash 历史建议框
  • k - k 是一个使目录列表更可读的 Zsh 脚本,它增添了 Git 状态、文件颜色、以及腐朽的日期
  • k alias - 获得用于单行的酷 alias
  • marker - 将你的 shell 命令加到书签
  • parallel - 以并行化方式从标准输入构造并执行 shell 命令行
  • pathpicker - 允许将 grep、搜索、git 等的输出结果作为输入,并提供友好的选择界面,以便打开或作为命令的参数
  • percol - 为传统的 UNIX shell 管道添加交互式的过滤
  • qfc - 针对 Bash 和 Zsh 的文件补全 widget
  • SHML - 适用于终端的样式框架 (Shell 标记语言)
  • slugify - 将文件名及目录转换为 web 友好的格式
  • sman - :bug: 命令行下的片断管理器
  • spark - ▁▂▃▅▂▇ 在你的 shell 中
  • Shark - ▁▂▃▅ Sparkline 生成器
  • sheet - 用于命令行的文本片断
  • spot - 微型的文件搜索工具
  • snips - 管理代码片断的命令行工具
  • sshfs - 通过 SSH 挂载远程文件系统的工具
  • sshpass - 通过命令行传递ssh密码,无需再次输入,适合用于脚本之中
  • autossh - 自动重启ssh通道和会话
  • mosh - 第一个实现SSP的应用,MIT的博士项目,使得C/S之间可以保持链接持续,即使断开还能恢复之前的状态
  • sshrc - SSH 时带上你的 .bashrc、.vimrc 等
  • sudocabulary - 从终端学习英语词汇
  • thefuck - 通过使用容易记住的命令修正常见的 shell 错误
  • tmux - 很棒的终端复用器
  • up - 按名称或计数升序排列目录,支持 bash 和 zsh
  • v - 适用于 Vim 的 z
  • wemux - 多用户使用 Tmux 变得更容易
  • z - z 是新的 j

定制

定制提示符、颜色主题等。

针对开发者

命令行开发、版本控制、以及部署。

  • bocker - 使用百行 bash 实现的 Docker
  • cloc - 统计代码行数
  • dokku - 百行 Bash 打造的 Docker 迷你 Heroku
  • getopts - 适用于 fish 的命令行解析器
  • git-extra-commands - 很多 Git 扩展工具,包括 churn、cut-branch、improved-merge 等
  • git-extras - Git 工具,包括仓库摘要、repl、更改日志人数、作者提交百分比等
  • git-open - 输入 git open 在浏览器中打开 GitHub 页面或仓库网站
  • git-semver - 用来方便的语义化版本及更改日志验证的 Git 插件
  • git-sh - 适合 Git 工作的定制 Bash 环境
  • git-up - 自动变基进来的更改代替合并,优雅!
  • hub - 更易使用 GitHub 的命令行工具
  • mr - 多仓库管理工具
  • overcommit - 完全可配置且可扩展的 Git hook 管理器
  • pre-commit - 用于管理及维护多语言 pre-commit hooks 的框架
  • repren - 命令行搜索与替换及文件重命名的瑞士军刀式工具
  • slap - 运行在 Node.js 上的基于终端的类 Sublime 文本编辑器
  • shipit - 极简 SSH 部署
  • tag - 立即跳到你的公牛队比赛

系统工具

操作系统相关工具,包括系统管理、系统调试、及文件和进程管理。

  • atop - 能够报告所有进程活动的 ASCII 全屏性能监视器
  • cv - 显示 cp、rm、dd 等命令进度的 Linux 工具
  • glances - 系统监视之眼
  • goaccess - 运行于 *nix 系统终端中的实时 web 日志分析器及交互式查看器
  • histstat - 适用于 netstat 的历史
  • htop - 基于 ncurses 的交互式进程查看器,其目标是比 top 更好
  • lnav - 小型的高级日志文件查看器
  • lsp - 改进的 ls,包含无格式语言的文件说明及智能的文件分组
  • mtr - traceroute 和 ping 功能合二为一的网络诊断工具
  • ncdu - NCurses 磁盘占用统计
  • powertop - 电池/电源占用及设备状态监视命令行工具,包含调整选项
  • procdog - 轻量级的命令行控制类似服务器的长实时进程
  • quick-secure - 快速的安全并加固 UNIX/Linux 系统

下载与服务

使用 shell 脚本编写的自架、轻量级服务器与网络工具。

  • aria2 - aria2 是一款在命令行中操作的轻量级多协议、多来源、及跨平台下载工具,它支持 HTTP/HTTPS、FTP、BitTorrent 及 Metalink
  • balls - Bash on Balls,全功能的 web 平台
  • bashttpd - 使用 Bash 编写的 web 服务器
  • bitpocket - “DIY Dropbox” 或 “双向目录同步(含正确删除)”
  • Dropbox-Uploader - Dropbox Uploader 是用来从 Dropbox 上传、下载、列出或删除文件的 Bash 脚本
  • httpie - HTTPie 是一个命令行 HTTP 客户端,用户友好的 cURL 替代品
  • http-server - http-server可以启动一个轻量级的http服务
  • ngincat - 使用 netcat 的微型 Bash HTTP 服务器
  • resty - 你可以在管道中使用的小型命令行 REST 客户端
  • youtube-dl - 从 YouTube.com 及其它视频站点下载视频的小命令行程序
  • coursera-dl - 从Course公开课上下载视频

多媒体与文件格式

用于处理视频及音频文件的工具。

  • adb-export - 导出 Android 内容提供商为 CSV 格式
  • Android-Kitchen - 基于文本的 Android ROM 定制 kitchen,使用 shell 脚本并支持 Cygwin/OS X/Linux
  • Beets - 音乐库管理器及 MusicBrainz 标签工具
  • cmus - 跨平台的命令行音乐播放器
  • gifgen - 简单高质量的 GIF 编码
  • image-scraper - 包含诸多特性的酷命令行图像 scraper
  • jq - 针对 json 数据的 Sed,你可以使用它分片、过滤、映射及变换结构化数据
  • csvtookit - 使用pip install csvki安装, csv文件进行处理的强大工具
  • mplayer - 让你在 shell 中播放主流的音频及视频格式(使用 ASCII 字符)
  • nehm - 下载、设置 IDv3 标签、并添加到 iTunes 的控制台工具
  • PiCAST - PiCAST 将你的 35 刀 Raspberry Pi 变成类 Chromecast 设备
  • sejda - 命令行下的 PDF 文档处理工具(分割、合并、旋转、转换为 jpg、提取文本等)
  • xmlstarlet - 古老而强大的命令行 XML 格式化、过滤及处理工具
  • ffmpeg - 非常强大的视频处理工具
  • imagmMagick - 其强大有目共睹

应用程序

基于命令行的应用程序或从命令行访问现有服务。

  • ansiweather - 终端中的天气预报,包含 ANSI 颜色及 Unicode 符号
  • bashblog - 处理 blog 投递的 Bash 脚本
  • choosealicense-cli - 从终端选授權合約
  • facy - 命令行下的 Facebook 客户端
  • fanyi - 翻译英文为中文的命令行工具
  • geeknote - 命令行的 Evernote 客户端
  • haxor-news - 像黑客一样浏览 Hacker News
  • hn-cli - 从终端舒服的浏览 Hacker News
  • iponmap - 利用 IP 地址在世界地图上绘点
  • isitup - 检查一个网站是否正常上线
  • jrnl - 使用无格式文本文件存储日记的简单命令行程序
  • ledger - 命令行记账
  • licen - 生成项目 license
  • moviemon - 有关在命令行下看电影的每样东东
  • pushblast - 当 shell 程序退出时获得 PushBullet 通知
  • pushbullet-bash - PushBullet API 的 Bash 接口
  • Reddit Terminal Viewer - 从终端浏览 Reddit
  • SAWS - 超强的 AWS 命令行界面
  • taskwarrior - 一个命令行去做列表管理器
  • transfer.sh — 从 shell 快速上传并分享文件
  • vl - 针对文本文档的 URL 链接检查器
  • wego - 适用于终端的天气预报应用
  • whereami - 从命令行获得你的地理位置信息
  • fail2ban - SSH防爆破

游戏

只顾工作而不玩玩是一种糟糕的度日方式。

Shell 包管理

用于管理多个 shell 配置的工具。对于特定的 zsh 工具,参阅 Zsh 节。

  • bash-it - 社区化的 Bash 框架
  • basher - 针对 shell 脚本的包管理器
  • bpkg - JavaScript 有 npm、Ruby 有 Gems、Python 有 pip,现在 Shell 有 bpkg
  • dotfiler – 使用 Python 编写的基于 Git 的 Shell dotfiles 管理器
  • fresh - 使你的 dotfiles 保持更新
  • homeshick - 使用 Bash 编写的 Git dotfile 同步器
  • vcsh - 基于 Git 的配置管理器
  • shundle - 适用于 shell 脚本的插件管理器

Shell 脚本开发

用于编写、改进、及管理 Bash 或其它 shell 脚本的工具。

  • ansi - 使用纯 Bash 实现的 ANSI 转义码,包括更改文本颜色、定位光标等等
  • assert.sh - Bash 单元测试框架
  • bashful - 简化编写 Bash 脚本的库收集
  • bashmanager - 用来创建命令行工具的微型 Bash 框架
  • bats - Bash 自动化测试系统
  • Fishtape - 适用于 fish 的 TAP 产生器及测试工具
  • composure - 撰写、文档、版本、及组织你的 shell 函数
  • dispatch - 使用 50 行可移植 shell 脚本写成的命令行参数解析器
  • is.sh - 内置 test 命令的替代品,使 “if” 语句更漂亮
  • mo - 使用纯 Bash 实现的 Mustache 模板
  • optparse - 针对 getopts 的 BASH wrapper,用于简单的命令行参数
  • rerun - 用来管理保留脚本的模块化 shell 自动化框架
  • semver_bash - 使用 Bash 实现的语义化版本
  • [sh-semver] (https://github.com/qzb/sh-semver) - 适用于 bash 的 Semver 工具,匹配指定规则来查找版本
  • shellcheck - 针对 shell 脚本的静态化分析工具
  • shellfire - 命名空间仓库,可写 shell (bash、sh 及 dash) 函数库
  • shpec - shell 测试框架
  • sub - 以美味之道来管理程序
  • ts - shell 测试脚本
  • shunit2 - 适用于 Bash 脚本的单元测试框架(具有 JUnit/PyUnit 风味)
  • rebash - 脚本库/框架,包含 imports、exceptions、doc-tests 等功能

指南

其它 Awesome 清单

其它很棒的 awesome 清单可在 awesome-awesomeawesome-awesomeness 找到。

Insist on the original technology sharing, your support will encourage me to continue to create!