<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Linux :: Tag :: Ay Docs</title>
    <link>https://ops.docs.72602.space/tags/linux/index.html</link>
    <description></description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Sun, 07 Sep 2025 19:58:45 +0800</lastBuildDate>
    <atom:link href="https://ops.docs.72602.space/tags/linux/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Echo</title>
      <link>https://ops.docs.72602.space/linux/command/echo/index.html</link>
      <pubDate>Sun, 07 Sep 2025 19:58:45 +0800</pubDate>
      <guid>https://ops.docs.72602.space/linux/command/echo/index.html</guid>
      <description>在Windows批处理中（使用ECHO命令） ECHO 这是要写入的内容 &gt; filename.txt ECHO 这是要追加的内容 &gt;&gt; filename.txt 在Linux/macOS Shell中 echo &#34;这是要写入的内容&#34; &gt; filename.txt echo &#34;这是要追加的内容&#34; &gt;&gt; filename.txt 在Python中 # 写入文件（覆盖） with open(&#39;filename.txt&#39;, &#39;w&#39;, encoding=&#39;utf-8&#39;) as f: f.write(&#34;这是要写入的内容\n&#34;) # 追加内容 with open(&#39;filename.txt&#39;, &#39;a&#39;, encoding=&#39;utf-8&#39;) as f: f.write(&#34;这是要追加的内容\n&#34;) 在PowerShell中 &#34;这是要写入的内容&#34; | Out-File -FilePath filename.txt &#34;这是要追加的内容&#34; | Out-File -FilePath filename.txt -Append 在JavaScript (Node.js) 中 const fs = require(&#39;fs&#39;); // 写入文件（覆盖） fs.writeFileSync(&#39;filename.txt&#39;, &#39;这是要写入的内容\n&#39;); // 追加内容 fs.appendFileSync(&#39;filename.txt&#39;, &#39;这是要追加的内容\n&#39;);</description>
    </item>
    <item>
      <title>Grep</title>
      <link>https://ops.docs.72602.space/linux/command/grep/index.html</link>
      <pubDate>Sun, 07 Sep 2025 19:58:45 +0800</pubDate>
      <guid>https://ops.docs.72602.space/linux/command/grep/index.html</guid>
      <description>grep 是 Linux 中强大的文本搜索工具，其名称来源于 “Global Regular Expression Print”。以下是 grep 命令的常见用法：&#xA;基本语法 grep [选项] 模式 [文件...] 常用选项 1. 基础搜索 # 在文件中搜索包含&#34;error&#34;的行 grep &#34;error&#34; filename.log # 搜索时忽略大小写 grep -i &#34;error&#34; filename.log # 显示不匹配的行 grep -v &#34;success&#34; filename.log # 显示匹配的行号 grep -n &#34;pattern&#34; filename.txt 2. 递归搜索 # 在当前目录及子目录中递归搜索 grep -r &#34;function_name&#34; . # 递归搜索并显示文件名 grep -r -l &#34;text&#34; /path/to/directory 3. 输出控制 # 只显示匹配的文件名（不显示具体行） grep -l &#34;pattern&#34; *.txt # 显示匹配行前后的内容 grep -A 3 &#34;error&#34; logfile.txt # 显示匹配行后3行 grep -B 2 &#34;error&#34; logfile.txt # 显示匹配行前2行 grep -C 2 &#34;error&#34; logfile.txt # 显示匹配行前后各2行 # 只显示匹配的部分（而非整行） grep -o &#34;pattern&#34; file.txt 4. 正则表达式 # 使用扩展正则表达式 grep -E &#34;pattern1|pattern2&#34; file.txt # 匹配以&#34;start&#34;开头的行 grep &#34;^start&#34; file.txt # 匹配以&#34;end&#34;结尾的行 grep &#34;end$&#34; file.txt # 匹配空行 grep &#34;^$&#34; file.txt # 使用字符类 grep &#34;[0-9]&#34; file.txt # 包含数字的行 grep &#34;[a-zA-Z]&#34; file.txt # 包含字母的行 5. 文件处理 # 从多个文件中搜索 grep &#34;text&#34; file1.txt file2.txt # 使用通配符 grep &#34;pattern&#34; *.log # 从标准输入读取 cat file.txt | grep &#34;pattern&#34; echo &#34;some text&#34; | grep &#34;text&#34; 6. 统计信息 # 统计匹配的行数 grep -c &#34;pattern&#34; file.txt # 统计匹配的次数（可能一行有多个匹配） grep -o &#34;pattern&#34; file.txt | wc -l 实用示例 1. 日志分析 # 查找今天的错误日志 grep &#34;ERROR&#34; /var/log/syslog | grep &#34;$(date &#39;+%Y-%m-%d&#39;)&#34; # 查找包含IP地址的行 grep -E &#34;[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+&#34; access.log 2. 代码搜索 # 在项目中查找函数定义 grep -r &#34;function_name(&#34; src/ # 查找包含TODO或FIXME的注释 grep -r -E &#34;TODO|FIXME&#34; ./ # 查找空行并统计数量 grep -c &#34;^$&#34; source_code.py 3. 系统监控 # 查看特定进程 ps aux | grep &#34;nginx&#34; # 检查端口占用 netstat -tulpn | grep &#34;:80&#34; 4. 文件内容检查 # 检查配置文件中的有效设置（忽略注释和空行） grep -v &#34;^#&#34; /etc/ssh/sshd_config | grep -v &#34;^$&#34; # 查找包含邮箱地址的行 grep -E &#34;\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b&#34; file.txt 高级技巧 1. 使用上下文 # 显示错误及其上下文 grep -C 3 -i &#34;error&#34; application.log 2. 反向引用 # 使用扩展正则表达式的分组 grep -E &#34;(abc).*\1&#34; file.txt # 查找重复的&#34;abc&#34; 3. 二进制文件搜索 # 在二进制文件中搜索文本字符串 grep -a &#34;text&#34; binaryfile 4. 颜色高亮 # 启用颜色高亮（通常默认开启） grep --color=auto &#34;pattern&#34; file.txt 常用组合 与其它命令配合 # 查找并排序 grep &#34;pattern&#34; file.txt | sort # 查找并计数 grep -o &#34;pattern&#34; file.txt | sort | uniq -c # 查找并保存结果 grep &#34;error&#34; logfile.txt &gt; errors.txt 这些是 grep 命令最常用的用法，掌握它们可以大大提高在 Linux 环境下处理文本的效率。</description>
    </item>
    <item>
      <title>Sed</title>
      <link>https://ops.docs.72602.space/linux/command/sed/index.html</link>
      <pubDate>Sun, 07 Sep 2025 19:58:45 +0800</pubDate>
      <guid>https://ops.docs.72602.space/linux/command/sed/index.html</guid>
      <description>sed（Stream Editor）是 Linux 中强大的流编辑器，用于对文本进行过滤和转换。以下是 sed 命令的常见用法：&#xA;基本语法 sed [选项] &#39;命令&#39; 文件 sed [选项] -e &#39;命令1&#39; -e &#39;命令2&#39; 文件 sed [选项] -f 脚本文件 文件 常用选项 1. 基础选项 # 编辑文件并备份原文件 sed -i.bak &#39;s/old/new/g&#39; file.txt # 直接修改文件（无备份） sed -i &#39;s/old/new/g&#39; file.txt # 只打印匹配的行 sed -n &#39;命令&#39; file.txt # 使用扩展正则表达式 sed -E &#39;命令&#39; file.txt 文本替换 1. 基本替换 # 替换每行第一个匹配 sed &#39;s/old/new/&#39; file.txt # 替换所有匹配（全局替换） sed &#39;s/old/new/g&#39; file.txt # 替换第N次出现的匹配 sed &#39;s/old/new/2&#39; file.txt # 替换第二次出现 # 只替换匹配的行 sed &#39;/pattern/s/old/new/g&#39; file.txt 2. 替换分隔符 # 当模式包含斜杠时，可以使用其他分隔符 sed &#39;s|/usr/local|/opt|g&#39; file.txt sed &#39;s#old#new#g&#39; file.txt 3. 引用和转义 # 使用&amp;引用匹配的整个文本 sed &#39;s/[0-9]*/[&amp;]/g&#39; file.txt # 使用分组引用 sed &#39;s/\([a-z]*\) \([a-z]*\)/\2 \1/&#39; file.txt sed -E &#39;s/([a-z]*) ([a-z]*)/\2 \1/&#39; file.txt # 扩展正则表达式 行操作 1. 行寻址 # 指定行号 sed &#39;5s/old/new/&#39; file.txt # 只对第5行替换 sed &#39;1,5s/old/new/g&#39; file.txt # 1-5行替换 sed &#39;5,$s/old/new/g&#39; file.txt # 第5行到最后一行 # 使用正则表达式匹配行 sed &#39;/^#/s/old/new/&#39; file.txt # 只对以#开头的行 sed &#39;/start/,/end/s/old/new/g&#39; file.txt # 从start到end的行 2. 删除行 # 删除空行 sed &#39;/^$/d&#39; file.txt # 删除注释行 sed &#39;/^#/d&#39; file.txt # 删除特定行号 sed &#39;5d&#39; file.txt # 删除第5行 sed &#39;1,5d&#39; file.txt # 删除1-5行 sed &#39;/pattern/d&#39; file.txt # 删除匹配模式的行 3. 插入和添加 # 在指定行前插入 sed &#39;5i\插入的内容&#39; file.txt # 在指定行后添加 sed &#39;5a\添加的内容&#39; file.txt # 在文件开头插入 sed &#39;1i\开头内容&#39; file.txt # 在文件末尾添加 sed &#39;$a\结尾内容&#39; file.txt 4. 修改行 # 替换整行 sed &#39;5c\新的行内容&#39; file.txt # 替换匹配模式的行 sed &#39;/pattern/c\新的行内容&#39; file.txt 高级操作 1. 打印控制 # 只打印匹配的行（类似grep） sed -n &#39;/pattern/p&#39; file.txt # 打印行号 sed -n &#39;/pattern/=&#39; file.txt # 同时打印行号和内容 sed -n &#39;/pattern/{=;p}&#39; file.txt 2. 多重命令 # 使用分号分隔多个命令 sed &#39;s/old/new/g; s/foo/bar/g&#39; file.txt # 使用-e选项 sed -e &#39;s/old/new/&#39; -e &#39;s/foo/bar/&#39; file.txt # 对同一行执行多个操作 sed &#39;/pattern/{s/old/new/; s/foo/bar/}&#39; file.txt 3. 文件操作 # 读取文件并插入 sed &#39;/pattern/r otherfile.txt&#39; file.txt # 将匹配行写入文件 sed &#39;/pattern/w output.txt&#39; file.txt 4. 保持空间操作 # 模式空间与保持空间交换 sed &#39;1!G;h;$!d&#39; file.txt # 反转文件行顺序 # 复制到保持空间 sed &#39;/pattern/h&#39; file.txt # 从保持空间取回 sed &#39;/pattern/g&#39; file.txt 实用示例 1. 配置文件修改 # 修改SSH端口 sed -i &#39;s/^#Port 22/Port 2222/&#39; /etc/ssh/sshd_config # 启用root登录 sed -i &#39;s/^#PermitRootLogin yes/PermitRootLogin yes/&#39; /etc/ssh/sshd_config # 注释掉某行 sed -i &#39;/pattern/s/^/#/&#39; file.txt # 取消注释 sed -i &#39;/pattern/s/^#//&#39; file.txt 2. 日志处理 # 提取时间戳 sed -n &#39;s/.*\([0-9]\{2\}:[0-9]\{2\}:[0-9]\{2\}\).*/\1/p&#39; logfile # 删除空白字符 sed &#39;s/^[ \t]*//;s/[ \t]*$//&#39; file.txt 3. 文本格式化 # 每行末尾添加逗号 sed &#39;s/$/,/&#39; file.txt # 合并连续空行 sed &#39;/^$/{N;/^\n$/D}&#39; file.txt # 在每行前添加行号 sed = file.txt | sed &#39;N;s/\n/\t/&#39; 4. 数据转换 # CSV转TSV sed &#39;s/,/\t/g&#39; data.csv # 转换日期格式 sed -E &#39;s/([0-9]{4})-([0-9]{2})-([0-9]{2})/\3\/\2\/\1/g&#39; dates.txt # URL编码解码（简单版本） echo &#34;hello world&#34; | sed &#39;s/ /%20/g&#39; 5. 脚本文件使用 # 创建sed脚本 cat &gt; script.sed &lt;&lt; EOF s/old/new/g /^#/d /^$/d EOF # 使用脚本文件 sed -f script.sed file.txt 常用组合技巧 1. 与管道配合 # 查找并替换 grep &#34;pattern&#34; file.txt | sed &#39;s/old/new/g&#39; # 处理命令输出 ls -l | sed -n &#39;2,$p&#39; | awk &#39;{print $9}&#39; 2. 复杂文本处理 # 提取XML/HTML标签内容 sed -n &#39;s/.*&lt;title&gt;\(.*\)&lt;\/title&gt;.*/\1/p&#39; file.html # 处理配置文件段落的示例 sed -n &#39;/^\[database\]/,/^\[/p&#39; config.ini | sed &#39;/^\[/d&#39; 这些 sed 命令用法涵盖了大多数日常文本处理需求，掌握它们可以高效地进行批量文本编辑和转换操作。</description>
    </item>
    <item>
      <title>UFW</title>
      <link>https://ops.docs.72602.space/linux/command/ufw/index.html</link>
      <pubDate>Sun, 07 Sep 2025 19:58:45 +0800</pubDate>
      <guid>https://ops.docs.72602.space/linux/command/ufw/index.html</guid>
      <description>add allow rule ufw allow 80/tcp delete allow rule ufw delete allow 3000/tcp</description>
    </item>
  </channel>
</rss>