目录
- ZSH -> NuShell
- cat -> bat
- pip -> uv
- grep -> ripgrep
- htop -> zenith
- cd -> zoxide
- ls -> eza
- fswatch -> watchexec
- Ranger -> yazi
- du -> dust
- [tmux - zellij] 待续
- [LaTeX -> typst] 待续
- [Pylint -> Ruff] 待续
- [xxd -> hexyl] 待续
- [find -> fd] 待续
- [ps -> procs] 待续
- [tldr -> tealdeer] 待续
- [Terminal -> Alacritty] 待续
NuShell:高效的现代命令行工具
NuShell 是一款革命性的命令行工具,旨在提供比传统 Shell,如 zsh,更先进的用户体验。它通过结合现代编程语言的优势和 Shell 的灵活性,为用户带来了前所未有的效率和便利性。
NuShell 的优点
- 结构化数据处理:NuShell 以独特的方式处理数据,使得对复杂数据的查询和管理变得简单直观。
- 跨平台支持:无论是在 macOS、Linux 还是 Windows 上,NuShell 提供一致的体验。
- 现代编程特性:支持丰富的数据类型,使得脚本编写更加强大且易于维护。
- 友好的错误信息:NuShell 设计了更易于理解的错误提示,帮助用户快速定位和解决问题。
安装和配置 NuShell
在 macOS 上安装 NuShell:
brew install nushell
设置 NuShell 为默认 Shell:
echo $(which nu) | sudo tee -a /etc/shells && chsh -s $(which nu)
这两步操作将 NuShell 安装到您的系统并设置为默认的命令行环境。
使用 NuShell
NuShell 的使用与传统 Shell 类似,但提供了更丰富的功能。以下是一些基本用法示例:
- 查看和过滤数据:
ls | where size > 1mb | sort-by size
这条命令列出当前目录中大于 1MB 的文件,并按大小排序。
- 使用内置命令处理数据:
ps | where cpu > 10 | get name
列出 CPU 使用率超过 10% 的进程名称。
评价 NuShell
通过结构化数据和强大的内置命令,NuShell 显著提高了命令行操作的效率。不仅如此,它的跨平台特性和友好的错误信息使得从其他 Shell 迁移到 NuShell 成为一种轻松愉快的体验。
NuShell 的设计理念和功能使其成为现代开发者工具箱中的必备工具,无论是数据处理、系统监控还是日常任务自动化,NuShell 都能提供优秀的支持。
bat:不仅仅是 cat 的 Rust 替代品
bat 是一个现代的命令行工具,用 Rust 编写,旨在提供比传统的 cat 更多的功能,包括语法高亮、Git 集成、不可打印字符的可视化、自动分页,以及智能输出。它兼容 cat 的大部分功能,并增加了许多提高生产力的特性。
bat 的优点
- 语法高亮:对于多数编程和标记语言自动提供语法高亮,使代码更易读。
- Git 集成:自动显示 git 更改记录,方便跟踪代码修改。
- 不可打印字符可视化:可以显示文件中的不可打印字符,便于调试。
- 自动分页:当输出内容超出屏幕时,自动分页显示,避免信息丢失。
- 智能输出:当通过管道使用或非交互环境下,自动调整为纯文本输出,保证与其他工具的兼容性。
安装配置 bat
在 macOS 上,使用 Homebrew 安装 bat 是非常简单的:
brew install bat
为了让 bat 替代 cat,您可以在 shell 配置文件中添加一个别名:
alias cat='bat --paging=never'
这样,每次输入 cat 时,实际上都是在使用 bat,但不启用分页功能。
使用 bat
- 查看文件内容,带有语法高亮和 Git 集成:
bat your_file.ext
- 显示不可打印字符:
bat -A your_file.ext
- 默认情况下,
bat会自动分页。如果你希望禁用分页功能(例如,为了替代cat),可以使用之前提到的别名,或者直接在命令中指定:
bat --paging=never your_file.ext
评价 bat
通过引入语法高亮和 Git 集成等现代特性,bat 大幅提升了查看源代码和文本文件的体验。它的自动分页和智能输出特性,更使得在长文本或代码文件的浏览成为一种享受,而不是挑战。无论是对于开发者还是普通用户,bat 都是提升命令行工作效率的利器。
uv:Rust 加速的 Python 包管理工具
uv 是一个用 Rust 编写的 Python 包安装程序和解析器,旨在作为 pip 和 pip-tools 的高速替代品。它结合了现代技术的优势,提供了一个更快、更高效、并且兼容性强的包管理体验。
uv 的优点
- 无缝替换:uv 设计为 pip、pip-tools 和 virtualenv 命令的直接替代品,无需改变现有工作流程。
- 极速性能:比 pip 和 pip-tools 快 10-100 倍,大幅缩短包安装和管理的时间。
- 磁盘空间高效:拥有全局缓存用于依赖去重,减少不必要的磁盘空间占用。
- 跨平台支持:兼容 macOS、Linux 和 Windows,满足不同操作系统用户的需求。
- 无需 Rust 或 Python 环境:uv 可以作为静态二进制文件安装,安装方式灵活多样。
- 高级功能支持:包括依赖版本覆盖、替代解析策略等高级功能。
- 友好的错误提示:提供最佳的错误信息和冲突跟踪解析器,帮助用户轻松定位问题。
安装配置 uv
在 macOS 上安装 uv 非常简单,只需一个命令:
brew install uv
这条命令通过 Homebrew 安装 uv,使其立即可用。
由于 uv 被设计为 pip 的直接替代品,因此大部分情况下无需额外配置即可使用。对于需要特殊配置的场景,uv 文档提供了详尽的指导。
使用 uv
使用 uv 来安装 Python 包,体验与使用 pip 类似,但速度更快:
uv install requests
查看已安装的包列表:
uv list
创建虚拟环境
使用 uv 创建一个新的虚拟环境非常简单:
uv venv # 在当前目录下创建 .venv 虚拟环境
激活虚拟环境
激活您创建的虚拟环境:source .venv/bin/activate
安装依赖
安装依赖到虚拟环境中,uv 提供了与 pip 类似的命令行界面:
uv pip install flask # 安装 Flask
uv pip install -r requirements.txt # 从 requirements.txt 文件安装
uv pip install -e . # 以可编辑模式安装当前项目
uv pip install "package @ ." # 从磁盘安装当前项目
uv pip install "flask[dotenv]" # 安装 Flask 并包含 "dotenv" 扩展
生成锁定的依赖集
生成一组锁定的依赖,并输出到 requirements.txt:
uv pip compile requirements.in -o requirements.txt # 从 requirements.in 生成
uv pip compile pyproject.toml -o requirements.txt # 从 pyproject.toml 生成
uv pip compile setup.py -o requirements.txt # 从 setup.py 生成
echo flask | uv pip compile - -o requirements.txt # 从 stdin 读取并生成
uv pip freeze | uv pip compile - -o requirements.txt # 锁定当前环境的依赖
同步虚拟环境
将一组锁定的依赖与虚拟环境同步:
uv pip sync requirements.txt # 从 requirements.txt 文件同步
UV 的 pip-install 和 pip-compile 命令支持许多与现有工具相同的命令行参数,包括 -r requirements.txt、-c constraints.txt、-e .(用于可编辑安装)、--index-url 等,提供了一个既熟悉又高效的包管理体验。
评价 uv
uv 提供了一个高效、快速且用户友好的 Python 包管理解决方案。它不仅显著提升了包安装速度,还通过全局缓存和优化的错误提示等特性,改善了开发者的工作效率和体验。无论是新项目的开发还是现有项目的维护,uv 都能为 Python 社区带来显著的优势。
Ripgrep:高效的代码搜索工具
Ripgrep 是一个用 Rust 编写的命令行工具,旨在提供比传统的 grep 更快、更强大的搜索能力。它结合了现代技术的优势,为用户带来了前所未有的搜索体验。
Ripgrep 的优点
- 递归搜索:Ripgrep 默认递归搜索当前目录,无需额外参数。
- 自动过滤:自动根据
.gitignore规则过滤文件,提高搜索效率。 - 语法高亮:搜索结果带有语法高亮,使得查找结果一目了然。
- Git 集成:能显示 git 更改记录,方便追踪代码修改。
- 不可打印字符可视化:通过
-A或--show-all参数可视化显示文件中的不可打印字符。 - 自动分页:当输出内容超过屏幕时,自动分页显示。
- 智能输出:在设置了分页器选项的同时支持管道输出,适应不同的使用场景。
- 跨平台支持:支持 Windows、macOS 和 Linux,满足不同操作系统用户的需求。
安装配置 Ripgrep
在 macOS 上安装 Ripgrep 十分简单,只需一个命令:
brew install ripgrep
这条命令通过 Homebrew 安装 Ripgrep,使其立即可用。
Ripgrep 的默认配置已经非常强大,大多数情况下你可以直接使用。如果需要对其进行配置,可以通过编辑 .ripgreprc 文件来实现,该文件通常位于用户的家目录下。
使用 Ripgrep
进行基本搜索:
rg pattern
在特定文件中搜索:
rg pattern README.md
使用正则表达式进行搜索:
rg 'pattern\w+'
评价 Ripgrep
Ripgrep 通过其快速的搜索速度、直观的语法高亮和强大的 Git 集成,极大地提升了开发者的搜索效率。自动过滤和不可打印字符的可视化功能使得 Ripgrep 成为处理复杂搜索任务时的理想选择。其跨平台支持和智能输出功能更是让 Ripgrep 成为了现代开发者工具箱中不可或缺的一部分。
Zenith:现代化的系统监控工具
Zenith 是一个现代化的命令行系统监控工具,它通过提供详细的资源使用情况和性能指标来替代经典的 htop。它结合了性能分析和监控,使得用户能够实时观察到系统的健康状况和性能瓶颈。
zenith 的优点
- 直观的界面:Zenith 提供了一个图形化的终端界面,显示CPU、内存、磁盘和网络使用情况,以及进程列表。
- GPU 监控:与 htop 不同,Zenith 还支持 GPU 使用率和温度的监控,对于使用 GPU 进行计算的用户来说非常有用。
- 历史数据:Zenith 能够跟踪并显示系统性能的历史数据,帮助用户分析过去的性能问题。
- 响应式布局:界面布局会根据终端窗口的大小自动调整,保持信息的清晰可读。
安装和配置 zenith
安装 Zenith 非常简单,对于 macOS 用户,可以通过 Homebrew 安装:
brew install zenith
Zenith 无需复杂的配置即可使用。安装后直接运行 zenith 命令即可启动。
使用 zenith
启动 Zenith 很简单,只需要在终端中输入:
zenith
默认情况下,Zenith 会展示所有核心的 CPU 使用率、内存使用情况、磁盘 IO 和网络 IO。您可以使用键盘上的方向键来浏览进程列表,或者使用 Tab 键在不同的监控面板之间切换。
评价 zenith
Zenith 以其现代化的界面和丰富的功能集,在命令行系统监控工具中脱颖而出。它的 GPU 监控功能尤其适合需要对 GPU 资源进行实时监控的用户。虽然它可能不像 htop 那样轻量级,但其提供的详细性能分析和历史数据追踪功能,使其成为高级用户和系统管理员分析和优化系统性能的有力工具。
Zoxide:一个更聪明的目录跳转工具
zoxide 是一个命令行工具,旨在提升您的目录导航效率。它通过学习您的使用习惯,使您能够快速跳转到经常访问的目录。
zoxide 的优点
- 智能跳转:zoxide 学习您最常访问的目录,并允许您快速跳转到这些目录,而无需输入完整的路径。
- 跨 Shell 兼容性:支持所有主要的 Shell,如 Bash、Zsh、Fish 和 NuShell,确保无论您使用哪种 Shell 都能获得一致的体验。
- 简化的命令:zoxide 通过简单的命令
z替代了传统的cd命令,进一步简化了目录导航。 - 无需外部依赖:作为一个静态二进制文件,zoxide 可以轻松安装在任何系统上,无需额外的依赖。
安装配置 zoxide
在 macOS 上安装 zoxide 十分简单,只需一个命令:
brew install zoxide
根据您使用的 Shell,配置 zoxide 以使其生效。
Nushell
- 将下列命令添加到您的 env 文件末尾(通过在 Nushell 中运行
$nu.env-path找到它):
zoxide init nushell | save -f ~/.zoxide.nu
- 现在,将以下内容添加到您的配置文件末尾(通过在 Nushell 中运行
$nu.config-path找到它):
source ~/.zoxide.nu
请注意,zoxide 仅支持 Nushell v0.89.0 及以上版本。
Zsh
- 将以下内容添加到您的配置文件末尾(通常是
~/.zshrc):
eval "$(zoxide init zsh)"
为了使自动补全生效,上述行必须在调用 compinit 之后添加。您可能需要通过运行 rm ~/.zcompdump*; compinit 来重建自动补全缓存。
使用 zoxide
使用 zoxide 非常简单,只需要使用 z 命令加上部分目录名即可快速跳转:
z project
如果 project 是您经常访问的目录,zoxide 会将您直接导航到该目录。
评价 zoxide
zoxide 通过提供一个智能、快速且易于使用的目录跳转解决方案,极大地提升了命令行的工作效率。它的跨 Shell 兼容性和简化的命令使得从传统的 cd 命令过渡变得无缝且自然。zoxide 是提高命令行导航速度的理想工具,尤其适合经常在多个项目之间跳转的开发者和系统管理员。
eza:ls 的现代化替代品
eza 是一个现代化的文件列表命令行程序,用 Rust 编写,旨在替代 Unix 和 Linux 操作系统附带的经典 ls 命令。它提供了更多的特性和更好的默认值,使用颜色区分文件类型和元数据,了解符号链接、扩展属性和 Git 状态,而且它小巧、快速,仅为一个单一的二进制文件。
通过有意识地做出不同的决策,eza 试图成为一个功能更全面、更用户友好的 ls 版本。
eza 的优点
- 修复了 exa 2021 引入的“网格错误”:提供了一个更稳定的显示网格。
- 超链接支持:可以将文件名显示为可点击的超链接。
- 挂载点细节:显示挂载点的详细信息。
- Selinux 上下文输出:增加了对 Selinux 上下文的支持。
- Git 仓库状态输出:直观地显示 Git 状态。
- 人类可读的相对日期:日期显示更加友好。
- 多项安全修复:提升了程序的安全性。
- 对明亮终端颜色的支持:界面更加丰富多彩。
- 大量的小型 bug 修复和更改:提升了稳定性和可用性。
安装和配置 eza
在 macOS 上,安装 eza 只需要一个简单的命令:
brew install eza
使用 eza
eza 的命令行选项与 ls 的相似,但带有一些重要的改进和扩展:
-
显示选项:
-1, --oneline:每行显示一个条目。-G, --grid:以网格形式显示条目(默认)。-l, --long:显示扩展的细节和属性。-R, --recurse:递归进入目录。-T, --tree:以树形递归进入目录。--colo[u]r:何时使用终端颜色(总是,自动,从不)。
-
过滤选项:
-a, --all:显示隐藏文件和'点'文件。-d, --list-dirs:列出目录,如同常规文件。-L, --level:限制递归的深度。
-
长视图选项(在使用
--long时可用):-b, --binary:以二进制前缀列出文件大小。-h, --header:为每列添加标题行。--git:列出每个文件的 Git 状态,如果被追踪或忽略。
eza 通过其丰富的功能集,为文件和目录的列表显示提供了一个强大而直观的界面。它的现代化特性,如超链接支持和 Git 状态输出,使得浏览和管理文件变得更加高效和愉悦。
评价 eza
eza 以其现代化的特性和改进的默认值,为命令行文件列表工具设置了新的标准。它不仅仅是 ls 的一个替代品,而是一个在功能、性能和用户体验方面都有显著提升的工具。对于那些寻求更先进的命令行文件管理工具的用户来说,eza 提供了一个值得尝试的选择。
watchexec:自动化命令执行的现代工具
watchexec 是一个简单而独立的工具,它监视一个路径,并在检测到修改时运行指定的命令。这个工具解决了软件开发中经常遇到的一个问题:反复运行相同的命令,这既枯燥又低效。
watchexec 的优点
- 简单的调用和使用:不需要复杂的命令行参数,易于理解和使用。
- 跨平台支持:在 OS X、Linux 和 Windows 上运行。
- 监控目录变化:监视当前目录及所有子目录的更改。
- 智能事件合并:对于在保存过程中使用交换/备份文件的编辑器,将多个文件系统事件合并为一个。
- 忽略文件加载:自动加载
.gitignore和.ignore文件,排除不需要监视的路径。 - 进程组管理:能够控制产生分支(fork)的程序。
- 提供变更路径:在环境变量或标准输入中提供发生变更的路径。
- 无需语言运行时:不绑定任何特定的语言或生态系统,不需要语言运行时。
- 多种附加功能:包括超链接支持、挂载点细节、Selinux 上下文输出、Git 仓库状态输出等。
安装配置 watchexec
在 macOS 上,可以通过一个简单的命令安装 watchexec:
brew install watchexec
使用 watchexec
watchexec 的用法示例广泛而多样,以下是一些常见的使用场景:
自动运行单元测试
当当前目录或子目录下的 JavaScript、CSS 和 HTML 文件发生变化时,自动运行 npm run build:
watchexec -e js,css,html npm run build
监控 Python 文件变化重启服务器
当任何 Python 文件发生变化时,调用/重启 python server.py:
watchexec -r -e py -- python server.py
排除特定目录下的文件变化
在当前目录/子目录下的任何文件变化时调用 make test,但排除 target 目录下的所有文件:
watchexec -i "target/**" make test
仅监控文件创建事件
仅当文件被创建时运行命令,例如同步当前目录到 S3 存储桶:
watchexec --fs-events create -- s3 sync . s3://my-bucket
评价 watchexec
watchexec 以其灵活性、易用性和高效性成为自动化重复命令执行的强大工具。它的跨平台支持、智能事件合并和对 .gitignore 的自动处理,使其成为开发者工作流程中不可或缺的一部分。无论是自动运行测试、重启开发服务器还是其他自动化任务,watchexec 都能大幅提高开发效率和体验。
yazi:超快的终端文件管理器
yazi 是一款基于 Rust 语言开发,支持异步 I/O 的终端文件管理器,旨在为用户提供一个速度快、功能全、易于使用的文件浏览体验。它具有可滚动预览、视觉模式批量重命名、类似 Vim 的输入和选择组件等特性,使其成为传统文件管理命令 Ranger 的现代化替代品。
yazi 的优点
- 可滚动预览:支持预览各种类型的文件,并在预览时滚动文件内容。
- 视觉模式和批量重命名:在可视模式下批量选择文件,并支持重命名。
- 类似 Vim 的操作体验:快速在输入框中编辑文件名,以及通过选择组件决定如何打开文件。
- 多标签和快速跳转:支持多标签协作,通过 fzf 和 zoxide 实现快速跳转。
- 增量查找和内容搜索:实现实时增量查找文件,并支持通过 fd 和 rg 按名称或内容搜索文件。
- 多项选择和任务管理:支持单独选择多个文件进行操作,并通过任务系统安排如复制、剪切等操作,提供实时进度报告和任务取消功能。
安装配置 yazi
在 macOS 上安装 yazi 及其依赖非常简单,只需通过 Homebrew 执行以下命令:
brew install yazi ffmpegthumbnailer unar jq poppler fd ripgrep fzf zoxide
brew tap homebrew/cask-fonts && brew install --cask font-symbols-only-nerd-font
启动 yazi:
yazi
按 q 退出,按 ~ 打开帮助菜单。
使用 yazi
yazi 提供了丰富的键绑定和功能,以提升文件管理效率:
- 使用箭头键或
h,j,k,l进行导航。 - 使用
Space切换选中的文件/目录,v进入视觉模式进行批量选择。 o打开选中的文件,d将文件移动到垃圾箱,r重命名文件或目录。- 使用
/进行增量查找,s和S分别通过 fd 和 rg 按名称或内容搜索文件。 - 对文件/目录进行排序,例如
,+m按修改时间排序。
评价 yazi
yazi 以其超快的速度和丰富的功能集,在终端文件管理领域树立了新的标准。其现代化的特性,如可滚动预览、批量重命名、快速跳转等,极大地提升了文件管理的便利性和效率。无论是日常文件浏览还是复杂的文件操作,yazi 都能提供流畅和高效的体验,是一个值得尝试的终端文件管理工具。
dust:du 的现代化替代品
dust 是一个用 Rust 编写的命令行工具,旨在提供一个直观的方式来查看磁盘空间的使用情况。它结合了 du 命令的功能和 Rust 的性能,使其成为 du 的现代化替代品。
dust 的优点
- 直观的输出:dust 旨在提供一个即时的概览,显示哪些目录正在使用磁盘空间,而无需使用
sort或head命令。 - 智能递归:dust 会智能地递归下到文件树中找到更大的目录或文件,列出占用空间最大的一些子目录或文件,并使用颜色加以区分。
- 颜色区分:不同颜色的条形图表示树层次结构和磁盘使用情况的组合,灰色阴影用于指示子文件夹属于哪个父文件夹。
- 权限提示最小化:dust 会最大限度地减少“没有权限”消息的打印。
安装配置 dust
在 macOS 上安装 dust,只需要执行以下命令:
brew install dust
使用 dust
dust 的使用非常简单,以下是一些基本用法:
- 直接运行
dust以查看当前目录及其子目录的磁盘使用情况。 - 使用
dust <dir>查看指定目录的磁盘使用情况。 dust -p显示子目录的完整路径。dust -n 30显示最大的 30 个目录而不是默认的终端高度。dust -d 3显示 3 级子目录的磁盘使用情况。dust -r反转输出顺序。
评价 dust
dust 通过其简单直观的输出和智能递归功能,在磁盘空间分析工具中树立了新的标准。它的直观界面、颜色编码和易用性使其成为了查看磁盘使用情况的理想工具。对于那些寻找 du 现代化替代品的用户来说,dust 提供了一个功能强大且用户友好的解决方案。