Appearance
基础命令: man
*
man 命令可以对其他命令进行解释和功能性阐述
display online manual documentation pages
bash
❯ man man
......
MAN(1) General Commands Manual MAN(1)
NAME
man, apropos, whatis – display online manual documentation pages
SYNOPSIS
man [-adho] [-t | -w] [-M manpath] [-P pager] [-S mansect] [-m arch[:machine]] [-p [eprtv]] [mansect] page ..
man -f [-d] [-M manpath] [-P pager] [-S mansect] keyword ...
whatis [-d] [-s mansect] keyword ...
man -k [-d] [-M manpath] [-P pager] [-S mansect] keyword ...
apropos [-d] [-s mansect] keyword ...
DESCRIPTION
The man utility finds and displays online manual documentation pages. If mansect is provided, man restricts the search to the specific section of the manual.
The sections of the manual are:
1. General Commands Manual
2. System Calls Manual
3. Library Functions Manual
4. Kernel Interfaces Manual
5. File Formats Manual
6. Games Manual
7. Miscellaneous Information Manual
8. System Manager's Manual
9. Kernel Developer's Manual
Options that man understands:
-M manpath
Forces a specific colon separated manual path instead of the default search path. See manpath(1). Overrides the MANPATH environment variable.
-P pager
Use specified pager. Defaults to “less -sR” if color support is enabled, or “less -s”. Overrides the MANPAGER environment variable, which in turn overrides the PAGER
environment variable.
-S mansect
Restricts manual sections searched to the specified colon delimited list. Defaults to “1:8:2:3:3lua:n:4:5:6:7:9:l”. Overrides the MANSECT environment variable.
-a Display all manual pages instead of just the first found for each page argument.
-d Print extra debugging information. Repeat for increased verbosity. Does not display the manual page.
-f ......
.
.
.- man页面一般可以分为8种命令类型
bash
The sections of the manual are:
1. General Commands Manual
# 用户命令
2. System Calls Manual
# 系统调用
3. Library Functions Manual
# C 库函数
4. Kernel Interfaces Manual
# 设备与网络(内核)接口
5. File Formats Manual
# 文件格式
6. Games Manual
# 游戏与屏保
7. Miscellaneous Information Manual
# 环境、表、宏
8. System Manager's Manual
# 系统管理员命令和后台运行命令
9. Kernel Developer's Manual
# 内核开发者手册- man命令的允许输入选项
随着大语言模型的发展,现在学习的成本和收益变得无限地低
所以,我们应善用工具(AI,prompt)
即使主动学习的收益很低,远不如各种Agent,MCP等等,
但我们仍需要拥有纵向的、一定深度的知识体系,从而更好的向各种对话模型进行提问辅助
从而可以快速通过横向对比,学习新的技能,要善于提问,多提问
对话模型也可能碰到的问题:大语言模型的幻觉、网络问题、兼容问题、API调用等,这是至少需要你知道大致解决方向的
当使用 man [commands] 时,一堆英文的explain,可能看着就头皮发麻
可是方便的使用一些对话工具从而快速让其解释这些内容
笔者这里使用的是 aichat + DeepSeek API_KEY
bash
> { man man && echo "explain it with chinese"; } | aichat
这个手册页面介绍了 **`man`**、**`apropos`** 和 **`whatis`** 命令,它们用于显示在线帮助手册(man page)。
### 命令概述
这三个命令都用于查找和显示系统内置的手册文档。
1. **`man`** - 显示指定命令或主题的手册页。
2. **`apropos`** (或 `man -k`) - 在手册页的 **名称和描述** 中搜索包含关键词的条目。
3. **`whatis`** (或 `man -f`) - 显示与关键词 **完全匹配** 的手册页的简短描述。
### 手册章节 (Sections)
Unix/Linux 手册被分为不同的章节,每个章节涵盖特定类型的主题:
* **1** - 用户命令 (普通用户可执行的命令)
* **2** - 系统调用 (内核提供的函数)
* **3** - 库函数 (程序库中的函数)
* **4** - 特殊文件 (通常指 `/dev` 目录下的设备文件)
* **5** - 文件格式和约定 (例如 `/etc/passwd` 的格式)
* **6** - 游戏
* **7** - 杂项 (宏包、约定等)
* **8** - 系统管理命令 (通常需要 root 权限)
* **9** - 内核例程 (非标准章节)
### 主要选项说明
#### `man` 命令选项
* `-M <路径>`: 指定手册页的搜索路径,覆盖默认路径和 `MANPATH` 环境变量。
* `-P <分页器>`: 指定用于显示手册的分页程序 (如 `less`, `more`)。默认通常是 `less`。
* `-S <章节列表>`: 限制只在指定的章节中搜索(例如 `-S 1:8` 只在第1和第8章搜索)。
* `-a`: 显示所有匹配的手册页,而不仅仅是找到的第一个。
* `-d`: 显示调试信息,不显示手册内容。多次使用 (`-dd`) 可增加详细信息。
* `-f`: 模拟 `whatis` 命令的功能。
* `-k`: 模拟 `apropos` 命令的功能。
* `-w`: 只显示手册页的**文件路径**,而不显示内容。
* `-t`: 使用 `troff` 格式化手册页源文件,通常用于转换为其他格式(如 PDF、PS)。
* `-p <预处理器列表>`: 指定在运行 `nroff/troff` 之前使用的预处理器(如 `e` 用于 `eqn`, `t` 用于 `tbl`)。
#### `apropos` 和 `whatis` 命令选项
* `-d`: 同上,显示调试信息。
* `-s <章节列表>`: 同上,限制搜索章节。
### 工作原理和注意事项
#### 1. 本地化搜索 (Locale Specific Searches)
`man` 支持不同语言的手册页。其搜索行为由环境变量 `LC_ALL`、`LC_CTYPE` 或 `LANG`(按此顺序,取第一个有值的变量)控制。
如果设置了本地化环境,`man` 会按以下优先级查找对应语言的手册目录:
`语言_国家.字符集` -> `语言.字符集` -> `en.字符集` -> 默认的 `man` 目录。
**例如**,如果 `LC_ALL=ja_JP.UTF-8`,当查找 `ls(1)` 时,`man` 可能会依次查找:
`/usr/share/man/ja_JP.UTF-8/man1/ls.1.gz`
`/usr/share/man/ja.UTF-8/man1/ls.1.gz`
`/usr/share/man/en.UTF-8/man1/ls.1.gz`
`/usr/share/man/man1/ls.1.gz`
使用 `-o` 选项可以强制使用非本地化(通常是英文)的手册页。
#### 2. 显示特定文件
如果传递给 `man` 的参数中包含斜杠 (`/`),它会被视为**文件路径**,`man` 将直接显示该文件的内容。例如:`man ./mymanpage.3`。
### 环境变量
* **`MANPATH`**: 覆盖默认的手册页搜索路径。可以用冒号分隔多个路径。
* **`MANPAGER`**: 指定用于显示手册页的分页程序。如果未设置,则使用 `PAGER` 环境变量;如果 `PAGER` 也未设置,则默认使用 `less`。
* **`MANSECT`**: 指定默认搜索的手册章节顺序,用冒号分隔。
* **`MANROFFSEQ`**: 指定在格式化手册源文件时要运行的预处理器序列。
* **`MANWIDTH`**: 设置显示手册页的宽度。如果设为 `tty` 且输出到终端,则会使用终端的全宽。
* **`MANCOLOR`**: 如果设置,则启用彩色输出。
* 本地化相关:`LC_ALL`, `LC_CTYPE`, `LANG`。
### 示例
1. **查看 `stat` 系统调用的手册 (第2章)**:
```bash
man 2 stat查看所有名为
stat的手册页(可能分布在多个章节):bashman -a stat搜索描述中包含 "copy" 和 "archive" 的手册页:
bashman -k 'copy.*archive' # 或 apropos 'copy.*archive'使用
cat作为分页器查看ls的手册 (会一次性滚动到底):bashman -P cat ls仅找出
ls手册页的文件位置:bashman -w ls查找名为
printf的命令或函数的简要说明:bashwhatis printf # 或 man -f printf
退出状态
- 0: 成功。
- >0: 发生错误。
相关命令和文件
- 相关命令:
apropos(1),whatis(1),mandoc(1)(手册页格式化器),manpath(1)。 - 相关文件:
/etc/man.conf(系统配置文件),/usr/local/etc/man.d/*.conf(本地配置文件)。 - 各章节介绍:
intro(1),intro(2),intro(3)等,分别介绍了各章节的内容。
简单来说:
man <名称>- 查手册,看详细用法。whatis <名称>- 快速知道这个命令/函数是干什么的。apropos <关键词>- 当你记不清完整命令名时,用它根据功能描述来查找相关命令。
一些非内置的命令,比如通过包管理apt/dkpg安装的一些指令也可
bash
> { codex --help && echo "explain it with chinese"; } | aichat
# Codex CLI 命令行工具详解
这是一个名为 `codex` 的多功能命令行工具,主要用于与 Codex 代理进行交互。
## 基本用法
codex [选项] [提示语]
codex [选项] <命令> [参数]
```
如果没有指定子命令,所有选项将转发给交互式 CLI。
## 主要命令
### 核心功能
- **exec / e** - 非交互式运行 Codex
- **review** - 非交互式运行代码审查
- **login** - 管理登录
- **logout** - 删除存储的认证凭证
- **resume** - 恢复之前的交互式会话(默认选择器,使用 `--last` 继续最近的会话)
- **fork** - 复刻之前的交互式会话(默认选择器,使用 `--last` 复刻最近的会话)
### 实验性功能
- **mcp** - [实验性] 将 Codex 作为 MCP 服务器运行并管理 MCP 服务器
- **mcp-server** - [实验性] 运行 Codex MCP 服务器(stdio 传输)
- **app-server** - [实验性] 运行应用服务器或相关工具
- **cloud** - [实验性] 浏览 Codex Cloud 的任务并在本地应用更改
### 工具类
- **sandbox / debug** - 在 Codex 提供的沙箱中运行命令
- **apply / a** - 将 Codex 代理生成的最新差异作为 `git apply` 应用到本地工作树
- **features** - 检查功能标志
- **completion** - 生成 shell 自动补全脚本
- **help** - 打印帮助信息
## 主要选项
### 配置相关
- `-c, --config <key=value>` - 覆盖配置文件中的值(使用点路径如 `foo.bar.baz`)
- `--enable <FEATURE>` - 启用功能(可重复使用)
- `--disable <FEATURE>` - 禁用功能(可重复使用)
- `-p, --profile <CONFIG_PROFILE>` - 使用配置文件中的配置预设
### 模型相关
- `-m, --model <MODEL>` - 指定代理使用的模型
- `--oss` - 便捷标志,选择本地开源模型提供者
- `--local-provider <OSS_PROVIDER>` - 指定本地提供者(lmstudio, ollama 或 ollama-chat)
### 沙箱和执行控制
- `-s, --sandbox <SANDBOX_MODE>` - 选择沙箱策略:
- `read-only` - 只读
- `workspace-write` - 工作区可写
- `danger-full-access` - 完全访问(危险)
- `-a, --ask-for-approval <APPROVAL_POLICY>` - 配置何时需要人工批准:
- `untrusted` - 仅运行"可信"命令(如 ls, cat, sed)不询问
- `on-failure` - 所有命令都运行,仅在失败时询问
- `on-request` - 模型决定何时询问
- `never` - 从不询问
- `--full-auto` - 便捷别名,用于低摩擦的沙箱自动执行
- `--dangerously-bypass-approvals-and-sandbox` - 绕过所有确认提示,无沙箱执行(极度危险!)
### 工作环境
- `-C, --cd <DIR>` - 指定工作目录
- `--search` - 启用实时网络搜索
- `--add-dir <DIR>` - 添加可写目录(除了主工作区)
- `-i, --image <FILE>` - 附加图像到初始提示(可多个)
### 界面和其他
- `--no-alt-screen` - 禁用备用屏幕模式(在终端多路复用器中很有用)
- `-h, --help` - 打印帮助
- `-V, --version` - 打印版本信息
## 使用示例
```bash
# 简单启动交互式会话
codex
# 带初始提示启动
codex "帮我优化这个代码"
# 使用本地开源模型
codex --oss
# 使用特定模型
codex --model "o3"
# 在工作区可写的沙箱中自动执行
codex --full-auto
# 恢复最近的会话
codex resume --last
# 应用最新的代码变更
codex apply
```
这个工具特别适合开发者在命令行环境中进行代码编写、审查和自动化任务,同时提供了多种安全控制选项来保护系统安全。