Shell/CLI

⬅︎ 返回上层

TOC

其他

  • terminals-are-sexy: A curated list of Terminal frameworks, plugins & resources for CLI lovers.
  • https://command-not-found.com/ : 如果找不到命令,可以快速搜索到对应的安装方式。
    • commando: 封装了各种命令的容器镜像
  • hr: 终端分隔符
  • cloc: 代码行统计
  • ttyd: 将终端程序映射成 Web 服务。包括 shell 本身也可以封装成 Web 服务。
    • wetty: nodejs 实现的
    • shell2http: 不同点在于它把程序映射到 uri 上。
    • gotty: go 实现的。无人维护。
  • taskbook: 命令行 Todo List Manager
  • tio: 连接 TTY 的工具。
  • catimg: 在终端里打印图片,打印出的都是像素风格的。
  • hhighlighter: 用不同颜色高亮多个匹配字符串
  • fzf: 模糊筛选/搜索任意列表
  • atuin: 使用 SQLite 数据库存储 shell 命令历史。可以通过 Atuin 服务器同步记录,也可单机本地离线使用。适合经常开多窗口的用户。
  • cash: For windows 用户。用 nodejs 写的程序,模拟一些 linux 命令
  • specsheet: 声明式检查
  • pv: 显示 linux 管道数据传输速度
  • progress: 显示 cp, mv, dd 等命令的进度条
  • noti: 进程完成后,触发系统通知。
  • nushell: 超级酷的 Shell
  • fig: 非常酷的补全工具。支持 MacOS/Linux/Windows。
  • basher: bash 包管理器
  • dotbot: dotfile 管理器
  • bash: 注意升级到最新版本的 bash
  • bash-completion: bash 命令补全
  • bash-it: Bash 脚本管理框架
  • dotbot: dotfile 管理框架
  • PathPicker: 「待评价」多条记录选择器。不是很好用
  • starship: 漂亮且快速,功能丰富且支持自定义的 prompt。支持很多种 shell。rust 实现的。
    • a-bash-prompt: 备选方案。bash 专用的 prompt。纯 bash 实现的。
    • pure: zsh 专用的 prompt
  • ble.sh: 让 bash 也拥有 zsh 那样的语法高亮、自动补全等功能。超强!
  • bash-preexec: preexec and precmd hook functions for Bash in the style of Zsh.
  • direnv: 根据当前目录自动执行命令,比如设置一些环境变量什么的,切出目录环境变量会自动变回去
  • pueue: 将任意 shell 命令托管到后台队列里执行
  • vhs: 声明式制作命令行演示 GIF 动图
  • browsh: 运行在终端的网页浏览器
  • carbonyl: 在终端运行 Chromium。
  • glow: markdown 终端阅读工具
  • theme.sh: shell 配色设置,动态预览
  • lnav: 日志文件浏览器

Shell Script Development

配色

TUI

  • gum: 超酷的工具
  • fzf: 模糊筛选/搜索任意列表
  • bat: better cat。自动代码着色,自带分页器,显示代码行,支持 diff,自动标记 git 变动,可显示不可见符号。
  • aalib: 图片、视频转 ASCII art

Commands in Docker

  • docker pull pygmy/pgcli https://hub.docker.com/r/pygmy/pgcli
  • docker pull adoyle/mycli https://hub.docker.com/r/adoyle/mycli
  • docker run -d --name ariang -p 6080:80 leonismoe/ariang https://hub.docker.com/r/leonismoe/ariang
  • docker run -ti --rm -v ${HOME}:/root -v $(pwd):/git alpine/git <git_command> https://hub.docker.com/r/alpine/git
  • https://hub.docker.com/r/jlesage/firefox
  • https://hub.docker.com/_/irssi
  • commando: 封装了各种命令的容器镜像

Builtin Commands

系统自带且好用的命令

  • https://wangchujiang.com/linux-command/ : Linux 命令解释搜索工具
  • sar: linux 命令,查看系统状态
  • stat: 查看文件状态,比 ls 更详细,并且能指定输出哪些状态
  • file: 查看文件类型。详见
  • md5: 计算 md5。详见
    • cksum: crc32 算法
    • shasum: sha1 算法
  • 编辑:
    • ed vi vim nano
  • 阅读:
    • cat more less
  • realpath: 获取文件的真实绝对路径。因为 Mac 系统没有 realpath,可以用这个补上。

Builtin Command Alternatives

比系统自带命令更好的替代品。

当存在与系统自带命令同名的 alias 或者 function 时,比如 alias cat=ccat,可以使用 \cat 或者 command cat 调用原命令。 详见这篇文章: https://stackoverflow.com/a/16506263/4622308

  • modern-unix
  • better cd
    • z.lua: 路径跳转。支持多级模糊匹配,交互式搜索等功能。lua 实现。
    • zoxide: 备选方案,rust 实现的。
    • broot: 展示树形目录,并且可以直接 cd。
    • nnn 也可以做到,不过需要加载这个脚本
    • ranger 也可以做到。
  • better ls
    • eza: exa 的继任者
    • lsd: 备选方案
  • better rm
    • trash: 不直接删除文件而是移到回收站。建议 alias rm='trash'
  • better cat
    • bat: 自动代码着色,自带分页器,显示代码行,支持 diff,自动标记 git 变动,可显示不可见符号。
  • better tail
  • better systemctl
    • sysz: systemctl + fzf
  • better awk and cut
  • better sed
    • sd: 支持替换换行符(sed 的痛点)
  • better watch
    • entr: 监听文件变化,执行命令

文件管理器

文件重命名

  • massren: 用编辑器批量重命名文件。非常好用!
  • rename: 用命令行批量重命名文件。brew install rename
  • nnn 的 r 快捷键也可以批量重命名

文件查找

  • better find
    • fd: 搜索文件名
  • better grep
    • ripgrep: 模糊搜索文件内容,速度很快

文件大小

  • better du
    • dust: rust 实现
    • ncdu: 递归扫描整个文件夹空间占用,交互式。zig 实现
    • dutree: du 的树形结构展示版本。rust 实现
  • better df
    • duf: Go 实现

进程管理

  • hotel: 本地进程管理服务
  • better ps
  • better top and htop
    • btop: 用户体验很不错的 top 工具
    • atop
    • bottom: 跨平台。Rust 实现。可缩放历史曲线,但不支持水平滚动。
    • glances: 支持网页访问。Python 实现。
    • sampler: 用 YAML 配置的终端面板。可执行 shell 命令,并且可视化输出。
  • better kill
    • thefuck: 命令 typo 纠错
    • fkill-cli: 灵活的删进程命令,例如 fkill 1337 safari :8080,如果不加参数,则是交互式命令。

ssh

  • Mosh: 自动重连的 ssh
  • sshpass: 通过编程方式在 ssh 时输入用户名和密码。不安全,勿用在生产环境。

终端窗口管理