前言:
sed命令,流式修改文本文件的强大工具,比如,最常用的关闭selinux时通常采用sed命令快速修改。
OK,其实sed命令虽然强大,但它修改文件的方式是非常多的,就像关闭selinux,可能都会有N种方式。
本文将就如何优雅的使用sed命令以及sed命令批量修改文件做一个详细的总结。
一,
关闭selinux的方法
首先,我们先看一下selinux的配置文件,观察它的结构:
[root@EULEER BBBBBBBBB]# cat /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
修改思路:
OK,我们的目的是修改第七行,那么,修改思路应该是部分替换,替换disabled为enforcing或者permissive,另一种思路是整体删除SELINUX=disabled 这一行,然后在原删除位置增加SELINUX=enforcing或者SELINUX=permissive这一行,当然,这个SELINUX=disabled是可以放置在任意一行,因此,在原位置或者在末尾或者开始增加这一行都是可以的。
那么,如何实现呢?
一。
整体替换
sed -i 's/SELINUX=disabled/SELINUX=permissive/g' /etc/selinux/config
参数解释:
g表示相对文本文档,全局替换
s表示替换,第一个/ 后面接要替换的整行第二个/接新的内容
i表示立刻修改
也可以这样替换,效果是一样的:
sed -i 's/^SELINUX=disable/SELINUX=permissive/g' /etc/selinux/config
二,
部分替换
sed -i 's/=disable/=permissive/g' /etc/selinux/config
三,
替换的内容前增加两个空格
sed -i 's/=disabled/= permissive/g' /etc/selinux/config
替换后的文件内容如下:
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX= permissive
# SELINUXTYPE= can take one of three two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
四,
指定行插入一个空行
再次执行此命令将会在增加一个空行
sed -i '/^SELINUX=/a n' /etc/selinux/config
五,指定行插入两个空行
再次执行此命令将会在增加两个空行
sed -i '/^SELINUX=/a \n' /etc/selinux/config
六,
指定行后增加一个 t带有table的空行
sed -i '/^SELINUX=/a \t' /etc/selinux/config
七,
指定行后增加指定内容 /fuck
sed -i '/^SELINUX=/a /fuck' /etc/selinux/config
未完待续!~~~~~~~~
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net