常用的开源工具
主要作者
目的¶
介绍一些非常实用、能极大提升开发效率的开源软件,方便我们日常使用 Linux。
内容¶
1. tmux:会话管理魔法¶
-
前置知识:窗口与会话
简单来说,无论是使用 SSH 还是 Linux 桌面自带的命令行,你所看到的那个黑色的“框框”便是一个窗口;在窗口中,运行了一个 shell 解释器(bash,sh,zsh 等等)或者其他应用程序,每个运行的程序进程被称为一个“会话”。
Note
何为"解释器"?解释器是一个交互的,实时运行的命令环境。解释器可以使用很多语言,如 shell、powershell 和 python。
很多同学可能会认为"解释器是操作系统的一部分",这实际上是不准确的:在 Linux 中,各发行版通常都预装了一个解释器,但我们也完全可以自行安装更好的解释器。在 Windows 中,系统的确提供了一个底层解释器 cmd,但用户也可以选择使用 PowerShell、Git Bash 等其他解释器。
-
tmux 的作用
tmux(terminal multiplexer)是一个终端复用器,它允许你在一个窗口中创建和管理多个会话。这意味着你可以:
- 在同一个窗口中同时运行多个 shell 会话
- 在会话之间快速切换
- 分离会话并在稍后重新连接,即在后台运行任务
- 创建分屏布局,同时查看多个会话
-
tmux 的基本概念
tmux 有三个重要概念:
- 会话(Session):一个工作环境,包含一个或多个窗口。会话的切换只能在退出 tmux 环境的条件下,使用命令执行。
- 窗口(Window):类似于浏览器的标签页,每个窗口包含一个或多个窗格
- 窗格(Pane):窗口的分割部分,每个窗格运行一个 shell
当我们使用不带任何参数的
tmux
时,tmux 会为我们创建一个新的会话,这个会话中有一个窗口,窗口中有一个窗格。我们可以通过 tmux 会话下方的信息条查看该会话中窗口的数量和名称。
-
tmux 的基本使用
安装 tmux:
基本命令:
# 创建新会话 tmux new-session -s session_name # 列出所有会话 tmux list-sessions # 连接到指定会话 tmux attach-session -t session_name # 分离当前会话(在 tmux 内按 Ctrl+b,然后按 d) tmux detach
以下是对窗格的操作快捷键:
Ctrl+b + %
:垂直分屏Ctrl+b + "
:水平分屏Ctrl+b + 方向键
:在窗格间切换Ctrl+b + x
:关闭当前窗格Ctrl+b + !
:将当前窗格拆分为一个窗口Ctrl+b + z
:将当前窗格临时设置为全屏,再次执行此命令时将会取消全屏
以下是对窗口的操作快捷键:
Ctrl+b + c
:创建新窗口Ctrl+b + n
:切换到下一个窗口Ctrl+b + p
:切换到上一个窗口Ctrl+b + ,
:重命名窗口Ctrl+b + &
:关闭当前窗口
2. Oh My Zsh:实用的 shell 解释器框架¶
Oh My Zsh 是一个开源的、社区驱动的框架,用于管理 Zsh 配置。它提供了数百个插件和主题,让你的命令行体验更加强大和美观。
-
Oh My Zsh 的作用
Oh My Zsh 能够:
- 提供丰富的主题,美化命令行界面
- 集成大量实用插件,提升工作效率
- 简化 Zsh 配置过程
- 提供智能补全和语法高亮
-
安装和基本配置
安装 Zsh(如果尚未安装):
安装 Oh My Zsh:
设置 Zsh 为默认 shell:
-
实用插件推荐
常用插件介绍:
- git:提供 git 命令的别名和补全
- sudo:双击 ESC 键自动在命令前添加 sudo
- z:快速跳转到常访问的目录
- extract:智能解压各种格式的压缩文件
- autojump:基于历史记录的目录跳转
-
主题配置
一些受欢迎的主题:
robbyrussell
(默认)agnoster
powerlevel10k
(需要额外安装)
-
实用技巧
-
别名设置:在
~/.zshrc
中添加常用别名 -
历史命令搜索:使用
Ctrl+R
进行反向搜索 - Tab 补全:支持文件名、命令、参数的智能补全
- 目录补全:输入目录名的一部分,按 Tab 键自动补全
-
3. uv:Python 包管理利器¶
uv 是一个极快的 Python 包管理器和项目管理工具,由 Rust 编写,旨在替代或补充 pip、pipenv 等传统工具。
-
uv 的优势
uv 相比传统 Python 包管理工具有以下优势:
- 速度极快:比 pip 快 10-100 倍的安装速度
- 内存效率:占用更少的磁盘空间和内存
- 兼容性强:与 pip 和 pipenv 语法兼容
- 依赖解析:更智能的依赖冲突解决
-
安装和基本使用
安装 uv:
基本命令:
-
项目管理功能
uv 不仅是包管理器,还提供完整的项目管理功能:
4. btop:全面的系统监控¶
btop 是一个漂亮且功能丰富的系统资源监视器,用于显示处理器、内存、磁盘、网络和进程的使用情况。
-
btop 的特点
btop 提供了以下功能:
- 美观的界面:现代化的终端 UI 设计
- 实时监控:CPU、内存、磁盘、网络实时状态
- 进程管理:查看、排序、终止进程
- 可定制:支持主题和布局自定义
- 跨平台:支持 Linux、macOS、FreeBSD
-
安装 btop
-
基本使用
-
常用快捷键
q
:退出 btoph
:显示帮助↑/↓
:在进程列表中导航F5
:选择排序方式t
:切换进程树视图k
:终止选中的进程+/-
:增加/减少更新间隔
5. tldr:通俗易懂的 man¶
tldr(Too Long; Didn't Read)是一个社区维护的帮助页面集合,旨在提供比传统 man 页面更简洁、更实用的命令使用示例。
-
tldr 的优势
相比传统的 man 页面,tldr 有以下特点:
- 简洁明了:去除冗长的描述,直接展示常用用法
- 示例丰富:提供实际的使用示例而非抽象描述
- 快速查找:快速找到你需要的命令用法
- 社区维护:由全球开发者共同维护和更新
-
安装 tldr
-
基本使用
-
实用示例
# 查看 tar 命令的简洁用法 tldr tar # 输出:创建压缩包、解压文件等常用示例 # 查看 curl 命令 tldr curl # 输出:下载文件、发送 POST 请求等实用示例 # 查看 git 命令 tldr git # 输出:基本的 git 操作示例
Tip
当你忘记某个命令的具体用法时,先试试
tldr
,它通常能比man
更快地给你想要的答案。
6. better-commits:优雅的 Git 提交助手¶
better-commits 是一个交互式的 Git 提交工具,帮助开发者编写更规范、更有意义的提交信息。它遵循约定式提交(Conventional Commits)规范,让项目的提交历史更加清晰易读。
-
better-commits 的优势
better-commits 提供了以下功能:
- 交互式界面:通过友好的命令行界面引导用户输入
- 规范化提交:自动生成符合约定式提交规范的消息
- 类型选择:预设的提交类型(feat、fix、docs 等)
- 作用域管理:支持自定义和预设的变更作用域
- 破坏性变更:清晰标记不兼容的 API 变更
-
安装 better-commits
-
基本使用
-
交互式流程
运行
bc
后,工具会引导你完成以下步骤:- 选择提交类型:feat(新功能)、fix(修复)、docs(文档)等
- 输入作用域:变更影响的模块或组件(可选)
- 编写描述:简洁明了的变更描述
- 详细说明:更详细的变更内容(可选)
- 破坏性变更:是否包含不兼容变更(可选)
-
配置自定义
在项目根目录创建
.better-commits.json
配置文件:{ "check_status": true, "commit_type": { "enable": true, "initial_value": "feat", "infer_type_from_branch": true }, "commit_scope": { "enable": true, "custom_scopes": ["api", "ui", "db", "auth"] }, "check_ticket": { "enable": true, "title": "Ticket Number", "description": "Enter ticket number" } }
Tip
使用 better-commits 可以让团队的 Git 提交历史更加规范,便于生成变更日志和版本发布说明。