alebcay/awesome-shell · 上手攻略

  • 仓库:alebcay/awesome-shell
  • 链接:https://github.com/alebcay/awesome-shell
  • 分类:skill
  • 作者:Jay
  • 更新:2026-07-14

一、是什么

awesome-shell 是 GitHub 上最权威的命令行工具精选列表,由 alebcay 维护,灵感来自 awesome-php。它将数百款优秀的命令行框架、工具库、指南和小玩意按类别组织起来,帮助 Shell 用户快速发现和筛选适合自己工作流的命令行利器。

截至 2026 年中,该仓库已积累约 37,000+ Stars,是命令行工具领域的标杆 Awesome 系列之一。

二、解决什么问题

在 Linux/macOS 日常使用和服务器运维中,Shell 用户经常面临:

  • 找不到趁手的工具 —— 想实现某个功能,却不知道有没有现成的命令行工具
  • 工具分散 —— 好的工具散落在论坛、博客、Twitter 等各处,缺乏一站式索引
  • 难以横向对比 —— 同一个需求有多个工具,不知道选哪个

awesome-shell 把这些问题都解决了:一份列表,分类清晰,持续更新,用爱发电。

三、快速安装

无需安装 —— 这是一个纯「索引」仓库。 直接 star/fork 或者克隆到本地作为参考手册即可:

# 克隆到本地(不常用,仅存档)
git clone https://github.com/alebcay/awesome-shell.git

# 或者直接用浏览器打开 README 浏览
# https://github.com/alebcay/awesome-shell

⚠️ 注意:这不是一个可执行的命令行工具,而是一个工具列表本身。使用其中的具体工具,需要另行安装那些工具。

四、核心用法与分类概览

awesome-shell 的内容分为以下主要板块,每个板块下列出多个具体工具:

1. 选择你的 Shell(Shell Variants)

如果你还在纠结用哪个 shell,这里列出了所有主流选择:

Shell 特点 推荐场景
bash GNU 默认,最通用 通用脚本、系统管理
zsh 插件生态丰富(Oh My Zsh) 桌面开发日常
fish 开箱即用的补全与高亮 追求开箱即用的用户
nushell 用 Rust 写的结构化 shell 喜欢数据结构化输出的用户
PowerShell 跨平台,Windows 友好 Windows/跨平台管理
xonsh Python + Shell 混写 Python 开发者
elvish 匿名函数、数据结构 喜欢函数式风格的用户

建议:如果你是 Shell 新手,从 zshfish 入手;如果追求轻量高性能,试试 nushell

2. 命令行生产力工具(Command-Line Productivity)

这里是最精华的部分,涵盖高频场景:

文件搜索与导航

# fd - 比 find 更友好的文件搜索(Rust 编写,速度极快)
fd "*.py" ./src

# fzf - 模糊查找神器(可用在文件、历史、git 分支等场景)
find . -type f | fzf

# broot - 更好的目录导航
broot

# lf / lf.sh - 终端文件管理器(类 vim 操作)
lf

# zoxide - 比 cd 更快地跳转到常用目录(记录你的习惯)
zoxide add /home/user/project
z /home/user/project   # 直接跳

# autojump - 记住你常用的目录
# 配置方法:在 .zshrc 中添加:
# source /usr/local/bin/autojump.sh
# 用法:j project  # 跳到包含 "project" 的最常用目录

命令历史与复用

# mcfly - 用机器学习提升历史搜索体验
# 安装:cargo install mcfly
mcfly search git

# hstr - Bash 历史管理(交互式选择历史命令)
hstr

# resh - 带上下文的高亮历史(Zsh/Bash)
resh

# shell-history - 可视化你的命令使用频率

剪贴板、书签与片段

# CloudClip - 跨设备剪贴板同步
CloudClip copy "hello world"

# pass - GPG 加密的密码管理器(命令行)
pass insert github/anan
pass github/anan   # 自动复制密码到剪贴板

# marker - 命令行书签
marker add deploy "ssh user@server ./deploy.sh"

# dnote - 跨设备同步的命令行笔记
dnote add "记住:curl -X POST 用 -d"
dnote list

格式化输出

# spark - 终端里画迷你趋势图
spark 1 3 5 3 7 12

# lowcharts - 低分辨率终端图形
lowcharts bar 10 30 20

# Shell Markup Language (SHML) - 终端着色框架
echo -e "${Cyan}Info${Color_Off}: starting..."

网络与搜索

# googler - Google 搜索(命令行)
googler "linux shell tips"

# ddgr - DuckDuckGo(命令行)
ddgr "best terminal tools"

# surfraw - 针对特定站点的命令行浏览器
surfraw google -t 10 "cli tools"

# rg (ripgrep) - 超快的行搜索(替代 grep)
rg "TODO" ./src --type python

性能与并发

# GNU parallel - 并行执行命令
ls *.txt | parallel -P 4 gzip {}

# await - 等待一组并行命令全部完成
await -- echo "task1" & -- echo "task2" &

# hss - 交互式批量 SSH
# 配置 hosts 后:hss                           # 交互式选择
# 或:hss -c "uptime" all-servers           # 对一组机器执行命令

3. 目录导航增强(Directory Navigation)

# enhancd - 交互式目录切换
# 在 .zshrc 中启用:export ENHANCD_FILTER=fzf:fzy:peco
# 用法:cd 或者直接输入目录名模糊匹配

# z.lua - 更快的 autojump 替代(Lua 编写)
# 在 .zshrc 中:eval "$(z.lua --init zsh)"

# autojump - 智能跳转
# 安装后添加到 .zshrc:
# [[ -s /usr/local/share/autojump/autojump.sh ]] && source /usr/local/share/autojump/autojump.sh

# bd - 快速回到父目录
bd 2   # 往上两级

# commacd - 用逗号快速在父目录间跳转
# ,,,   # 往上三层

4. Git 增强

# gitmux - 在 tmux 状态栏显示 git 状态
# 在 .tmux.conf 中:
# source-file "#{battery_color_status}" "#{battery_color_window}" # 可选
# 运行:gitmux -cfg .gitmux.yml $repo_path

# git-standup - 显示你上次 commit 到现在的工作
git-standup

# hub - GitHub 命令行增强
hub clone alebcay/awesome-shell

5. Tmux 终端复用器

# tmux - 终端分屏与会话管理(内置)
tmux new -s work    # 新建名为 work 的会话
# Ctrl+b d           # 分离当前会话
# Ctrl+b %           # 纵向分屏
# Ctrl+b "           # 横向分屏

6. 特定语言工具链

列表中还收录了大量语言专属的命令行工具:

语言 工具 用途
Python pipx 安全安装 Python CLI 工具
Node.js npx 运行 node 包
Rust cargo Rust 包管理
Go gh GitHub CLI
All tldr 简化版 man 手册(社区驱动)

五、典型适用场景

场景 1:快速发现工具

当你有明确需求("我需要一个终端书签管理器")时,直接在列表中找到对应分类,每个工具都有简短描述和 GitHub 链接,效率极高。

场景 2:探索新工具

定期浏览列表,了解业界有什么新东西。比如了解 nushellfish 等新一代 shell,或者 brootzoxide 等现代替代品。

场景 3:配置新机器

在新机器上快速部署:结合列表克隆+Shell 配置文件管理(ansible/dotfiles),可以快速还原一整套命令行工作流。

场景 4:技术调研

想做 Shell 脚本/工具相关的技术选型,直接在列表中横向对比,节省大量搜索时间。

六、坑与注意

  1. 列表质量参差不齐 —— 有些工具可能已停止维护,在采用前请检查 GitHub 最近更新时间。
  2. Shell 兼容性问题 —— 部分工具只支持 bash/zsh/fish 之一,安装前确认自己的 shell 环境。
  3. macOS 特殊注意 —— macOS 默认 bash 版本较旧(3.x),很多工具建议用 brew install 安装,或切换到 zsh。
  4. 不全是「Awesome」质量 —— 这是个巨大的合集,部分子类别不如主列表那么高门槛,请带着批判眼光看。
  5. 安全考量 —— 部分工具涉及凭证/密码管理(如 pass),请务必了解工具的安全模型再正式使用。

七、与同类对比

项目 Stars 特点 推荐
awesome-shell ~37k 覆盖最全面,Shell + 工具都有 ✅ 首选入口
awesome-cli-apps ~28k 侧重 GUI 辅助 CLI 工具 补充参考
terminals-are-sexy ~10k 聚焦终端美学与工具 视觉向补充

awesome-shell 是其中历史最悠久、覆盖面最广的一个,是「命令行工具精选」赛道的首选资源。

八、一句话推荐结论

无论你是 Shell 新手还是老手,awesome-shell 都是你探索和发现命令行利器的第一站,值得长期 star 并定期回看。


注:具体工具的版本号、安装方式请参考对应工具的官方文档;本仓库最后一次主要更新及具体 Star 数以 GitHub 实时数据为准。