Debian 参考手册

Osamu Aoki (青木 修)

摘要

这本书是自由的;你可以在与 Debian 自由软件指导方针(DFSG)兼容的任意版本的 GNU 通用公共许可证的条款下重新分发和修改本书。


目录

序言
1. 免责声明
2. 什么是 Debian
3. 关于本文档
3.1. 指导原则
3.2. 预备知识
3.3. 排版约定
3.4. popcon 流行度
3.5. 软件包大小
3.6. 给本文档报告 Bug
4. 一些对新使用者的提醒
5. 一些对新使用者的引导
1. GNU/Linux 教程
1.1. 控制台基础
1.1.1. shell 提示符
1.1.2. GUI 下的 shell 提示符
1.1.3. root 账户
1.1.4. root shell 提示符
1.1.5. GUI 系统管理工具
1.1.6. 虚拟控制台
1.1.7. 怎样退出命令行提示符
1.1.8. 怎样关闭系统
1.1.9. 恢复一个正常的控制台
1.1.10. 建议新手安装的额外软件包
1.1.11. 额外用户账号
1.1.12. sudo 配置
1.1.13. 动手时间
1.2. 类 Unix 文件系统
1.2.1. Unix 文件基础
1.2.2. 文件系统深入解析
1.2.3. 文件系统权限
1.2.4. 控制新建文件的权限:umask
1.2.5. 一组用户的权限(组)
1.2.6. 时间戳
1.2.7. 链接
1.2.8. 命名管道(先进先出)
1.2.9. 套接字
1.2.10. 设备文件
1.2.11. 特殊设备文件
1.2.12. procfs 和 sysfs
1.2.13. tmpfs
1.3. Midnight Commander (MC)
1.3.1. 自定义 MC
1.3.2. 启动 MC
1.3.3. MC 文件管理
1.3.4. MC 命令行技巧
1.3.5. MC 内部编辑器
1.3.6. MC 内部查看器
1.3.7. 自动启动 MC
1.3.8. MC 中的 FTP 虚拟文件系统
1.4. 类 Unix 工作环境基础
1.4.1. 登录 shell
1.4.2. 定制 bash
1.4.3. 特殊按键
1.4.4. 鼠标操作
1.4.5. 分页程序
1.4.6. 文本编辑器
1.4.7. 设置默认文本编辑器
1.4.8. 使用 vim
1.4.9. 记录 shell 活动
1.4.10. 基本的 Unix 命令
1.5. 简单 shell 命令
1.5.1. 命令执行和环境变量
1.5.2. “$LANG”变量
1.5.3. "$PATH" 变量
1.5.4. "$HOME" 变量
1.5.5. 命令行选项
1.5.6. Shell 通配符
1.5.7. 命令的返回值
1.5.8. 典型的顺序命令和 shell 重定向
1.5.9. 命令别名
1.6. 类 Unix 的文本处理
1.6.1. Unix 文本工具
1.6.2. 正则表达式
1.6.3. 替换表达式
1.6.4. 正则表达式的全局替换
1.6.5. 从文本文件的表格中提取数据
1.6.6. 用于管道命令的小片段脚本
2. Debian 软件包管理
2.1. Debian 软件包管理的前提
2.1.1. 软件包配置
2.1.2. 基本的注意事项
2.1.3. 持续升级的生活
2.1.4. Debian 档案库基础
2.1.5. Debian 是100% 的自由软件
2.1.6. 软件包依赖关系
2.1.7. 包管理的事件流
2.1.8. 对包管理问题的第一个回应
2.2. 基础软件包管理操作
2.2.1. apt vs. apt-get / apt-cache vs. aptitude
2.2.2. 命令行中的基础软件包管理操作
2.2.3. aptitude 的交互式使用
2.2.4. aptitude 的按键绑定
2.2.5. aptitude 软件包视图
2.2.6. aptitude 搜索方式选项
2.2.7. aptitude 正则表达式
2.2.8. aptitude 的依赖解决
2.2.9. 软件包活动日志
2.3. aptitude 操作范例
2.3.1. 通过正则表达式匹配软件包名称来列出软件包
2.3.2. 使用正则表达式匹配浏览
2.3.3. 完整地清理已删除软件包
2.3.4. 调整自动/手动安装状态
2.3.5. 全面的系统升级
2.4. 高级软件包管理操作
2.4.1. 命令行中的高级软件包管理操作
2.4.2. 验证安装的软件包文件
2.4.3. 预防软件包故障
2.4.4. 搜索软件包元数据
2.5. Debian 软件包内部管理
2.5.1. 档案库元数据
2.5.2. 顶层“Release”文件及真实性
2.5.3. 档案库层的“Release”文件
2.5.4. 获取用于软件包的元数据
2.5.5. APT 的软件包状态
2.5.6. aptitude 的软件包状态
2.5.7. 获取的软件包的本地副本
2.5.8. Debian 软件包文件名称
2.5.9. dpkg 命令
2.5.10. update-alternatives 命令
2.5.11. dpkg-statoverride 命令
2.5.12. dpkg-divert 命令
2.6. 从损坏的系统中恢复
2.6.1. 不兼容旧的用户配置
2.6.2. 具有相同文件的不同软件包
2.6.3. 修复损坏的软件包脚本
2.6.4. 使用 dpkg 命令进行救援
2.6.5. 恢复软件包选择数据
2.7. 软件包管理技巧
2.7.1. 如何挑选 Debian 软件包
2.7.2. 混合源档案库中的软件包
2.7.3. 调整候选版本
2.7.4. 更新和向后移植
2.7.5. 阻止推荐的软件包的安装
2.7.6. 使用带有 unstable 软件包的 testing 版本
2.7.7. 使用带有 experimental 软件包的 unstable 版本
2.7.8. 自动下载和升级软件包
2.7.9. 限制 APT 的下载带宽
2.7.10. 紧急降级
2.7.11. 上传软件包的是谁?
2.7.12. equivs 软件包
2.7.13. 移植一个软件包到 stable 系统
2.7.14. 用于 APT 的代理服务器
2.7.15. 更多关于软件包管理的文档
3. 系统初始化
3.1. 启动过程概述
3.1.1. 第一阶段:UEFI
3.1.2. 第二阶段:引载加载程序
3.1.3. 第三阶段:迷你 Debian 系统
3.1.4. 第四阶段:常规 Debian 系统
3.2. Systemd 初始化
3.2.1. 主机名
3.2.2. 文件系统
3.2.3. 网络接口初始化
3.3. 内核消息
3.4. 系统消息
3.5. 系统管理
3.6. 其它系统监控
3.7. 定制 systemd
3.7.1. 套接字激活
3.8. udev 系统
3.8.1. 内核模块初始化
4. 认证和访问控制
4.1. 一般的 Unix 认证
4.2. 管理账号和密码信息
4.3. 好密码
4.4. 设立加密的密码
4.5. PAM 和 NSS
4.5.1. PAM 和 NSS 访问的配置文件
4.5.2. 现代的集中式系统管理
4.5.3. “为什么 GNU su 不支持 wheel 组”
4.5.4. 严格的密码规则
4.6. 安全认证
4.6.1. 确保互联网上的的密码安全
4.6.2. 安全 Shell
4.6.3. 互联网额外的安全方式
4.6.4. root 密码安全
4.7. 其它的访问控制
4.7.1. sudo
4.7.2. PolicyKit
4.7.3. 限制访问某些服务端的服务
4.7.4. Linux 安全特性
5. 网络设置
5.1. 基本网络架构
5.1.1. 主机名解析
5.1.2. 网络接口名称
5.1.3. 局域网网络地址范围
5.1.4. 网络设备支持
5.2. 现代的桌面网络配置
5.2.1. 图形界面的网络配置工具
5.3. 没有图像界面的现代网络配置
5.4. 底层网络配置
5.4.1. Iproute2 命令
5.4.2. 安全的底层网络操作
5.5. 网络优化
5.5.1. 找出最佳 MTU
5.5.2. WAN TCP 优化
5.6. Netfilter 网络过滤框架
6. 网络应用
6.1. 网页浏览器
6.1.1. 浏览器配置
6.2. 邮件系统
6.2.1. 电子邮件基础
6.2.2. 现代邮件服务限制
6.2.3. 历史邮件服务端期望
6.2.4. 邮件传输代理 (MTA)
6.2.4.1. exim4 的配置
6.2.4.2. 带有 SASL 的 postfix 配置
6.2.4.3. 邮件地址配置
6.2.4.4. 基础 MTA 操作
6.3. 服务器远程访问和工具 (SSH)
6.3.1. SSH 基础
6.3.2. 远程主机上的用户名
6.3.3. 免密码远程连接
6.3.4. 处理其它 SSH 客户端
6.3.5. 建立 ssh 代理
6.3.6. 从远程主机发送邮件
6.3.7. SMTP/POP3 隧道的端口转发
6.3.8. 怎样通过 SSH 关闭远程系统
6.3.9. SSH 故障排查
6.4. 打印服务和工具
6.5. 其它网络应用服务
6.6. 其它网络应用客户端
6.7. 系统后台守护进程(daemon)诊断
7. GUI(图形用户界面)系统
7.1. GUI(图形用户界面)桌面环境
7.2. GUI(图形用户界面)通信协议
7.3. GUI(图形用户界面)架构
7.4. GUI(图形用户界面)应用
7.5. 字体
7.5.1. 基础字体
7.5.2. 字体栅格化
7.6. 沙盒
7.7. 远程桌面
7.8. X 服务端连接
7.8.1. X 服务端本地连接
7.8.2. X 服务端远程连接
7.8.3. X 服务端 chroot 连接
7.9. 剪贴板
8. 国际化和本地化
8.1. 语言环境
8.1.1. UTF-8 语言环境的基本原理
8.1.2. 语言环境的重新配置
8.1.3. 文件名编码
8.1.4. 本地化信息和翻译文档
8.1.5. 语言环境的影响
8.2. 键盘输入
8.2.1. Linux 控制台和 X 窗口的键盘输入
8.2.2. Wayland 键盘输入
8.2.3. IBus 支持的输入法
8.2.4. 一个日语的例子
8.3. 显示输出
8.4. 东亚环境下宽度有歧义的字符
9. 系统技巧
9.1. 控制台技巧
9.1.1. 清晰的记录 shell 活动
9.1.2. screen 程序
9.1.3. 在目录间游走
9.1.4. Readline 封装
9.2. 定制 vim
9.2.1. 用内部特性定制 vim
9.2.2. 用外部软件包定制 vim
9.3. 数据记录和展示
9.3.1. 日志后台守护进程(daemon)
9.3.2. 日志分析
9.3.3. 定制文本数据的显示
9.3.4. 定制时间和日期的显示
9.3.5. shell 中 echo 的颜色
9.3.6. 有颜色输出的命令
9.3.7. 记录编辑器复杂的重复操作动作
9.3.8. 记录 X 应用程序的图像
9.3.9. 记录配置文件的变更
9.4. 监控、控制和启动程序活动
9.4.1. 进程耗时
9.4.2. 调度优先级
9.4.3. ps 命令
9.4.4. top 命令
9.4.5. 列出被一个进程打开的文件
9.4.6. 跟踪程序活动
9.4.7. 识别使用文件和套接字的进程
9.4.8. 使用固定间隔重复一个命令
9.4.9. 使用文件循环来重复一个命令
9.4.10. 从 GUI 启动一个程序
9.4.11. 自定义被启动的程序
9.4.12. 杀死一个进程
9.4.13. 单次任务时间安排
9.4.14. 定时任务安排
9.4.15. Alt-SysRq 键
9.5. 系统维护技巧
9.5.1. 谁在系统里?
9.5.2. 警告所有人
9.5.3. 硬件识别
9.5.4. 硬件配置
9.5.5. 系统时间和硬件时间
9.5.6. 终端配置
9.5.7. 声音基础设施
9.5.8. 关闭屏幕保护
9.5.9. 关闭蜂鸣声
9.5.10. 内存使用
9.5.11. 系统安全性和完整性检查
9.6. 数据存储技巧
9.6.1. 硬盘空间使用情况
9.6.2. 硬盘分区配置
9.6.3. 使用 UUID 访问分区
9.6.4. LVM2
9.6.5. 文件系统配置
9.6.6. 文件系统创建和完整性检查
9.6.7. 通过挂载选项优化文件系统
9.6.8. 通过超级块(superblock)优化文件系统
9.6.9. 硬盘优化
9.6.10. 固态硬盘优化
9.6.11. 使用 SMART 预测硬盘故障
9.6.12. 通过 $TMPDIR 指定临时存储目录
9.6.13. 通过 LVM 扩展可用存储空间
9.6.14. 通过挂载另一个分区来扩展可用存储空间
9.6.15. 通过 “mount --bind” 挂载另一个目录来扩展可用存储空间
9.6.16. 通过 overlay 挂载(overlay-mounting)另一个目录来扩展可用存储空间
9.6.17. 使用符号链接扩展可用存储空间
9.7. 磁盘映像
9.7.1. 制作磁盘映像文件
9.7.2. 直接写入硬盘
9.7.3. 挂载磁盘映像文件
9.7.4. 清理磁盘映像文件
9.7.5. 制作空的磁盘映像文件
9.7.6. 制作 ISO9660 镜像文件
9.7.7. 直接写入文件到 CD/DVD-R/RW
9.7.8. 挂载 ISO9660 镜像文件
9.8. 二进制数据
9.8.1. 查看和编辑二进制数据
9.8.2. 不挂载磁盘操作文件
9.8.3. 数据冗余
9.8.4. 数据文件恢复和诊断分析
9.8.5. 把大文件分成多个小文件
9.8.6. 清空文件内容
9.8.7. 样子文件
9.8.8. 擦除整块硬盘
9.8.9. 擦除硬盘上的未使用的区域
9.8.10. 恢复已经删除但仍然被打开的文件
9.8.11. 查找所有硬链接
9.8.12. 不可见磁盘空间消耗
9.9. 数据加密提示
9.9.1. 使用 dm-crypt/LUKS 加密移动磁盘
9.9.2. 用 dm-crypt 加密的交换分区
9.9.3. 使用dm-crypt/LUKS挂载加密的磁盘
9.10. 内核
9.10.1. 内核参数
9.10.2. 内核头文件
9.10.3. 编译内核和相关模块
9.10.4. 编译内核源代码:Debian 内核团队推荐
9.10.5. 硬件驱动和固件
9.11. 虚拟化系统
9.11.1. 虚拟化和模拟器工具
9.11.2. 虚拟化工作流
9.11.3. 挂载虚拟磁盘映像文件
9.11.4. Chroot 系统
9.11.5. 多桌面系统
10. 数据管理
10.1. 共享,拷贝和存档
10.1.1. 存档和压缩工具
10.1.2. 复制和同步工具
10.1.3. 归档语法
10.1.4. 复制语法
10.1.5. 查找文件的语法
10.1.6. 归档媒体
10.1.7. 可移动存储设备
10.1.8. 选择用于分享数据的文件系统
10.1.9. 网络上的数据分享
10.2. 备份和恢复
10.2.1. 实用备份套件
10.2.2. 个人备份
10.3. 数据安全基础
10.3.1. GnuPG 密钥管理
10.3.2. 在文件上使用 GnuPG
10.3.3. 在 Mutt 中使用 GnuPG
10.3.4. 在 Vim 中使用 GnuPG
10.3.5. MD5 校验和
10.4. 源代码合并工具
10.4.1. 从源代码文件导出差异
10.4.2. 源代码文件移植更新
10.4.3. 交互式移植
10.5. Git
10.5.1. 配置 Git 客户端
10.5.2. Basic Git commands
10.5.3. Git tips
10.5.4. Git 参考
10.5.5. Other version control systems
11. 数据转换
11.1. 文本数据转换工具
11.1.1. 用 iconv 命令来转换文本文件
11.1.2. 用 iconv 检查文件是不是 UTF-8 编码
11.1.3. 使用 iconv 转换文件名
11.1.4. 换行符转换
11.1.5. TAB 转换
11.1.6. 带有自动转换功能的编辑器
11.1.7. 提取纯文本
11.1.8. 高亮并格式化纯文本数据
11.2. XML 数据
11.2.1. XML 的基本提示
11.2.2. XML 处理
11.2.3. XML 数据提取
11.2.4. XML 数据检查
11.3. 排版
11.3.1. roff 排版
11.3.2. TeX/LaTeX
11.3.3. 漂亮的打印手册页
11.3.4. 创建手册页
11.4. 可印刷的数据
11.4.1. Ghostscript
11.4.2. 合并两个 PS 或 PDF 文件
11.4.3. 处理可印刷数据的工具
11.4.4. 用 CUPS 打印
11.5. 邮件数据转换
11.5.1. 邮件数据基础
11.6. 图形数据工具
11.7. 不同种类的数据转换工具
12. 编程
12.1. Shell 脚本
12.1.1. POSIX shell 兼容性
12.1.2. Shell 参数
12.1.3. Shell 条件语句
12.1.4. shell 循环
12.1.5. shell 命令行的处理顺序
12.1.6. 用于 shell 脚本的应用程序
12.2. 解释性语言中的脚本
12.2.1. 调试解释性语言代码
12.2.2. 使用 shell 脚本的 GUI 程序
12.2.3. Perl 短脚本的疯狂
12.3. 编译型语言代码
12.3.1. C
12.3.2. 简单的 C 程序(gcc)
12.3.3. Flex — 一个更好的 Lex
12.3.4. Bison — 一个更好的 Yacc
12.4. 静态代码分析工具
12.5. 调试
12.5.1. 基本的 gdb 使用命令
12.5.2. 调试 Debian 软件包
12.5.3. 获得栈帧
12.5.4. 高级 gdb 命令
12.5.5. 检查库依赖性
12.5.6. 动态调用跟踪工具
12.5.7. 调试与 X 相关的错误
12.5.8. 内存泄漏检测工具
12.5.9. 反汇编二进制程序
12.6. 编译工具
12.6.1. make
12.6.2. Autotools(自动化工具)
12.6.2.1. 编译并安装程序
12.6.2.2. 卸载程序
12.6.3. Meson
12.7. Web
12.8. 源代码转换
12.9. 制作 Debian 包
A. 附录
A.1. Debian 迷宫
A.2. 版权历史
A.3. 简体中文翻译
A.4. 文档格式

表格清单

1.1. 有趣的文本模式程序包列表
1.2. 软件包信息文档列表
1.3. 重要目录的用途列表
1.4. ls -l”输出的第一个字符列表
1.5. chmod(1) 命令文件权限的数字模式
1.6. umask值举例
1.7. 关于文件访问的由系统提供的著名组列表
1.8. 著名的由系统提供用于特定命令运行的组列表
1.9. 时间戳类型列表
1.10. 特殊设备文件列表
1.11. MC 快捷键绑定
1.12. MC 中对回车键的响应
1.13. shell 程序列表
1.14. bash 的按键绑定列表
1.15. Debian上的鼠标操作和相关按键操作列表
1.16. 基本的 Vim 按键列表
1.17. 基本的 Unix 命令列表
1.18. 语言环境值的 3 个部分
1.19. 语言环境推荐列表
1.20. "$HOME" 变量值列表
1.21. Shell glob 模式
1.22. 命令的退出代码
1.23. Shell 命令常见用法
1.24. 预定义的文件描述符
1.25. BRE 和 ERE 中的元字符
1.26. 替换表达式
1.27. 管道命令的小片段脚本列表
2.1. Debian 软件包管理工具列表
2.2. Debian 档案库站点列表
2.3. Debian 归档区域(area)列表
2.4. 套件和代号的关系
2.5. 解决特定软件包问题的主要网站
2.6. 使用 apt(8), aptitude(8) 和 apt-get(8) / apt-cache(8) 的命令行基本软件包管理操作
2.7. aptitude(8) 中重要的命令选项
2.8. aptitude 的按键绑定
2.9. aptitude 视图
2.10. 标准软件包视图的分类
2.11. aptitude 正则表达式
2.12. 软件包活动日志文件
2.13. 高级软件包管理操作
2.14. Debian 档案库元数据的内容
2.15. Debian 软件包的名称结构
2.16. Debian 软件包名称中每一个组件可以使用的字符
2.17. dpkg 创建的重要文件
2.18. 用于 apt-pinning 技术的值得注意的 Pin-Priority 值列表。
2.19. Debian 档案库的专用代理工具
3.1. 引导加载程序列表
3.2. /boot/grub/grub.cfg 文件上面部分菜单条目意义
3.3. Debian 系统启动工具列表
3.4. 内核错误级别表
3.5. 典型的 journalctl 命令片段列表
3.6. 典型的 systemctl 命令片段列表
3.7. systemd 下其它零星监控命令列表
4.1. pam_unix(8) 使用的 3 个重要配置文件
4.2. /etc/passwd” 第二项的内容
4.3. 管理账号信息的命令
4.4. 生成密码的工具
4.5. PAM 和 NSS 系统中重要的软件包
4.6. PAM 和 NSS 访问的配置文件
4.7. 安全和不安全的服务端口列表
4.8. 提供额外安全方式的工具列表
5.1. 网络配置工具一览表
5.2. 网络地址范围列表
5.3. 从旧的 net-tools 命令集到新的 iproute2 命令集转换表
5.4. 底层网络命令列表
5.5. 网络优化工具列表
5.6. 最佳 MTU 值的基本指引方法
5.7. 防火墙工具列表
6.1. 网页浏览器列表
6.2. 浏览器插件软件包列表
6.3. 邮件用户代理列表 (MUA)
6.4. 基础的邮件传输代理相关的软件包列表
6.5. 重要的 postfix 手册页列表
6.6. 与邮件地址相关的配置文件列表
6.7. 基础 MTA 操作列表
6.8. 服务器远程访问和工具列表
6.9. SSH 配置文件列表
6.10. SSH 客户端启动例子列表
6.11. 其它平台上免费 SSH 客户端列表
6.12. 打印服务和工具列表
6.13. 其它网络应用服务列表
6.14. 网络应用客户端列表
6.15. 常用 RFC 列表
7.1. 桌面环境列表
7.2. 著名的 GUI 架构软件包列表
7.3. 著名的的 GUI(图形用户界面)应用列表
7.4. 著名的 TrueType 和 OpenType 字体列表
7.5. 著名的字体环境和相关软件包列表
7.6. 著名的沙盒环境和相关软件包列表
7.7. 著名的远程访问服务端列表
7.8. 连接到 X 服务端的方式
7.9. 操作字符剪贴板相关程序列表
8.1. IBus 和它的引擎软件包列表
9.1. 支持控制台活动的程序列表
9.2. screen 键绑定列表
9.3. vim 的初始化信息
9.4. 系统日志分析软件列表
9.5. 使用 时间样式值 的"ls -l" 命令的时间和日期的显示例子
9.6. 图形图像处理工具列表
9.7. 记录配置历史的软件包列表
9.8. 监控和控制程序活动工具列表
9.9. 调度优先级值列表
9.10. ps 命令样式列表
9.11. kill 命令常用信号列表
9.12. 著名的 SAK 命令键列表
9.13. 硬件识别工具列表
9.14. 硬件配置工具列表
9.15. 声音软件包
9.16. 关闭屏幕保护命令列表
9.17. 报告的内存大小
9.18. 用于系统安全性和完整性检查的工具
9.19. 硬盘分区管理软件包
9.20. 文件系统管理包列表
9.21. 查看和修改二进制数据的软件包列表
9.22. 不挂载磁盘操作文件的软件包列表
9.23. 向文件添加数据冗余的工具列表
9.24. 数据文件恢复和诊断分析软件包列表
9.25. 数据加密工具列表
9.26. Debian 系统内核编译需要安装的主要软件包列表
9.27. 虚拟化工具列表
10.1. 存档和压缩工具列表
10.2. 复制和同步工具列表
10.3. 典型使用场景下可移动存储设备可选择的文件系统列表
10.4. 典型使用场景下可选择的网络服务列表
10.5. 实用备份程序套件列表
10.6. 数据安全基础工具列表
10.7. GNU 隐私卫士密钥管理命令的列表
10.8. 信任码含义列表
10.9. 在文件上使用的 GNU 隐私卫士的命令列表
10.10. 源代码合并工具列表
10.11. git 相关包和命令列表
10.12. Main Git commands
10.13. Git tips
10.14. List of other version control system tools
11.1. 文本数据转化工具列表
11.2. 编码值和用法的列表
11.3. 不同平台的换行符样式列表
11.4. bsdmainutilscoreutils 包中的用于转换 TAB 的命令列表
11.5. 用于提取纯文本数据的工具列表
11.6. 高亮纯文本数据的工具列表
11.7. XML 预定义实体列表
11.8. XML 工具列表
11.9. DSSSL 工具列表
11.10. XML 数据提取工具列表
11.11. XML 美化打印工具列表
11.12. 排版工具的列表
11.13. 创建手册页的工具列表
11.14. Ghostscript PostScript 解释器列表
11.15. 处理可印刷数据的工具列表
11.16. 有助于邮件数据转换的软件包列表
11.17. 图形数据工具列表
11.18. 不同种类的数据转换工具列表
12.1. 典型 bashism 语法列表
12.2. shell 参数列表
12.3. shell 参数展开列表
12.4. 重要的 shell 参数替换列表
12.5. 在条件表达式中进行文件比较
12.6. 在条件表达式中进行字符串比较
12.7. 包含用于 shell 脚本的小型应用程序的软件包
12.8. 解释器相关软件包列表
12.9. 对话(dialog )程序列表
12.10. 编译相关软件包列表
12.11. 兼容 Yacc 的 LALR 解析器生成器列表
12.12. 静态代码分析工具的列表
12.13. 调试软件包列表
12.14. 高级 gdb 命令列表
12.15. 内存泄漏检测工具的列表
12.16. 编译工具软件包列表
12.17. 自动变量的列表
12.18. 变量扩展的列表
12.19. 源代码转换工具列表