sed命令补充用法和软件包管理基础

sed命令补充用法和软件包管理基础

sed命令补充

sed 命令在运行的时候,有处理数据的模式空间(pattern space),也有暂时储存数据的保存空间(hold space).

P :打印模式空间开端到/n(换行符)内容,并追加到默认输出之前

h :把模式空间中的内容覆盖至保持空间

H:同上,但是是追加

g :保持空间内容覆盖模式空间

G:同上,但是是追加

x :模式空间和保持空间内容互换

n :读取匹配到的行的下一行覆盖至模式空间

N:同上,但是是追加

d :删除模式空间中的行

D:从开头删除至第一个换行符\n

 

注意:涉及到n或者N时,要将其步骤视为两步,一步为执行n之前,作为默认输出一次,然后执行n,进行匹配下一行并覆盖处理!

 

sed -n ‘n;p’ file : 打印第一行被第二行覆盖,以此类推,实现打印偶数行

例:seq 1 10 |sed -n ‘n;p’  效果等同于seq 1 10 |sed -n ‘2~2p’

sed ‘1!G;h;$!d’ file : 打印第一行至模式空间,并覆盖保持空间,然后清空模式空间;然后打印第二行至模式空间,并把保持空间的内容追加在模式空间内容之后,然后继续覆盖保持空间,清空模式空间,循环至最后一行时不再删除最后一次的模式空间,直接打印,实现倒叙排列.

例:seq 1 10 |sed ‘1!G;h;$!d’ 此时的效果等同于 seq 1 10 |tac

sed ‘N;D’ file :读取1、2行,删除第1行,对剩余的第2行匹配到第3行,删除第2行….从而实现最终打印最后一行

sed ‘$!N;$!D’ file : 对除了最后一行都进行匹配下一行并追加至模式空间,然后并对除了最后一行的模式空间,都从头删除至第一个换行符,实现最终打印最后两行

uniq -c :可统计重复出现的次数

rev : 行的倒叙,例如echo abcd |rev

 

软件包管理

ldd /PATH/TO/BINARY_FILE : 查看二进制程序所依赖的库文件

ldconfig : 查看加载库文件

/sbin/ldconfig -p : 显示本机已经缓存的所有可用库文件名及文件路径映射关系

 

/var/lib/rpm : 这里是现有安装的安装包的公共数据库

 

rpm 的使用:

-i : 静默安装,一般配合其他语法;若单独使用,一般用于脚本中

-v : 显示安装过程

-h : 显示安装进度

安装的时候要写路径,而卸载的时候直接写软件包名即可.

例如:

图片1

-test : 测试安装

-nodeps : 忽略依赖性强制安装

–replacepkgs : 重新覆盖式安装

–replacefile : 当安装的包因其中某文件与其他包相同而导致该包无法安装时,可覆盖文件并安装

rpm -ql tree : 可查询已安装的tree包用到的文件列表

–nosignature : 不检查来源合法性

–nodigest : 不检查完整性

 

rpm –import xxxxxx : 可将光盘中的秘钥导入系统,即可解决nokey

 

-U :安装升级

-F :只升级,并且必须有旧安装包

一般升级都只是-ivh进行普通安装

在安装中,配置文件并不会被覆盖,会保留,把新的文件加后缀.rpmnew

rpm -q kernel : 查看安装内核的信息

rpm -q +包名(必须准确):查询包是否装好

rpm -qa +关键字母 : 查询已经安装的并且含有关键字母的包

rpm -qf +文件 : 查询该文件是由哪个包生成的

rpm -qpl +文件 :查询未安装的包会生成什么文件的列表

rpm -q –whatprovides tree : 查询tree是由哪个包提供的(可以搜索关键字)

rpm -q –whatrequires **** : 查询指定的关键词被谁所依赖

查询类:要配合-q使用

典型:rpm -qi :查询包名的详细信息

rpm -q –scripts : 查询包自带的脚本

rpm -qR **: 查询关键字依赖于哪些包

rpm -V tree : 查询与原安装包比较,哪里不一样

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/96861

发表评论

登录后才能评论

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班