博客作业
一、处理文本的工具sed。
Stream EDitor, 行编辑器。sed是一种流编辑器,它一次处理一行内容。主要功能:主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序等。
常用选项
-n 不输出模式空间内容到屏幕,即不自动打印
-e 多点编辑
-f 从指定文件中读取编辑脚本
-r 支持使用扩展正则表达式
-i.bak 备份文件并原处编辑
地址定界
不给地址:对全文进行处理
地址:#: 指定的行,$:最后一行
地址范围:#,#;#,+#;/pat1/,/pat2/;#,/pat1/
:步进:12 奇数行;2~2 偶数行
查找替换
s/// 查找替换,支持使用其它分隔符,s@@@,s###
g 行内全局替换
p 显示替换成功的行
w /PATH/FILE 将替换成功的行保存至文件中
高级编辑命令
P: 打印模式空间开端至\n内容,并追加到默认输出之前
h: 把模式空间中的内容覆盖至保持空间中
H:把模式空间中的内容追加至保持空间中
g: 从保持空间取出数据覆盖至模式空间
G:从保持空间取出内容追加至模式空间
x: 把模式空间中的内容与保持空间中的内容进行互换
n: 读取匹配到的行的下一行覆盖至模式空间
N:读取匹配到的行的下一行追加至模式空间
参考网址:
http://www.gnu.org/software/sed/manual/sed.html
示例:
将passwd文件中的root搜索替换成li
[root@CrntOS8 data]#sed 's@root@li@g' /data/passwd
li:x:0:0:li:/li:/bin/bash
将passwd文件中2到4行中开头是bin替换成ying
[root@CrntOS8 data]# sed -ne '2,4s/^bin/ying/gp' /data/passwd
ying:x:1:1:bin:/bin:/sbin/nologin
将passwd文件中第一二行删除
[root@CrntOS8 data]#sed -e '1,2d' /data/passwd
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
读取fe的内容,并将其写入到匹配行的下面
[root@CrntOS8 data]#sed -e '/^root/r fe' /data/passwd
root:x:0:0:root:/root:/bin/bash
1 2 3 4
a b c d
5 6 7 8
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
二、yum
YUM: Yellowdog Update Modifier,rpm的前端程序,可解决软件包相关依赖性,可在多个库之间定位软件包,up2date的替代工具
yum配置文件
yum客户端配置文件:
/etc/yum.conf:为所有仓库提供公共配置
/etc/yum.repos.d/*.repo:为仓库的指向提供配置
yum源
- 阿里云repo文件
http://mirrors.aliyun.com/repo/ - CentOS系统的yum源
[https://mirrors.aliyun.com/centos/ r e l e a s e v e r / o s / x 8 6 6 4 / ] ( h t t p s : / / m i r r o r s . a l i y u n . c o m / c e n t o s / releasever/os/x86_64/](https://mirrors.aliyun.com/centos/ releasever/os/x8664/](https://mirrors.aliyun.com/centos/releasever/os/x86_64/) - 阿里巴巴开源软件
https://opsx.alibaba.com/
yum命令
yum命令的用法:
yum [options] [command] [package …]
显示仓库列表:
yum repolist [all|enabled|disabled]
显示程序包:
yum list
yum list [all | glob_exp1] [glob_exp2] […]
yum list {available|installed|updates} [glob_exp1] […]
升级程序包
yum update [package1] [package2] […]
yum downgrade package1 [package2] […] (降级)
卸载程序包:
yum remove | erase package1 [package2] […]