diff --git a/pages.zh/common/$.md b/pages.zh/common/$.md index 057e10f16b..caf738dd9c 100644 --- a/pages.zh/common/$.md +++ b/pages.zh/common/$.md @@ -22,3 +22,11 @@ - 运行 `命令` 并展开它的输出。与将 `命令` 括在反引号中相同: `$({{命令}})` + +- 列出当前上下文有多少个参数: + +`echo $#` + +- 打印 Bash 数组: + +`echo ${array[@]}` diff --git a/pages.zh/common/ani-cli.md b/pages.zh/common/ani-cli.md index 35b255c79e..d8065fd15c 100644 --- a/pages.zh/common/ani-cli.md +++ b/pages.zh/common/ani-cli.md @@ -7,22 +7,30 @@ `ani-cli "{{动漫名称}}"` -- 下载动漫剧集: +- 下载([d]ownload)剧集: `ani-cli -d "{{动漫名称}}"` -- 使用 VLC 播放器播放: +- 下载([d]ownload)一个范围([r]ange)的剧集: + +`ani-cli -d -r "{{1 6}}" "{{动漫名称}}"` + +- 下载([d]ownload)整部动漫(所有剧集的范围): + +`ani-cli -d -r "1 -1" "{{动漫名称}}"` + +- 使用 [v]LC 播放器播放: `ani-cli -v "{{动漫名称}}"` -- 指定要观看的剧集: +- 观看特定([e]pisode)剧集: `ani-cli -e {{剧集序号}} "{{动漫名称}}"` -- 从历史记录中继续观看动漫: +- 从历史记录中([c]ontinue)继续观看动漫: `ani-cli -c` -- 更新 `ani-cli`: +- 更新([U]pdate)`ani-cli`: `ani-cli -U` diff --git a/pages.zh/common/btop.md b/pages.zh/common/btop.md index 909b6083cb..eb6b7ce86e 100644 --- a/pages.zh/common/btop.md +++ b/pages.zh/common/btop.md @@ -23,3 +23,11 @@ - 设置更新速率为 500 毫秒: `btop --update 500` + +- 退出 `btop`: + +`` + +- 显示帮助信息: + +`btop {{[-h|--help]}}` diff --git a/pages.zh/common/nano.md b/pages.zh/common/nano.md index 933bb1aaba..0bf2a2aede 100644 --- a/pages.zh/common/nano.md +++ b/pages.zh/common/nano.md @@ -30,3 +30,7 @@ - 打开文件并在保存时创建备份文件(如 `路径/到/文件~`): `nano {{[-B|--backup]}} {{路径/到/文件}}` + +- 退出 nano: + +`` diff --git a/pages.zh/common/netstat.md b/pages.zh/common/netstat.md index 5724ec33e5..a9b568c36e 100644 --- a/pages.zh/common/netstat.md +++ b/pages.zh/common/netstat.md @@ -1,24 +1,33 @@ # netstat > 显示与网络相关的信息,如打开的连接、打开的套接字端口等。 +> 另见:`ss`。 > 更多信息:. - 列出所有端口: -`netstat -a` +`netstat --all` -- 列出所有被侦听端口: +- 列出所有被监听端口: -`netstat -l` +`netstat --listening` -- 列出侦听的 TCP 端口: +- 列出监听的 TCP 端口: -`netstat -t` +`netstat --tcp` -- 显示监听给定协议监听的 PID 和程序名: +- 显示 PID 和程序名: -`netstat -p {{协议}}` +`netstat --program` -- 打印路由表: +- 持续列出信息: -`netstat -nr` +`netstat --continuous` + +- 列出路由并且不解析 IP 到主机名: + +`netstat --route --numeric` + +- 列出正在监听的 TCP 和 UDP 端口(如果你是 root 用户,还会显示用户和进程): + +`netstat --listening --program --numeric --tcp --udp --extend` diff --git a/pages.zh/common/nmap.md b/pages.zh/common/nmap.md index 90691e3dfe..1d068aa152 100644 --- a/pages.zh/common/nmap.md +++ b/pages.zh/common/nmap.md @@ -1,29 +1,37 @@ # nmap > 网络探索工具和安全/端口扫描程序。 -> 仅当以特权运行 Nmap 时,某些功能才激活。 +> 某些功能(如 SYN 扫描)仅当以 root 权限运行 `nmap` 时才能激活。 > 更多信息:. -- 检查 IP 地址是否可用,并猜测远程主机的操作系统: +- 使用不同的详细([v]erbosity)级别扫描远程主机的前 1000 个端口: -`nmap -O {{IP 或者 主机名}}` +`nmap -v{{1|2|3}} {{ip或主机名}}` -- 尝试确定指定的主机是否启动以及它们的名称是什么: +- 对整个子网或单个主机进行非常激进的 ping 扫描: -`sudo nmap -sn {{IP 或者 主机名}} {{可选的其它地址}}` +`nmap -T5 -sn {{192.168.0.0/24|ip或主机名1,ip或主机名2,...}}` -- 像上面一样,如果主机启动了,还可以运行默认的 1000 端口 TCP 扫描: +- 对来自文件的主机启用操作系统检测、版本检测、脚本扫描和路由跟踪: -`nmap {{IP 或者 主机名}} {{可选的其它地址}}` +`sudo nmap -A -iL {{路径/到/文件.txt}}` -- 也可以启用脚本,服务检测,操作系统指纹识别和跟踪路由: +- 扫描特定的端口列表(使用 `-p-` 扫描从 1 到 65535 的所有端口): -`nmap -A {{一个地址 或者 多个地址}}` +`nmap -p {{端口1,端口2,...}} {{ip或主机名1,ip或主机名2,...}}` -- 扫描端口的特定列表(使用 `-p` 参数覆盖所有端口,如 `-p 1-65535`,也可以明确指定几个端口,如 `-p 3306,3307,3308`): +- 使用默认 NSE 脚本执行前 1000 个端口的服务和版本检测,将结果(`-oA`)写入输出文件: -`nmap -p {{端口1, 端口2, ..., 端口N}} {{一个地址 或者 多个地址}}` +`nmap -sC -sV -oA {{top-1000-ports}} {{ip或主机名1,ip或主机名2,...}}` -- 使用默认 NSE 脚本执行针对该主机地址的完整端口、服务、版本检测扫描,以确定弱点和信息: +- 使用 `default and safe` NSE 脚本谨慎地扫描目标: -`nmap -sC -sV {{一个地址 或者 多个地址}}` +`nmap --script "default and safe" {{ip或主机名1,ip或主机名2,...}}` + +- 使用所有可用的 `http-*` NSE 脚本扫描在标准端口 80 和 443 上运行的 Web 服务器: + +`nmap --script "http-*" {{ip或主机名1,ip或主机名2,...}} -p 80,443` + +- 尝试通过使用极慢扫描(`-T0`)、诱饵源地址(`-D`)、分段([f]ragmented)数据包、随机数据和其他方法来规避 IDS/IPS 检测: + +`sudo nmap -T0 -D {{诱饵ip1,诱饵ip2,...}} --source-port {{53}} -f --data-length {{16}} -Pn {{ip或主机名}}` diff --git a/pages.zh/common/node.md b/pages.zh/common/node.md index 4fec8313ab..a22832d6d0 100644 --- a/pages.zh/common/node.md +++ b/pages.zh/common/node.md @@ -5,20 +5,24 @@ - 运行一个 JavaScript 文件: -`node {{文件名}}` +`node {{路径/到/文件}}` - 开始一个 REPL 交互式解释器: `node` +- 执行指定的文件,当导入的文件发生变化时重启进程(需要 Node.js 18.11+ 版本): + +`node --watch {{路径/到/文件}}` + - 执行输入的 JavaScript 代码: `node -e "{{代码}}"` -- 执行输入的 JavaScript 代码并显示结果: +- 执行输入的 JavaScript 代码并显示结果,用于打印 node 的依赖版本: -`node -p "{{代码}}"` +`node -p "process.versions"` - 启动检查器并在程序源码解析完成后等待调试器连接: -`node --no-lazy --inspect-brk {{文件名}}` +`node --no-lazy --inspect-brk {{路径/到/文件}}` diff --git a/pages.zh/common/picocom.md b/pages.zh/common/picocom.md index 5a0910ff40..b4ea9bd844 100644 --- a/pages.zh/common/picocom.md +++ b/pages.zh/common/picocom.md @@ -3,10 +3,22 @@ > 模拟串行端口的极简程序。 > 更多信息:. -- 以指定波特率连接到串行端口: +- 使用默认波特率 9600 连接到串行控制台: -`picocom {{/dev/ttyXYZ}} {{[-b|--baud]}} {{波特率}}` +`sudo picocom {{/dev/ttyXYZ}}` -- 映射特殊字符(例如:将 LF 映射为 CRLF): +- 以指定波特率连接到串行控制台: -`picocom {{/dev/ttyXYZ}} --imap {{lfcrlf}}` +`sudo picocom {{/dev/ttyXYZ}} {{[-b|--baud]}} {{波特率}}` + +- 映射特殊字符(例如:将 `LF` 映射为 `CRLF`): + +`sudo picocom {{/dev/ttyXYZ}} --imap {{lfcrlf}}` + +- 退出 picocom: + +`` + +- 显示帮助信息: + +`picocom {{[-h|--help]}}` diff --git a/pages.zh/common/popd.md b/pages.zh/common/popd.md index a0a0c6e1e5..ab7adbd3bc 100644 --- a/pages.zh/common/popd.md +++ b/pages.zh/common/popd.md @@ -1,16 +1,21 @@ # popd > 通过 pushd shell 内置程序删除目录堆栈中的目录。 -> 更多信息:. +> 另见 `pushd` 将目录放入堆栈和 `dirs` 显示目录堆栈内容。 +> 更多信息:. - 从堆栈中删除顶部目录,并用 `cd` 跳转到该目录: `popd` -- 删除第 n 个目录(从零开始,以用 `dirs` 打印的列表左侧开始): +- 删除第 N 个目录(从零开始,以用 `dirs` 打印的列表左侧开始): `popd +N` -- 删除第 n 个目录(从零开始,以用 `dirs` 打印的列表右侧开始): +- 删除第 N 个目录(从零开始,以用 `dirs` 打印的列表右侧开始): `popd -N` + +- 删除第 1 个目录(从零开始,以用 `dirs` 打印的列表左侧开始): + +`popd -n` diff --git a/pages.zh/common/powershell.md b/pages.zh/common/powershell.md index b39f094198..9f0ca2cbbf 100644 --- a/pages.zh/common/powershell.md +++ b/pages.zh/common/powershell.md @@ -1,32 +1,13 @@ # powershell -> 专为系统管理而设计的命令行 shell 和脚本语言。 +> 此命令可能会被误认为是 PowerShell 的跨平台版本(以前称为 PowerShell Core),后者使用 `pwsh` 而不是 `powershell`。 +> Windows 中原始的 `powershell` 命令仍然可用于使用传统的 Windows PowerShell 版本(5.1 及以下版本)。 > 更多信息:. -- 在命令提示符窗口中启动 Windows PowerShell 会话: +- 查看最新的跨平台版本 PowerShell(版本 6 及以上)的命令文档: -`powershell` +`tldr pwsh` -- 加载一个特定的 PowerShell 控制台文件: +- 查看传统 Windows PowerShell(版本 5.1 及以下)的命令文档: -`powershell -PSConsoleFile {{路径/file}}` - -- 用指定版本的 PowerShell 启动会话: - -`powershell -Version {{版本}}` - -- 防止运行启动命令后 shell 退出: - -`powershell -NoExit` - -- 描述发送到 PowerShell 的数据格式: - -`powershell -InputFormat {{Text|XML}}` - -- 设定 PowerShell 输出的格式: - -`powershell -OutputFormat {{Text|XML}}` - -- 显示帮助: - -`powershell -Help` +`tldr powershell -p windows` diff --git a/pages.zh/common/protoc.md b/pages.zh/common/protoc.md index 38ce03fa1e..69e37662d5 100644 --- a/pages.zh/common/protoc.md +++ b/pages.zh/common/protoc.md @@ -14,3 +14,15 @@ - 生成多种语言的代码: `protoc --csharp_out={{路径/到/c#_输出目录}} --js_out={{路径/到/js_输出目录}} {{输入文件.proto}}` + +- 从 `.proto` 文件将文本格式消息编码为协议消息: + +`protoc --encode={{类型名称}} {{输入文件.proto}} < {{消息.txt}}` + +- 从 `.proto` 文件将协议消息解码为文本格式: + +`protoc --decode={{类型名称}} {{输入文件.proto}} < {{消息.bin}}` + +- 将协议消息解码为原始标签/值对: + +`protoc --decode_raw < {{消息.bin}}` diff --git a/pages.zh/common/pushd.md b/pages.zh/common/pushd.md index 19c93ea21e..f5726c8868 100644 --- a/pages.zh/common/pushd.md +++ b/pages.zh/common/pushd.md @@ -1,12 +1,12 @@ # pushd > 将目录放在堆栈上,以便以后访问。 -> 另请参阅 `popd` 命令说明,以切换回原始目录。 +> 另见 `popd` 切换回原始目录和 `dirs` 显示目录堆栈内容。 > 更多信息:. - 切换到目录并将其添加到堆栈上: -`pushd {{directory}}` +`pushd {{路径/到/目录}}` - 切换堆栈上的第一个和第二个目录: @@ -15,3 +15,7 @@ - 通过使第 5 个元素成为堆栈的顶部来旋转堆栈: `pushd +4` + +- 将堆栈向左旋转 4 次(当前目录通过替换第 5 个元素保持在顶部): + +`pushd -n +4` diff --git a/pages.zh/common/rm.md b/pages.zh/common/rm.md index d368b6c157..9515009e4d 100644 --- a/pages.zh/common/rm.md +++ b/pages.zh/common/rm.md @@ -1,20 +1,29 @@ # rm > 删除文件或目录。 +> 另见:`rmdir`。 > 更多信息:. -- 从任意位置删除文件: +- 删除指定文件: -`rm {{路径/到/文件 路径/到/另一个/文件 ...}}` +`rm {{路径/到/文件1 路径/到/文件2 ...}}` + +- 删除指定文件,忽略不存在的文件: + +`rm {{[-f|--force]}} {{路径/到/文件1 路径/到/文件2 ...}}` - 交互式地删除多个文件,每次删除前都会有提示: -`rm -i {{文件(们)}}` +`rm {{[-i|--interactive]}} {{路径/到/文件1 路径/到/文件2 ...}}` -- 以粗略模式删除文件,为每个被删除的文件打印一条信息: +- 删除文件并打印删除信息: -`rm -v {{路径/到/目录/*}}` +`rm {{[-v|--verbose]}} {{路径/到/文件1 路径/到/文件2 ...}}` -- 递归删除一个目录及其所有子目录: +- 递归删除指定文件和目录: -`rm -r {{路径/到/目录}}` +`rm {{[-r|--recursive]}} {{路径/到/文件或目录1 路径/到/文件或目录2 ...}}` + +- 删除空目录(这被认为是安全的方法): + +`rm {{[-d|--dir]}} {{路径/到/目录}}` diff --git a/pages.zh/common/shasum.md b/pages.zh/common/shasum.md index 90bd134273..1057c3de04 100644 --- a/pages.zh/common/shasum.md +++ b/pages.zh/common/shasum.md @@ -3,22 +3,34 @@ > 计算或检查加密 SHA 校验值。 > 更多信息:. -- 计算文件的 SHA1 校验值: +- 计算一个或多个文件的 SHA1 校验值: -`shasum {{文件名}}` +`shasum {{路径/到/文件1 路径/到/文件2 ...}}` -- 计算文件的 SHA256 校验值: +- 使用指定算法计算一个或多个文件的 SHA 校验值: -`shasum --algorithm 256 {{文件名}}` - -- 计算多个文件的 SHA512 校验值: - -`shasum --algorithm 512 {{文件名 1}} {{文件名 2}}` - -- 计算一个文件内列出的所有的目录文件的相对应的总数: - -`shasum --check {{列表文件}}` +`shasum --algorithm {{1|224|256|384|512|512224|512256}} {{路径/到/文件1 路径/到/文件2 ...}}` - 从标准输入中获取并计算 SHA1 校验值: -`{{其他命令}} | shasum` +`{{命令}} | shasum` + +- 计算并保存 SHA256 校验值列表到文件: + +`shasum --algorithm 256 {{路径/到/文件1 路径/到/文件2 ...}} > {{路径/到/文件.sha256}}` + +- 读取包含 SHA 校验值和文件名的文件,并验证所有文件是否具有匹配的校验值(算法将被自动检测): + +`shasum {{[-c|--check]}} {{路径/到/文件}}` + +- 仅显示缺失文件或验证失败的消息: + +`shasum {{[-c|--check]}} --quiet {{路径/到/文件}}` + +- 仅显示验证失败的消息,忽略缺失的文件: + +`shasum --ignore-missing {{[-c|--check]}} --quiet {{路径/到/文件}}` + +- 检查文件的已知 SHA 校验值: + +`echo {{文件的已知 sha 校验值}} {{路径/到/文件}} | shasum {{[-c|--check]}}` diff --git a/pages.zh/common/sshuttle.md b/pages.zh/common/sshuttle.md index 2b5a428a38..a72763e3ad 100644 --- a/pages.zh/common/sshuttle.md +++ b/pages.zh/common/sshuttle.md @@ -1,17 +1,21 @@ # sshuttle > 通过 SSH 连接传输流量的透明代理服务器。 -> 不需要管理员或远程 SSH 服务器上的任何特殊设置。 +> 不需要在远程 SSH 服务器上进行任何特殊设置,但会提示在本地机器上获取 root 访问权限。 > 更多信息:. - 通过远程 SSH 服务器转发所有 IPv4 TCP 流量: `sshuttle --remote={{用户名}}@{{服务器名}} {{0.0.0.0/0}}` -- 转发所有 IPv4 TCP 和 DNS 流量: +- 同时将所有 DNS 流量转发到服务器的默认 DNS 解析器: `sshuttle --dns --remote={{用户名}}@{{服务器名}} {{0.0.0.0/0}}` +- 转发所有流量,除了发往特定子网的流量: + +`sshuttle --remote={{用户名}}@{{服务器名}} {{0.0.0.0/0}} --exclude {{192.168.0.1/24}}` + - 使用 tproxy 方法转发所有 IPv4 和 IPv6 流量: -`sudo sshuttle --method=tproxy --remote={{用户名}}@{{服务器名}} {{0.0.0.0/0}} {{::/0}} --exclude={{你本地 IP 地址}} --exclude={{SSH 服务器的 IP 地址}}` +`sshuttle --method=tproxy --remote={{用户名}}@{{服务器名}} {{0.0.0.0/0}} {{::/0}} --exclude={{你本地 IP 地址}} --exclude={{SSH 服务器的 IP 地址}}` diff --git a/pages.zh/common/stty.md b/pages.zh/common/stty.md index d12d0ab626..185f34453b 100644 --- a/pages.zh/common/stty.md +++ b/pages.zh/common/stty.md @@ -5,16 +5,28 @@ - 显示当前终端的所有设置: -`stty --all` +`stty {{[-a|--all]}}` - 设置行数或列数: -`stty {{行数|列数}} {{数量}}` +`stty {{rows|cols}} {{数量}}` - 获取设备的实际传输速度: -`stty --file {{路径/到/驱动设备文件}} speed` +`stty {{[-F|--file]}} {{路径/到/设备文件}} speed` - 重置所有模式为当前终端的合理默认值: `stty sane` + +- 在原始模式和普通模式之间切换: + +`stty {{raw|cooked}}` + +- 关闭或开启字符回显: + +`stty {{-echo|echo}}` + +- 显示帮助信息: + +`stty --help` diff --git a/pages.zh/common/tldr.md b/pages.zh/common/tldr.md index 3eaa807527..db567077fe 100644 --- a/pages.zh/common/tldr.md +++ b/pages.zh/common/tldr.md @@ -31,3 +31,7 @@ - 列出某个命令的所有可用子命令页面: `tldr {{[-l|--list]}} | grep {{命令}} | column` + +- 打印随机命令的 tldr 页面: + +`tldr {{[-l|--list]}} | shuf {{[-n|--head-count]}} 1 | xargs tldr` diff --git a/pages.zh/common/trap.md b/pages.zh/common/trap.md index 1d117c0cec..47dee1e7fe 100644 --- a/pages.zh/common/trap.md +++ b/pages.zh/common/trap.md @@ -1,21 +1,17 @@ # trap -> 在进程或操作系统接收到信号后自动执行命令。 +> 在接收到事件时执行命令。 > 可用于对用户中断或其他操作执行清理。 > 更多信息:. -- 列出设置 trap 的可用信号: +- 列出命令和预期事件的名称: -`trap -l` +`trap` -- 列出当前 shell 程序的活动 trap 程序: +- 在接收到信号时执行命令: -`trap -p` +`trap 'echo "捕获到信号 {{SIGHUP}}"' {{HUP}}` -- 设置 trap 以在检测到一个或多个信号时执行命令: +- 移除命令: -`trap 'echo "检测到信号 {{SIGHUP}}"' {{SIGHUP}}` - -- 移除活动 trap: - -`trap - {{SIGHUP}} {{SIGINT}}` +`trap - {{HUP}} {{INT}}` diff --git a/pages.zh/common/tree.md b/pages.zh/common/tree.md index d7fe633922..18488266f0 100644 --- a/pages.zh/common/tree.md +++ b/pages.zh/common/tree.md @@ -11,9 +11,9 @@ `tree -d` -- 同时显示隐藏文件: +- 同时显示隐藏文件并开启彩色输出: -`tree -a` +`tree -a -C` - 打印没有缩进行的树,显示完整路径(使用`-N`不转义空格和特殊字符): @@ -30,3 +30,7 @@ - 在树层次结构中查找目录,删除不属于所需目录的目录: `tree -P {{文件夹名}} --matchdirs --prune` + +- 忽略指定目录显示树: + +`tree -I '{{目录名1|目录名2}}'` diff --git a/pages.zh/common/uname.md b/pages.zh/common/uname.md index 01130d61bb..126d69aa1b 100644 --- a/pages.zh/common/uname.md +++ b/pages.zh/common/uname.md @@ -1,21 +1,37 @@ # uname > 输出关于当前机器和运行在该机器上的操作系统的详细信息。 -> 注意:如需了解操作系统的其他信息,请尝试使用 `lsb_release` 命令。 +> 另见 `lsb_release`。 > 更多信息:. -- 打印硬件相关信息:机器和处理器: +- 打印内核名称: -`uname -mp` +`uname` -- 打印软件相关信息:操作系统、发行号和版本: +- 打印所有可用的系统信息: -`uname -srv` +`uname {{[-a|--all]}}` -- 打印系统的名称(主机名): +- 打印系统架构和处理器信息: -`uname -n` +`uname {{[-mp|--machine --processor]}}` -- 打印所有可用的系统信息(硬件、软件、名称): +- 打印内核名称、内核版本号和内核版本: -`uname -a` +`uname {{[-srv|--kernel-name --kernel-release --kernel-version]}}` + +- 打印系统主机名: + +`uname {{[-n|--nodename]}}` + +- 打印当前操作系统名称: + +`uname {{[-o|--operating-system]}}` + +- 打印当前网络节点主机名: + +`uname {{[-n|--nodename]}}` + +- 显示帮助信息: + +`uname --help` diff --git a/pages.zh/common/units.md b/pages.zh/common/units.md index 98d1a7ed44..68244a54bb 100644 --- a/pages.zh/common/units.md +++ b/pages.zh/common/units.md @@ -7,6 +7,10 @@ `units` +- 在交互模式下列出包含特定字符串的所有单位: + +`search {{字符串}}` + - 显示两个简单单位之间的转换: `units {{quarts(夸脱)}} {{tablespoons(大汤匙)}}` @@ -17,11 +21,11 @@ - 显示两个复合单位之间的转换: -`units "{{meters(米) / second(秒)}}" "{{inches(英尺) / hour(小时)}}"` +`units "{{meters(米) / second(秒)}}" "{{inches(英寸) / hour(小时)}}"` - 显示具有不同维度的单位之间的转换: -`units "{{acres(英亩)}}" "{{ft(英尺)^2(平方)}}"` +`units "{{acres(英亩)}}" "{{ft^2(平方英尺)}}"` - 显示字节乘数的转换: diff --git a/pages.zh/common/wc.md b/pages.zh/common/wc.md index 621c17f984..240a86e95a 100644 --- a/pages.zh/common/wc.md +++ b/pages.zh/common/wc.md @@ -5,20 +5,24 @@ - 计数文件中的行数: -`wc {{[-l|--lines]}} {{文件}}` +`wc {{[-l|--lines]}} {{路径/到/文件}}` - 计数文件中的单词数: -`wc {{[-w|--words]}} {{文件}}` +`wc {{[-w|--words]}} {{路径/到/文件}}` -- 计数文件中的字符(字节): +- 计数文件中的字节数: -`wc {{[-c|--bytes]}} {{文件}}` +`wc {{[-c|--bytes]}} {{路径/到/文件}}` - 计数文件中的字符数(考虑所有多字节的字符): -`wc {{[-m|--chars]}} {{文件}}` +`wc {{[-m|--chars]}} {{路径/到/文件}}` -- 使用标准输入,按顺序计数行、单词和字符(字节): +- 使用 `stdin`,按顺序计数行、单词和字节: `{{find .}} | wc` + +- 计算最长行的长度(字符数): + +`wc {{[-L|--max-line-length]}} {{路径/到/文件}}` diff --git a/pages.zh/common/whereis.md b/pages.zh/common/whereis.md index ef37a5d98a..6378f4b937 100644 --- a/pages.zh/common/whereis.md +++ b/pages.zh/common/whereis.md @@ -1,6 +1,6 @@ # whereis -> 找到命令的二进制,源文件和手册文件。 +> 找到命令的二进制文件、源文件和手册文件。 > 更多信息:. - 找到 SSH 命令的二进制、源文件和手册页: @@ -11,10 +11,18 @@ `whereis -bm {{ls}}` -- 找到 `gc` 的源文件和 `git` 的手册页: +- 找到 `gcc` 的源文件和 `git` 的手册页: `whereis -s {{gcc}} -m {{git}}` - 仅在 /usr/bin/ 目录中查找 `gcc` 的二进制文件: `whereis -b -B {{/usr/bin/}} -f {{gcc}}` + +- 查找不寻常的二进制文件(系统上有多个或少于一个二进制文件的二进制文件): + +`whereis -u *` + +- 查找有不寻常手册条目的二进制文件(安装了多个或少于一个手册的二进制文件): + +`whereis -u -m *` diff --git a/pages.zh/common/z.md b/pages.zh/common/z.md index cf23108019..f64dbf1687 100644 --- a/pages.zh/common/z.md +++ b/pages.zh/common/z.md @@ -23,6 +23,10 @@ `z -l {{foo}}` -- 将当前文件夹从 `z`的数据库中移除: +- 将当前文件夹从 `z` 的数据库中移除: -`z -x .` +`z -x` + +- 限制匹配结果为当前目录的子目录: + +`z -c {{foo}}` diff --git a/pages.zh/common/zip.md b/pages.zh/common/zip.md index f392c9ac97..d7f235760b 100644 --- a/pages.zh/common/zip.md +++ b/pages.zh/common/zip.md @@ -1,36 +1,33 @@ # zip > 将文件打包并压缩(存档)为 zip 文件。 +> 另见:`unzip`。 > 更多信息:. -- 递归地打包和压缩文件和目录: +- 将文件/目录添加到指定存档中: -`zip -r {{压缩文件.zip}} {{路径/到/文件}} {{路径/到/目录1}} {{路径/到/目录2}}` +`zip {{[-r|--recurse-paths]}} {{路径/到/压缩文件.zip}} {{路径/到/文件或目录1 路径/到/文件或目录2 ...}}` -- 添加到压缩档案中并排除不需要的文件: +- 从指定存档中删除文件/目录: -`zip -r {{压缩文件.zip}} {{路径/到/目录}} -x {{路径/到/不需要的文件}}` +`zip {{[-d|--delete]}} {{路径/到/压缩文件.zip}} {{路径/到/文件或目录1 路径/到/文件或目录2 ...}}` -- 使用最高压缩级别 9 压缩目录和内容: +- 存档文件/目录,排除指定的文件/目录: -`zip -r -{{9}} {{压缩文件.zip}} {{路径/到/目录}}` +`zip {{[-r|--recurse-paths]}} {{路径/到/压缩文件.zip}} {{路径/到/文件或目录1 路径/到/文件或目录2 ...}} {{-x|--exclude}} {{路径/到/排除的文件或目录}}` -- 创建一个加密压缩档案(将会提示输入密码): +- 以指定的压缩级别存档文件/目录(`0` - 最低,`9` - 最高): -`zip -e -r {{压缩文件.zip}} {{路径/到/目录}}` +`zip {{[-r|--recurse-paths]}} -{{0..9}} {{路径/到/压缩文件.zip}} {{路径/到/文件或目录1 路径/到/文件或目录2 ...}}` -- 将文件添加到现有的 zip 文件: +- 创建一个加密的存档: -`zip {{压缩文件.zip}} {{路径/到/文件}}` +`zip {{[-r|--recurse-paths]}} {{[-e|--encrypt]}} {{路径/到/压缩文件.zip}} {{路径/到/文件或目录1 路径/到/文件或目录2 ...}}` -- 从现有 zip 文件中删除文件: +- 将文件/目录存档为多段分割的 zip 存档(例如每部分 3 GB): -`zip -d {{压缩文件.zip}} "{{foo/*.tmp}}"` +`zip {{[-r|--recurse-paths]}} {{[-s|--split-size]}} {{3g}} {{路径/到/压缩文件.zip}} {{路径/到/文件或目录1 路径/到/文件或目录2 ...}}` -- 将指定目录及其内容打包并拆分为多个 zip 文件(例如:若干个 3 GB 的 zip 包): +- 打印指定存档的内容: -`zip -r -s {{3g}} {{压缩文件.zip}} {{路径/到/目录}}` - -- 列出指定压缩档案中的文件(不提取文件): - -`zip -sf {{压缩文件.zip}}` +`zip {{[-sf|--split-size --freshen]}} {{路径/到/压缩文件.zip}}`