<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Bash on Ralph's Blog</title><link>https://pothos.dpdns.org/tags/bash/</link><description>Recent content in Bash on Ralph's Blog</description><generator>Hugo -- 0.147.7</generator><language>zh-cn</language><lastBuildDate>Thu, 25 Dec 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://pothos.dpdns.org/tags/bash/index.xml" rel="self" type="application/rss+xml"/><item><title>8.shell</title><link>https://pothos.dpdns.org/posts/8.shell/</link><pubDate>Thu, 25 Dec 2025 00:00:00 +0000</pubDate><guid>https://pothos.dpdns.org/posts/8.shell/</guid><description>&lt;h2 id="目录">目录&lt;/h2>
&lt;details>
&lt;summary>点击展开目录&lt;/summary>
&lt;ul>
&lt;li>&lt;a href="#%E7%9B%AE%E5%BD%95">目录&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%96%87%E4%BB%B6%E6%93%8D%E4%BD%9C">文件操作&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#%E6%96%87%E4%BB%B6%E6%9F%A5%E6%89%BE%E4%B8%8E%E8%BF%87%E6%BB%A4">文件查找与过滤&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%96%87%E4%BB%B6%E5%A4%84%E7%90%86">文件处理&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%96%87%E4%BB%B6%E5%8E%8B%E7%BC%A9">文件压缩&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%96%87%E4%BB%B6%E6%9D%83%E9%99%90%E7%AE%A1%E7%90%86">文件权限管理&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#hdfs%E6%93%8D%E4%BD%9C">HDFS操作&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#%E6%96%87%E4%BB%B6%E6%9F%A5%E7%9C%8B">文件查看&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%96%87%E4%BB%B6%E5%A4%A7%E5%B0%8F%E7%BB%9F%E8%AE%A1">文件大小统计&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0">文件上传&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#%E6%96%87%E6%9C%AC%E5%A4%84%E7%90%86">文本处理&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#%E6%96%87%E4%BB%B6%E8%AF%BB%E5%8F%96">文件读取&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%96%87%E6%9C%AC%E8%BF%87%E6%BB%A4">文本过滤&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E9%AB%98%E7%BA%A7%E6%96%87%E6%9C%AC%E5%A4%84%E7%90%86">高级文本处理&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#sed-%E6%B5%81%E7%BC%96%E8%BE%91%E5%99%A8">sed 流编辑器&lt;/a>&lt;/li>
&lt;li>&lt;a href="#awk-%E6%96%87%E6%9C%AC%E5%A4%84%E7%90%86%E5%B7%A5%E5%85%B7">awk 文本处理工具&lt;/a>&lt;/li>
&lt;li>&lt;a href="#grep-%E6%96%87%E6%9C%AC%E6%90%9C%E7%B4%A2%E5%B7%A5%E5%85%B7">grep 文本搜索工具&lt;/a>&lt;/li>
&lt;li>&lt;a href="#cut-%E5%88%97%E6%8F%90%E5%8F%96%E5%B7%A5%E5%85%B7">cut 列提取工具&lt;/a>&lt;/li>
&lt;li>&lt;a href="#sort-%E6%8E%92%E5%BA%8F%E5%B7%A5%E5%85%B7">sort 排序工具&lt;/a>&lt;/li>
&lt;li>&lt;a href="#uniq-%E5%8E%BB%E9%87%8D%E5%B7%A5%E5%85%B7">uniq 去重工具&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E7%BB%BC%E5%90%88%E5%BA%94%E7%94%A8%E7%A4%BA%E4%BE%8B">综合应用示例&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E7%AE%A1%E9%81%93%E6%93%8D%E4%BD%9C%E8%AF%A6%E8%A7%A3">管道操作详解&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#%E6%8E%A7%E5%88%B6%E7%BB%93%E6%9E%84">控制结构&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#%E6%9D%A1%E4%BB%B6%E5%88%A4%E6%96%AD">条件判断&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%88%86%E6%94%AF%E8%AF%AD%E5%8F%A5">分支语句&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%BE%AA%E7%8E%AF%E8%AF%AD%E5%8F%A5">循环语句&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%87%BD%E6%95%B0%E5%AE%9A%E4%B9%89">函数定义&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E4%BF%A1%E5%8F%B7%E4%B8%8E%E5%BC%82%E5%B8%B8%E5%A4%84%E7%90%86">信号与异常处理&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%A4%84%E7%90%86">字符串处理&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%9F%BA%E6%9C%AC%E6%93%8D%E4%BD%9C">字符串基本操作&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%AD%97%E7%AC%A6%E4%B8%B2%E6%88%AA%E5%8F%96%E4%B8%8E%E6%9B%BF%E6%8D%A2">字符串截取与替换&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%AD%97%E7%AC%A6%E4%B8%B2%E8%BD%AC%E6%8D%A2">字符串转换&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%AD%97%E7%AC%A6%E4%B8%B2%E6%AF%94%E8%BE%83%E4%B8%8E%E5%88%A4%E6%96%AD">字符串比较与判断&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%88%87%E5%89%B2%E7%94%9F%E6%88%90%E6%95%B0%E7%BB%84">字符串切割生成数组&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E5%A4%84%E7%90%86">正则表达式处理&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#%E6%95%B0%E7%BB%84%E6%93%8D%E4%BD%9C">数组操作&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#%E6%95%B0%E7%BB%84%E5%AE%9A%E4%B9%89%E4%B8%8E%E5%88%9D%E5%A7%8B%E5%8C%96">数组定义与初始化&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#%E7%B4%A2%E5%BC%95%E6%95%B0%E7%BB%84">索引数组&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%95%B0%E7%BB%84%E5%88%9D%E5%A7%8B%E5%8C%96%E6%8A%80%E5%B7%A7">数组初始化技巧&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#%E6%95%B0%E7%BB%84%E8%AE%BF%E9%97%AE%E4%B8%8E%E4%BF%AE%E6%94%B9">数组访问与修改&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#%E5%9F%BA%E6%9C%AC%E8%AE%BF%E9%97%AE%E6%93%8D%E4%BD%9C">基本访问操作&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%95%B0%E7%BB%84%E5%88%87%E7%89%87%E6%93%8D%E4%BD%9C">数组切片操作&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%95%B0%E7%BB%84%E4%BF%AE%E6%94%B9%E6%93%8D%E4%BD%9C">数组修改操作&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#%E6%95%B0%E7%BB%84%E9%81%8D%E5%8E%86">数组遍历&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#%E5%9F%BA%E6%9C%AC%E9%81%8D%E5%8E%86%E6%96%B9%E6%B3%95">基本遍历方法&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E9%AB%98%E7%BA%A7%E9%81%8D%E5%8E%86%E6%8A%80%E5%B7%A7">高级遍历技巧&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#%E6%95%B0%E7%BB%84%E6%93%8D%E4%BD%9C%E6%96%B9%E6%B3%95">数组操作方法&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#%E6%95%B0%E7%BB%84%E6%90%9C%E7%B4%A2%E4%B8%8E%E6%9F%A5%E6%89%BE">数组搜索与查找&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%95%B0%E7%BB%84%E6%8E%92%E5%BA%8F">数组排序&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%95%B0%E7%BB%84%E5%8E%BB%E9%87%8D%E4%B8%8E%E5%90%88%E5%B9%B6">数组去重与合并&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%95%B0%E7%BB%84-map-%E6%93%8D%E4%BD%9C">数组 Map 操作&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%88%86%E5%89%B2%E4%B8%8E%E6%95%B0%E7%BB%84%E7%94%9F%E6%88%90">字符串分割与数组生成&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%95%B0%E7%BB%84%E6%8E%92%E9%94%99%E4%B8%8E%E5%85%BC%E5%AE%B9%E6%80%A7">数组排错与兼容性&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#%E5%85%B3%E8%81%94%E6%95%B0%E7%BB%84">关联数组&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#%E5%85%B3%E8%81%94%E6%95%B0%E7%BB%84%E5%9F%BA%E7%A1%80">关联数组基础&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%85%B3%E8%81%94%E6%95%B0%E7%BB%84%E6%93%8D%E4%BD%9C">关联数组操作&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%85%B3%E8%81%94%E6%95%B0%E7%BB%84%E9%AB%98%E7%BA%A7%E5%BA%94%E7%94%A8">关联数组高级应用&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#%E6%95%B0%E7%BB%84%E5%AE%9E%E7%94%A8%E7%A4%BA%E4%BE%8B">数组实用示例&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%8F%82%E6%95%B0%E5%A4%84%E7%90%86">命令行参数处理&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%97%A5%E5%BF%97%E5%A4%84%E7%90%86%E7%B3%BB%E7%BB%9F">日志处理系统&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%95%B0%E6%8D%AE%E5%A4%84%E7%90%86%E7%AE%A1%E9%81%93">数据处理管道&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#%E6%95%B0%E5%AD%A6%E8%BF%90%E7%AE%97">数学运算&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#%E5%9F%BA%E6%9C%AC%E7%AE%97%E6%9C%AF%E8%BF%90%E7%AE%97">基本算术运算&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#%E6%95%B4%E6%95%B0%E8%BF%90%E7%AE%97">整数运算&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E4%BD%BF%E7%94%A8let%E5%91%BD%E4%BB%A4">使用let命令&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E4%BD%BF%E7%94%A8expr%E5%91%BD%E4%BB%A4">使用expr命令&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#%E9%AB%98%E7%BA%A7%E6%95%B0%E5%AD%A6%E8%BF%90%E7%AE%97">高级数学运算&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#%E6%B5%AE%E7%82%B9%E6%95%B0%E8%BF%90%E7%AE%97">浮点数运算&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E4%BD%BF%E7%94%A8awk%E8%BF%9B%E8%A1%8C%E6%95%B0%E5%AD%A6%E8%BF%90%E7%AE%97">使用awk进行数学运算&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#%E6%95%B0%E5%80%BC%E6%AF%94%E8%BE%83%E4%B8%8E%E5%88%A4%E6%96%AD">数值比较与判断&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#%E6%95%B0%E5%80%BC%E6%AF%94%E8%BE%83%E6%93%8D%E4%BD%9C">数值比较操作&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%95%B0%E5%80%BC%E8%8C%83%E5%9B%B4%E5%88%A4%E6%96%AD">数值范围判断&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#%E8%BF%9B%E5%88%B6%E8%BD%AC%E6%8D%A2">进制转换&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#%E4%B8%8D%E5%90%8C%E8%BF%9B%E5%88%B6%E4%B9%8B%E9%97%B4%E7%9A%84%E8%BD%AC%E6%8D%A2">不同进制之间的转换&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#%E9%9A%8F%E6%9C%BA%E6%95%B0%E7%94%9F%E6%88%90">随机数生成&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#%E7%94%9F%E6%88%90%E5%90%84%E7%A7%8D%E9%9A%8F%E6%9C%BA%E6%95%B0">生成各种随机数&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#%E6%95%B0%E5%AD%A6%E8%BF%90%E7%AE%97%E5%AE%9E%E7%94%A8%E7%A4%BA%E4%BE%8B">数学运算实用示例&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#%E7%BB%9F%E8%AE%A1%E8%AE%A1%E7%AE%97%E5%99%A8">统计计算器&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%95%B0%E5%AD%A6%E5%87%BD%E6%95%B0%E5%BA%93">数学函数库&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%8D%95%E4%BD%8D%E8%BD%AC%E6%8D%A2%E5%99%A8">单位转换器&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#%E8%BF%9B%E7%A8%8B%E7%AE%A1%E7%90%86">进程管理&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#%E8%BF%9B%E7%A8%8B%E7%9B%91%E6%8E%A7%E4%B8%8E%E6%8E%A7%E5%88%B6">进程监控与控制&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E7%BB%84%E5%90%88%E6%9F%A5%E6%9D%80%E5%AE%9E%E6%88%98%E7%B2%BE%E5%87%86%E5%AE%9A%E4%BD%8D%E4%B8%8E%E7%BB%88%E6%AD%A2">组合查杀实战（精准定位与终止）&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%90%8E%E5%8F%B0%E4%BB%BB%E5%8A%A1%E7%AE%A1%E7%90%86">后台任务管理&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#%E6%97%B6%E9%97%B4%E5%A4%84%E7%90%86">时间处理&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#%E6%97%A5%E6%9C%9F%E6%A0%BC%E5%BC%8F%E5%8C%96">日期格式化&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%97%B6%E9%97%B4%E8%AE%A1%E7%AE%97">时间计算&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#%E7%BD%91%E7%BB%9C%E8%AF%B7%E6%B1%82">网络请求&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#%E5%9F%BA%E6%9C%AC%E7%BD%91%E7%BB%9C%E5%91%BD%E4%BB%A4">基本网络命令&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E9%AB%98%E7%BA%A7%E7%BD%91%E7%BB%9C%E6%93%8D%E4%BD%9C">高级网络操作&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#curl-%E9%AB%98%E7%BA%A7%E7%94%A8%E6%B3%95%E4%B8%8E%E5%8F%98%E9%87%8F%E4%BC%A0%E9%80%92">curl 高级用法与变量传递&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#shell-%E4%B8%AD%E5%90%91-curl-%E4%BC%A0%E9%80%92%E5%8F%98%E9%87%8F%E7%9A%84%E6%A0%B8%E5%BF%83%E5%8E%9F%E5%88%99">Shell 中向 curl 传递变量的核心原则&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#%E5%9F%BA%E6%9C%AC%E5%8E%9F%E5%88%99%E5%8F%98%E9%87%8F%E5%B1%95%E5%BC%80">基本原则：变量展开&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%BC%95%E5%8F%B7%E4%BD%BF%E7%94%A8%E5%8F%A3%E8%AF%80">引号使用口诀&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#%E4%B8%8D%E5%90%8C%E5%9C%BA%E6%99%AF%E4%B8%8B%E7%9A%84%E5%8F%98%E9%87%8F%E4%BC%A0%E9%80%92%E6%96%B9%E6%B3%95">不同场景下的变量传递方法&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#get-%E8%AF%B7%E6%B1%82url-%E5%8F%82%E6%95%B0">GET 请求（URL 参数）&lt;/a>&lt;/li>
&lt;li>&lt;a href="#post-%E8%AF%B7%E6%B1%82%E8%A1%A8%E5%8D%95%E6%95%B0%E6%8D%AE">POST 请求（表单数据）&lt;/a>&lt;/li>
&lt;li>&lt;a href="#post-%E8%AF%B7%E6%B1%82json-%E6%95%B0%E6%8D%AE">POST 请求（JSON 数据）&lt;/a>&lt;/li>
&lt;li>&lt;a href="#header-%E4%B8%AD%E4%BC%A0%E9%80%92%E5%8F%98%E9%87%8F">Header 中传递变量&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%8F%98%E9%87%8F%E5%8C%85%E5%90%AB%E7%89%B9%E6%AE%8A%E5%AD%97%E7%AC%A6">变量包含特殊字符&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#shell-%E6%95%B0%E7%BB%84%E4%B8%8E-json-%E5%A4%84%E7%90%86">Shell 数组与 JSON 处理&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#shell-%E6%95%B0%E7%BB%84%E4%B8%8E%E5%AD%97%E7%AC%A6%E4%B8%B2%E7%9A%84%E5%8C%BA%E5%88%86">Shell 数组与字符串的区分&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E4%BD%BF%E7%94%A8-jq-%E5%AE%89%E5%85%A8%E7%94%9F%E6%88%90-json">使用 jq 安全生成 JSON&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%95%B0%E7%BB%84%E4%B8%8E-json-%E7%9A%84%E8%BD%AC%E6%8D%A2">数组与 JSON 的转换&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#shell-%E6%95%B0%E7%BB%84%E7%9A%84%E8%BF%9B%E9%98%B6%E6%93%8D%E4%BD%9C">Shell 数组的进阶操作&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#%E8%AE%A1%E7%AE%97%E6%95%B0%E7%BB%84%E4%BA%A4%E9%9B%86">计算数组交集&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%88%A4%E6%96%AD%E6%95%B0%E7%BB%84%E6%98%AF%E5%90%A6%E6%9C%89%E6%95%88">判断数组是否&amp;quot;有效&amp;quot;&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%95%B0%E7%BB%84%E7%9A%84%E6%B8%85%E6%B4%97%E4%B8%8E%E8%BF%87%E6%BB%A4">数组的清洗与过滤&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#%E8%84%9A%E6%9C%AC%E6%89%A7%E8%A1%8C%E7%8E%AF%E5%A2%83%E4%B8%8E%E5%B8%B8%E8%A7%81%E9%94%99%E8%AF%AF">脚本执行环境与常见错误&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#bash-%E4%B8%8E-sh-%E7%9A%84%E5%85%B3%E9%94%AE%E5%8C%BA%E5%88%AB">Bash 与 sh 的关键区别&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%B8%B8%E8%A7%81%E9%94%99%E8%AF%AF%E8%BF%9B%E7%A8%8B%E6%9B%BF%E6%8D%A2%E8%AF%AD%E6%B3%95%E9%94%99%E8%AF%AF">常见错误：进程替换语法错误&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E7%94%9F%E4%BA%A7%E8%84%9A%E6%9C%AC%E7%9A%84%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5">生产脚本的最佳实践&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#%E5%AE%9E%E6%88%98%E6%A1%88%E4%BE%8Bgeohash-%E6%A0%A1%E9%AA%8C%E8%84%9A%E6%9C%AC%E9%93%BE%E8%B7%AF">实战案例：geohash 校验脚本链路&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#%E5%AE%8C%E6%95%B4%E6%B5%81%E7%A8%8B%E4%B8%8E%E9%BB%84%E9%87%91%E6%A8%A1%E6%9D%BF">完整流程与黄金模板&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%85%B3%E9%94%AE%E9%99%B7%E9%98%B1%E4%B8%8E%E9%98%B2%E5%BE%A1%E6%80%A7%E7%BC%96%E7%A8%8B">关键陷阱与防御性编程&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#jq-%E5%B8%B8%E7%94%A8%E6%93%8D%E4%BD%9C">jq 常用操作&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#1-%E5%9F%BA%E7%A1%80%E7%94%A8%E6%B3%95">1. 基础用法&lt;/a>&lt;/li>
&lt;li>&lt;a href="#2-%E5%AD%97%E6%AE%B5%E6%8F%90%E5%8F%96%E4%B8%8E%E8%AE%BF%E9%97%AE">2. 字段提取与访问&lt;/a>&lt;/li>
&lt;li>&lt;a href="#3-%E6%95%B0%E7%BB%84%E6%93%8D%E4%BD%9C">3. 数组操作&lt;/a>&lt;/li>
&lt;li>&lt;a href="#4-%E8%BF%87%E6%BB%A4%E4%B8%8E%E8%BD%AC%E6%8D%A2-map--select">4. 过滤与转换 (Map &amp;amp; Select)&lt;/a>&lt;/li>
&lt;li>&lt;a href="#5-%E6%8E%92%E5%BA%8F%E4%B8%8E%E5%8E%BB%E9%87%8D">5. 排序与去重&lt;/a>&lt;/li>
&lt;li>&lt;a href="#6-%E6%9E%84%E9%80%A0%E4%B8%8E%E4%BF%AE%E6%94%B9-json">6. 构造与修改 JSON&lt;/a>&lt;/li>
&lt;li>&lt;a href="#7-%E9%AB%98%E7%BA%A7%E7%BB%9F%E8%AE%A1%E4%B8%8E%E8%AE%A1%E7%AE%97">7. 高级统计与计算&lt;/a>&lt;/li>
&lt;li>&lt;a href="#8-%E6%A0%BC%E5%BC%8F%E8%BD%AC%E6%8D%A2">8. 格式转换&lt;/a>&lt;/li>
&lt;li>&lt;a href="#9-%E5%A4%84%E7%90%86-json-%E8%A1%8C%E6%96%87%E4%BB%B6-ndjson">9. 处理 JSON 行文件 (NDJSON)&lt;/a>&lt;/li>
&lt;li>&lt;a href="#10-%E5%B8%B8%E7%94%A8%E5%AE%9E%E6%88%98%E5%9C%BA%E6%99%AF">10. 常用实战场景&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#%E7%BB%88%E7%AB%AF%E4%BB%A3%E7%90%86%E9%85%8D%E7%BD%AE">终端代理配置&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#windows-powershell%E4%BB%A3%E7%90%86">Windows PowerShell代理&lt;/a>&lt;/li>
&lt;li>&lt;a href="#windows-cmd%E4%BB%A3%E7%90%86">Windows CMD代理&lt;/a>&lt;/li>
&lt;li>&lt;a href="#git-bash%E4%BB%A3%E7%90%86">Git Bash代理&lt;/a>&lt;/li>
&lt;li>&lt;a href="#mac%E7%BB%88%E7%AB%AF%E4%BB%A3%E7%90%86">Mac终端代理&lt;/a>&lt;/li>
&lt;li>&lt;a href="#linux%E7%BB%88%E7%AB%AF%E4%BB%A3%E7%90%86">Linux终端代理&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E4%BB%A3%E7%90%86%E6%B5%8B%E8%AF%95%E4%B8%8E%E6%95%85%E9%9A%9C%E6%8E%92%E9%99%A4">代理测试与故障排除&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E4%BB%A3%E7%90%86%E7%AE%A1%E7%90%86%E8%84%9A%E6%9C%AC">代理管理脚本&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#windows-%E7%BD%91%E7%BB%9C%E8%AF%8A%E6%96%AD">Windows 网络诊断&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%B7%A5%E5%85%B7">常用命令行工具&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E7%BD%91%E5%8D%A1%E4%BF%A1%E6%81%AF%E8%A7%A3%E8%AF%BB%E5%AE%9E%E6%88%98">网卡信息解读实战&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%A4%9A%E7%BD%91%E5%8D%A1%E8%B7%AF%E7%94%B1%E4%BC%98%E5%85%88%E7%BA%A7">多网卡路由优先级&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83">开发环境&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#nodejs-%E7%AE%A1%E7%90%86">Node.js 管理&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#%E7%B3%BB%E7%BB%9F%E7%9B%91%E6%8E%A7">系统监控&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#%E8%B5%84%E6%BA%90%E4%BD%BF%E7%94%A8%E7%9B%91%E6%8E%A7">资源使用监控&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%97%A5%E5%BF%97%E5%88%86%E6%9E%90">日志分析&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#%E6%80%A7%E8%83%BD%E5%88%86%E6%9E%90">性能分析&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7">性能测试工具&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96%E6%8A%80%E5%B7%A7">性能优化技巧&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#%E5%AE%89%E5%85%A8%E6%93%8D%E4%BD%9C">安全操作&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#%E6%9D%83%E9%99%90%E7%AE%A1%E7%90%86">权限管理&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%8A%A0%E5%AF%86%E4%B8%8E%E8%A7%A3%E5%AF%86">加密与解密&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#%E6%95%B0%E6%8D%AE%E5%BA%93%E6%93%8D%E4%BD%9C">数据库操作&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#mysql%E6%93%8D%E4%BD%9C">MySQL操作&lt;/a>&lt;/li>
&lt;li>&lt;a href="#postgresql%E6%93%8D%E4%BD%9C">PostgreSQL操作&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#%E8%87%AA%E5%8A%A8%E5%8C%96%E8%84%9A%E6%9C%AC%E7%A4%BA%E4%BE%8B">自动化脚本示例&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#%E5%AE%9A%E6%97%B6%E5%A4%87%E4%BB%BD">定时备份&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%89%B9%E9%87%8F%E5%A4%84%E7%90%86">批量处理&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#windows-%E5%B8%B8%E7%94%A8%E6%93%8D%E4%BD%9C">Windows 常用操作&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#powershell-%E5%9F%BA%E7%A1%80">PowerShell 基础&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%96%87%E4%BB%B6%E4%B8%8E%E7%9B%AE%E5%BD%95%E6%93%8D%E4%BD%9C">文件与目录操作&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E7%BD%91%E7%BB%9C%E6%93%8D%E4%BD%9C">网络操作&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E8%BF%9B%E7%A8%8B%E4%B8%8E%E7%B3%BB%E7%BB%9F%E7%AE%A1%E7%90%86">进程与系统管理&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%B8%B8%E7%94%A8%E5%BF%AB%E6%8D%B7%E9%94%AE%E4%B8%8E%E6%8A%80%E5%B7%A7">常用快捷键与技巧&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#%E7%BB%88%E7%AB%AF%E5%A4%8D%E7%94%A8tmux">终端复用（tmux）&lt;/a>&lt;/li>
&lt;li>&lt;a href="#cloudflare-wrangler">Cloudflare Wrangler&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE">安装与配置&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86">项目管理&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%BC%80%E5%8F%91%E8%B0%83%E8%AF%95">开发调试&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E9%83%A8%E7%BD%B2%E5%8F%91%E5%B8%83">部署发布&lt;/a>&lt;/li>
&lt;li>&lt;a href="#pages%E9%9D%99%E6%80%81%E7%AB%99%E7%82%B9%E5%8D%9A%E5%AE%A2%E9%83%A8%E7%BD%B2">Pages（静态站点/博客部署）&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%B8%B8%E7%94%A8%E8%B5%84%E6%BA%90%E6%93%8D%E4%BD%9C">常用资源操作&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6-wranglertoml">配置文件 (wrangler.toml)&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#hugo">Hugo&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#%E5%AE%89%E8%A3%85%E4%B8%8E%E7%89%88%E6%9C%AC">安装与版本&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%9C%AC%E5%9C%B0%E5%BC%80%E5%8F%91">本地开发&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%86%85%E5%AE%B9%E7%BC%96%E5%86%99">内容编写&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%9E%84%E5%BB%BA%E5%8F%91%E5%B8%83">构建发布&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E9%85%8D%E5%90%88-cloudflare-pagesdirect-upload">配合 Cloudflare Pages（Direct Upload）&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E4%B8%BB%E9%A2%98%E4%B8%8E%E6%A8%A1%E5%9D%97%E5%B8%B8%E8%A7%81%E7%BB%B4%E6%8A%A4">主题与模块（常见维护）&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E4%B8%BB%E9%A2%98%E6%9C%AC%E5%9C%B0%E8%BF%9C%E7%A8%8B%E4%B8%8D%E4%B8%80%E8%87%B4%E6%8E%92%E6%9F%A5%E4%B8%8E%E4%BF%AE%E5%A4%8D">主题本地/远程不一致（排查与修复）&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#openskills">OpenSkills&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE-1">安装与配置&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%8A%80%E8%83%BD%E7%AE%A1%E7%90%86">技能管理&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%B8%B8%E7%94%A8%E5%AE%89%E8%A3%85%E6%BA%90">常用安装源&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/details>
&lt;h2 id="文件操作">文件操作&lt;/h2>
&lt;h3 id="文件查找与过滤">文件查找与过滤&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 查找目录下以8位数字结尾的文件（YYYYMMDD格式）&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>find /path/to/dir -type f -regextype posix-extended -regex &lt;span style="color:#e6db74">&amp;#39;.*[0-9]{8}$&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 检查文件是否存在&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">if&lt;/span> &lt;span style="color:#f92672">[&lt;/span> ! -f &lt;span style="color:#e6db74">&amp;#34;&lt;/span>$file&lt;span style="color:#e6db74">&amp;#34;&lt;/span> &lt;span style="color:#f92672">]&lt;/span>; &lt;span style="color:#66d9ef">then&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#e6db74">&amp;#34;File not found: &lt;/span>$file&lt;span style="color:#e6db74">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> exit &lt;span style="color:#ae81ff">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">fi&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 查找最近7天修改过的文件&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>find /path/to/dir -type f -mtime -7
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 查找大于100MB的文件&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>find /path/to/dir -type f -size +100M
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 查找并删除空文件&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>find /path/to/dir -type f -empty -delete
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 查找特定权限的文件&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>find /path/to/dir -type f -perm &lt;span style="color:#ae81ff">644&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="文件处理">文件处理&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 分割大文件&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>split -b 10M large_file.txt output_
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 合并文件&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>cat output_* &amp;gt; combined_file.txt
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 按行分割文件&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>split -l &lt;span style="color:#ae81ff">1000&lt;/span> large_file.txt output_
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 批量重命名文件&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>rename &lt;span style="color:#e6db74">&amp;#39;s/\.txt$/.md/&amp;#39;&lt;/span> *.txt &lt;span style="color:#75715e"># 将所有.txt文件重命名为.md&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 查找重复文件&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>fdupes -r /path/to/directory
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 创建文件链接&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>ln -s /path/to/original /path/to/link &lt;span style="color:#75715e"># 软链接&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>ln /path/to/original /path/to/link &lt;span style="color:#75715e"># 硬链接&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 查看二进制文件&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>hexdump -C binary_file | head
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 查看文件类型&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>file filename
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 批量替换文件内容&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>find . -type f -name &lt;span style="color:#e6db74">&amp;#34;*.txt&amp;#34;&lt;/span> -exec sed -i &lt;span style="color:#e6db74">&amp;#39;s/old_text/new_text/g&amp;#39;&lt;/span> &lt;span style="color:#f92672">{}&lt;/span> &lt;span style="color:#ae81ff">\;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 递归创建目录&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>mkdir -p path/to/nested/directory
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="文件压缩">文件压缩&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 压缩文件&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>gzip a.txt &lt;span style="color:#75715e"># 压缩并删除原文件&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>gzip -c a.txt &lt;span style="color:#75715e"># 压缩并保留原文件&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 解压文件&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>gunzip your_file.txt.gz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># tar压缩&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>tar -czvf archive.tar.gz directory/ &lt;span style="color:#75715e"># 创建gzip压缩的tar归档&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>tar -cjvf archive.tar.bz2 directory/ &lt;span style="color:#75715e"># 创建bzip2压缩的tar归档&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># tar解压&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>tar -xzvf archive.tar.gz &lt;span style="color:#75715e"># 解压gzip压缩的tar归档&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>tar -xjvf archive.tar.bz2 &lt;span style="color:#75715e"># 解压bzip2压缩的tar归档&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># zip压缩&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>zip -r archive.zip directory/
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># zip解压&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>unzip archive.zip
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="文件权限管理">文件权限管理&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 修改文件权限&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>chmod &lt;span style="color:#ae81ff">755&lt;/span> file.sh &lt;span style="color:#75715e"># 设置可执行权限&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>chmod -R &lt;span style="color:#ae81ff">644&lt;/span> dir/ &lt;span style="color:#75715e"># 递归修改目录下所有文件权限&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 修改文件所有者&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>chown user:group file.txt
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>chown -R user:group directory/ &lt;span style="color:#75715e"># 递归修改&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 设置SUID/SGID/Sticky位&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>chmod u+s file &lt;span style="color:#75715e"># 设置SUID&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>chmod g+s directory &lt;span style="color:#75715e"># 设置SGID&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>chmod +t directory &lt;span style="color:#75715e"># 设置Sticky位&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 复制权限&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>getfacl source_file | setfacl --set-file&lt;span style="color:#f92672">=&lt;/span>- target_file
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 添加ACL权限&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>setfacl -m u:user:rwx file.txt &lt;span style="color:#75715e"># 为特定用户添加权限&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>setfacl -m g:group:rx file.txt &lt;span style="color:#75715e"># 为特定组添加权限&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="hdfs操作">HDFS操作&lt;/h2>
&lt;h3 id="文件查看">文件查看&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 列出HDFS目录下以8位数字结尾的文件&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>hadoop fs -ls /path/to/dir | awk &lt;span style="color:#e6db74">&amp;#39;$NF ~ /[0-9]{8}$/ {print $NF}&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 使用grep过滤HDFS目录&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>hadoop fs -ls /data/dept/bi/dim/data | grep -E &lt;span style="color:#e6db74">&amp;#34;[0-9]{8}&lt;/span>$&lt;span style="color:#e6db74">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="文件大小统计">文件大小统计&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 获取目录文件大小并选择最后一行&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>hadoop fs -du -h $line | tail -n &lt;span style="color:#ae81ff">1&lt;/span> &amp;gt;&amp;gt; file_size_result.txt
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="文件上传">文件上传&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">### 多行文件上传&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>cat &lt;span style="color:#e6db74">&amp;lt;&amp;lt;EOF | hdfs dfs -put - /path/in/hdfs/multiline.txt
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74">This is line 1
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74">This is line 2
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74">This is line 3
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74">EOF&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="文本处理">文本处理&lt;/h2>
&lt;h3 id="文件读取">文件读取&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 遍历文件每一行&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>file&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;example.txt&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">while&lt;/span> IFS&lt;span style="color:#f92672">=&lt;/span> read -r line; &lt;span style="color:#66d9ef">do&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#e6db74">&amp;#34;&lt;/span>$line&lt;span style="color:#e6db74">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">done&lt;/span> &amp;lt; &lt;span style="color:#e6db74">&amp;#34;&lt;/span>$file&lt;span style="color:#e6db74">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 另一种读取方式&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>cat &lt;span style="color:#e6db74">&amp;#34;&lt;/span>$file&lt;span style="color:#e6db74">&amp;#34;&lt;/span> | &lt;span style="color:#66d9ef">while&lt;/span> read line; &lt;span style="color:#66d9ef">do&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> echo &lt;span style="color:#e6db74">&amp;#34;&lt;/span>$line&lt;span style="color:#e6db74">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">done&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="文本过滤">文本过滤&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 查看grep过滤结果的前100个字符&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>grep &lt;span style="color:#e6db74">&amp;#34;关键词&amp;#34;&lt;/span> file.txt | cut -c 1-100
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 显示匹配行及其后5行&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>curl -s &lt;span style="color:#e6db74">&amp;#34;http://localhost:8080/hotsearch&amp;#34;&lt;/span> | grep -A &lt;span style="color:#ae81ff">5&lt;/span> &lt;span style="color:#e6db74">&amp;#34;wallpaper-menu&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="高级文本处理">高级文本处理&lt;/h3>
&lt;h4 id="sed-流编辑器">sed 流编辑器&lt;/h4>
&lt;p>&lt;strong>基本语法&lt;/strong>&lt;/p></description></item></channel></rss>