Linux运维第四周笔记

-n屏蔽默认输出,默认sed会输出读取文档的全部内容

-r(让sed支持扩展则)

-i(sed直接修改源文件,默认sed只是通过内存临时修改文件,源文件无影响)

sed '1p' /etc/hosts

sed -n '1p' /etc/hosts

sed -n '3,6p' /etc/passwd

sed 'd' /etc/passwd 

sed -i '1,4d' test.txt 

sed -n '1p;4p' /etc/passwd

sed -n '3p' /etc/passwd

sed '$d' a.txt                //删除文件的最后一行

sed '/^$/d' a.txt             //删除所有空行

sed '/^install/d' a.txt    //删除以install开头的行

替换操作的分隔“/”可改用其他字符,如#、&等,便于修改文件路径

sed 's/xml/XML/' a.txt //将每行中第一个xml替换为XML

sed 's/xml/XML/g' a.txt //将所有的xml都替换为XML

sed s#/bin/bash#/sbin/sh#/sbin/sh#' a.txt //将/bin/bash替换为/sbin/sh

sed '4,7s/^/#/' a.txt //将第4~7行注释

sed 's/^#an/an/' a.txt //解除以#an开头的行的注释

删除文件中每行的第二个,最后一个字符

分两次替换操作,第一次替换掉第2个字符,第二次替换最后一个字符

sed 's/.//2;s/.$//' nssw.txt

将文件中每行的第一个、倒数第1个字符互换

每行文本拆分为“第1个字符”、“中间的所有字符”、“倒数第1个字符”三个部分,然后通过操作重排顺序为“3-2-1”;

sed -r 's/^(.)(.*)(.)$/\3\2\1/' nssw.txt

删除文件中的所有数字

sed 's/[0-9]//' nssw.txt

删除所有数字、行首空格的操作如下:

sed -r 's/[0-9]//g;s/^()+//' nssw.txt

为文件中每个大写字母添加括号

使用“()”可实现保留功能,所以可参考下列操作解决:

sed 's/([A-Z])/[\1]/g' nwss.txt

sed多行文本处理

i:在指定的行之前插入文本

a: 在指定的行之后追加文本

c: 替换指定的行

sed '2a xx' a.txt //在第二行后面,追加xx

sed '2i xx' a.txt //在第二行前面,插入xx

sed '2c xx' a.txt //将第二行替换为xx

sed '1c www.test.com' /etc/hostname //使用sed修改主机配置所在行的内容(c 为整行替换)

            

     注意:使用s/旧/新/,使用s替换时,最后需要/结尾

#sed [选项] '条件指令' 文件

选项:

-n 屏蔽默认输出

-r 支持扩展正则

-i 修改源文件

条件:

行号 4 4,5 4~2 4,+10

/正则/

指令:

p 打印

d 删除

s 替换s/旧/新/g

a 追加

i 插入

c 替换行

sed 读

[root@rootroom9pc01 ~]# cat test1.txt 
ffff
ffff
iiii
[root@rootroom9pc01 ~]# sed -i '2r test.txt' test1.txt 
[root@rootroom9pc01 ~]# cat test1.txt 
ffff
ffff
Aerqwer
Adfderflkd
iiii
[root@rootroom9pc01 ~]#

[root@rootroom9pc01 ~]# sed -i '/^i/r test.txt' test1.txt 
[root@rootroom9pc01 ~]# cat test1.txt 
ffff
ffff
Aerqwer
Adfderflkd
iiii
Aerqwer
Adfderflkd

 

sed 写

[root@rootroom9pc01 ~]# cat test.txt 

test
22test
test
[root@rootroom9pc01 ~]# cat test1.txt
test
[root@rootroom9pc01 ~]# sed -n '2w test1.txt' test.txt
[root@rootroom9pc01 ~]# cat test1.txt
22test
[root@rootroom9pc01 ~]# cat test.txt
test
22test
test

[root@rootroom9pc01 ~]#

 

sed -n '/^xx/w x.txt'  test.txt   //test.txt为导入的文本 

sed 复制剪切

H :模式空间--追加--保持空间

h:模式空间--覆盖--保持空间        复制

G:保持空间--追加--模式空间

g:保持空间--覆盖--模式空间         粘贴

 

[root@rootroom9pc01 ~]# sed '2H;$G' test.txt      //加i选项时有效
test
22test
test

                //H:
22test
[root@rootroom9pc01 ~]# sed '2h;$G' test.txt       
test
22test
test
22test   //h:
[root@rootroom9pc01 ~]# 

[root@rootroom9pc01 ~]# cat test.txt   
test
22test
e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3test
[root@rootroom9pc01 ~]# sed '1h;1d;$G' test.txt//把第一行剪切到末尾h:模式空间--覆盖--保持空间1d第一行删除第二行覆盖第一行;G把第一行追加到未尾  -i 时有效
22test
e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3test
test

[root@rootroom9pc01 ~]# 

[root@rootroom9pc01 ~]# cat test.txt
test
22test

e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3test

 

[root@rootroom9pc01 ~]# sed '1h;2H;1,2d;' test.txt

e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3test

 

[root@rootroom9pc01 ~]# sed '1h;2H;1,2d;$G' test.txt    //$G追加粘贴
e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3test
test
22test
[root@rootroom9pc01 ~]# 

 

rpm安装

命令:rpm -ivh 包全名

选项: 
1. -i (install) 安装 
2. -v(verbose)显示详细信息 
3. -h(hash)显示进度 
4. –nodeps 不检测依赖性(两个-)一般不允许使用这个参数

rpm包升级

rpm -Uvh 包全名

选项: 
1. -U(upgrade)升级

如果你这个包还没安装过,那么升级命令就相当于安装

卸载

rpm -e 包名

注意:卸载也是有依赖关系的

rpm包安装的路径

通过rpm命令来安装的路径是:该软件包作者指定的位置,因此我们使用rpm命令来安装软件将会使得软件安装得到处都是,这也是为什么rpm有卸载命令的原因

但我们有一个默认的位置

这里写图片描述

rpm包查询

命令作用
rpm -q 包名查询是否已安装(-q:query)
rpm -qa查询所有已经安装的软件包(-a:all),可以使用管道符来筛选
rpm -qi 包名查询软件包详细信息(-i:information)
rpm -qip 包全名查询未安装的包的详细信息(-p:packages)
rpm -ql 包名查询包中文件安装的位置(-l:list),加-p查看未安装的包将会安装的位置
rpm -qf 系统文件名查询系统文件属于哪个rpm包(-f :file)
rpm -qR 包名查询包的依赖关系,可以加-p

rpm包校验

rpm包的校验是校验rpm安装的文件有没有被改变过

命令:rpm -V 已安装的包名

如果没有改变过,执行该命令将没有任何信息输出,否则会有信息输出,输出内容将有:

这里写图片描述

例如:这里写图片描述

S,5,T都在前一个图中找到对应的信息,c表示文件类型,后面是被动过的文件路径

文件类型: 
这里写图片描述

rpm包中文件提取

有时候我们误操作把一些重要文件给删除了,那么我们可以从其他系统中拷贝,或者在rpm包中去提取这些重要文件 
命令:rpm2cpio 包全名 | cpio -idv .文件绝对路径

  1. -rpm2cpio:将rpm包转换为cpio格式的命令
  2. cpio:是一个标准工具,它用于创建软件档案文件和从档案中提取文件
  3. -i:copy-in模式,还原
  4. -d:还原时自动新建目录
  5. -v:显示还原过程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值