本页面介绍了 tldr-pages 仓库中的 Shell 工具和文本处理工具,重点关注用于条件表达式、文本搜索、模式匹配和输入处理的命令行工具。关于文件操作工具,请参阅文件和数据操作。关于系统监控工具,请参阅系统监控和管理。
Shell 工具是命令行界面的核心组成部分,使用户能够执行条件测试、搜索文本、处理输入以及操作 Shell 历史记录。这些工具是 Shell 脚本和命令行数据处理工作流程的基本组成部分。
来源: pages/common/grep.md1-37 pages/common/[.md1-34 pages/common/[[.md1-38
Shell 脚本通常需要评估条件来做出决策。tldr-pages 仓库记录了为此目的的几种工具,包括方括号命令([、[[)和 test 命令。
test 命令及其方括号语法等效项([ 和 [[)用于在 Shell 脚本中检查文件类型和比较值。单方括号 [ 是符合 POSIX 标准的 test 命令,而双重方括号 [[ 是 Bash 特有的扩展,具有附加功能。
来源: pages/common/[.md1-34 pages/common/[[.md1-38
以下是不同测试语法的比较
来源: pages/common/[.md1-34 pages/common/[[.md1-38
test、[ 和 [[ 都支持各种操作,用于检查文件属性、比较字符串和评估数值。pages/common/[[.md15-37 pages/common/test.md7-21
文本搜索和模式匹配是处理文本数据必不可少的功能。为此最常用的工具是 grep。
grep 是一个强大的工具,用于使用正则表达式在文件中查找模式。它是 Shell 脚本和命令行操作中最常用的文本处理工具之一。
grep 支持各种选项来定制其行为
模式类型:
-F, --fixed-strings: 将模式解释为固定字符串 (非正则表达式)-E, --extended-regexp: 使用扩展正则表达式搜索范围:
grep "pattern" filegrep "pattern" file1 file2grep -r "pattern" directory输出控制:
-n, --line-number: 显示行号-o, --only-matching: 仅显示匹配部分-v, --invert-match: 显示不匹配的行--context=N: 显示匹配周围 N 行上下文大小写敏感性:
-i, --ignore-case: 忽略大小写差异read 内置命令用于从标准输入中检索数据,对于交互式脚本和逐行处理输入非常有用。
read 命令提供了各种选项以满足不同的输入处理需求
基本用法:
read variableread var1 var2 var3数组存储:
read -a array输入限制:
-n count: 仅读取指定数量的字符-r: 原始模式 (不特殊处理反斜杠)用户交互:
-p "prompt": 在读取输入前显示提示-s: 静默模式 (不回显键入的字符,适用于密码)逐行处理:
while read line; do echo "$line"; done < fileShell 历史扩展允许用户重用和修改之前执行的命令,从而提高命令行下的工作效率。
来源: pages/common/!.md1-37 pages/common/^.md1-22
Shell 提供了多种历史展开运算符
感叹号 (!) 运算符:
!!:重复上一条命令!n:重复历史中的第 n 条命令!-n:重复当前位置向前数第 n 条命令!string:重复最近以 string 开头的命令!$:使用上一条命令的最后一个参数!*:使用上一条命令的所有参数脱字号 (^) 运算符:
^string1^string2:在上一条命令中将 string1 的第一个匹配项替换为 string2^string1^:从上一条命令中删除 string1 的第一个匹配项^string1^string2^string3:将 string1 替换为 string2 并追加 string3来源: pages/common/!.md6-36 pages/common/^.md7-21
basenc 工具用于使用各种编码方案对数据进行编码和解码。
来源: pages/common/basenc.md1-21
basenc 工具支持各种编码方案
编码格式:
--base64:标准 Base64 编码--base32:Base32 编码--base16:Base16(十六进制)编码操作模式:
-d, --decode:解码输入源:
basenc --base64 filecommand | basenc --base64输出格式化:
-w, --wrap:指定行包装的列数来源: pages/common/basenc.md6-20
Shell 工具常被组合成管道,以创建强大的文本处理工作流。这些管道可以转换、过滤和分析各种格式的数据。
来源: pages/common/grep.md34-36 pages/common/read.md34-36 pages/common/test.md23-25 pages/common/!.md6-8 pages/common/^.md7-9
以下是一些使用 shell 工具的常见文本处理工作流
使用 grep 和 read 进行逐行处理:
条件文件操作:
使用历史展开进行命令纠错:
使用历史展开快速 sudo:
来源: pages/common/grep.md34-36 pages/common/read.md34-36 pages/common/test.md23-25 pages/common/!.md6-8 pages/common/^.md7-9
Shell 工具和文本处理工具构成了命令行文本操作的基础。本页涵盖的关键组件包括
[、[[ 和 test 来评估条件。grep 来查找模式。pages/common/[.md pages/common/[[.md pages/common/test.md pages/common/read.md pages/common/!.md pages/common/^.md pages/common/basenc.md