← 返回博客 学习笔记 Linux RHCE RHCE:sed流编辑器和shell基础 2026年07月04日 · 65 阅读 ## sed 流编辑器 类似于vim编辑器,能修改文件内容,对内容进行删除、插入、替换等功能 sed是一行一行的读取文件内容,在处理的时候,将内容放到模式空间(临时缓冲区)中,模式空间内部所有的内容处理完成,将打印在屏幕上 sed默认处理的是模式空间中的内容,源文件不改变 `-n` 不输出模式空间的内容 `-i`编辑源文件 `-i.bak`编辑源文件并储存一份备份 `-e`执行多条命令 `-r`默认支持基本正常,`-r`支持扩展正则 ``` sed -n '/root/p' /etc/passwd 不输出模式空间的内容,打印有root的那一行 sed -i.bak '/root/d' /etc/passwd 修改文件内容之前先备份再修改,/root/d 删除root关键字 sed -e ’s/root/huawei‘ -e ’/rot/d‘ file 执行多条命令,s/root/huawei 将root关键字替换为华为 ``` ### 地址定界 使用sed需要指定处理的行数/关键字,如果不指定默认处理所有的 `#`:代表数字,指定要处理的行数 ``` sed '10p' file 打印第十行的内容 sed '10d' file 删除第十行的内容 ``` `$`:代表文件的最后一行 ``` sed '$p' file 打印最后一行的内容 sed '$d' file 删除最后一行的内容 ``` `/regexp/`表示匹配regexp所在的行,可以基于基本正则和扩展正则进行匹配 ``` sed -n 'root/p' file ``` `/regexp/I` 不区分大小写 ``` sed -n '/root/Ip' file ``` `\%regexp%`转义匹配,比如匹配/bin/bash这种特殊字符,内部的%可以改变,但要首尾对应 ``` sed '\%/bin/bash%p' /etc/passwd -n sed '\1/bin/bash1p' /etc/passwd -n sed '\w/bin/bashwp' /etc/passwd -n ``` `addr1,addr2`指定行范围或从第x行到某个关键字的所在行 ``` sed -n '1,20p' file 输出打印1-20行 sed -n '1,/root/p' file 从第一行开始输出直到匹配到root那一行 sed -n ‘/root/,/test/p’ file 匹配从root行到test行中间的所有行并打印 ``` `1~2`指定起始位置及步长,例如1~2表示1、3、5行,就是1+2+2+2+2+2.....行 ``` sed '1-2p' file -n ``` `addr1,+n`指定行以及以后的N行 ``` sed -n '1,+10n' file 从第一行开始往后匹配10行(一共输出11行 ``` `adr1,~n`从第一行开始,往下匹配到第10行,同等与 `1,2` ### `sed`常用编辑命令 `p`:打印模式空间的内容 `d`:删除匹配到的行 `a\test`在匹配的行后面一行追加内容 ``` sed -n ‘/root/a\test’ file 在匹配到的行后面加一行内容 sed -n '1a\test' file 在匹配的行数后面加一行内容 ``` `i\test`在匹配的行前面一行追加内容 `c\test`修改匹配的行(把这一行内容都进行修改 `s/regexp/replacement/flags`指定关键字进行替换 ``` sed -n 's/root/test/p' file 将root关键词替换为test,默认只替换第一个关键字 sed -n 's/root/test/2p' file 将root关键词替换为test,只替换第2个关键字 sed -n '1s/root/test/2p' file 将root关键词替换为test,将第一行第二个关键字替换为test sed -n '1,10s/root/test/gp' file 将root关键词替换为test,替换第1-10行所有的root关键字(g代表所有) sed -n 's/root/test/gp' file 将root关键词替换为test,替换所有的root关键字 sed -n 's/root/test/gip' file 将root关键词替换为test,替换所有的root关键字,忽略大小写 ``` `w/目标路径`另存为文件 ``` sed '3,10w /root/test' file 将file的3-10行另存为root目录下的test文件 ``` `!`取反,如果地址后有!,表面不匹配该行 ``` sed '1!s/root/test/gip' file -n 除了第一行的,其他匹配到root,则替换为test,且不区分大小写 ``` *** ## Bash shell 基础 shell是命令解释器,人机交互的接口。shell同样是脚本语言 命令(用户 -->shell程序 --->Kernel内核(执行 shell解释器充当翻译的作用,将用户的命令解释成内核可以理解的语言 shell的种类 :bash shell(主流Linux都在使用)、csh shell、 bash shell更加符合用户的习惯,提供功能扩展 绝大多数的Linux发行版本的默认shell都是Bash shell #### 快捷键补充 `Ctrl + L` 清屏 详细快捷键见 [[很神的小技巧]] #### 历史记录 `history` 用户Home目录下:`.bash_history` `history -w` 将内存中的历史记录写入到 `.bash_history` `history -c`清空历史记录 彻底删除历史记录步骤: 1. `history -w` 2. `rm -rf .bash_history` 3. `history -c` ← 上一篇 RHCE:高级文本处理