swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

关闭linux的swap分区并永久关闭

执行完后的结果是

在swap这行的首部,注释掉

那么,研究下sed -e 后面跟着的这参数含义

引号里面是sed的替换命令,常见的是 s/正则表达搜索/替换为/

将“替换为”字串替换“正则表达搜索”到的字符串。这里分隔符改为了竖线  |

sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

正则搜索项:

.* -> ../../\(.*\)$

.*——任意字符
-> ——原样匹配,->并且前后有一个空格

../——两个任意字符,加上一个/字符

../——同上

\(.*\)——匹配任意字符,并且放在了捕获括号中

$——字符串结束位置

替换为:\1——引用前面正则表达式中第一个捕获括号里面的内容

整个意思是找到能匹配正则的内容,并用后面的一部分替换整个匹配,

实例演示

1.注释掉以xxxx开头的某行

#ansible dmzm -m shell -a "sed -i '/- --port=0/s/^/###/g' /etc/kubernetes/manifests/*.yaml"
注释掉k8s中, - --port=0所在的行

#ansible dmzm -m shell -a "less /etc/kubernetes/manifests/*.yaml |grep port=0"
passnode1 | CHANGED | rc=0 >>
    - --insecure-port=0
###    - --port=0
###    - --port=0
passnode2 | CHANGED | rc=0 >>
    - --insecure-port=0
###    - --port=0
###    - --port=0
passnode3 | CHANGED | rc=0 >>
    - --insecure-port=0
###    - --port=0
###    - --port=0

#more /etc/kubernetes/manifests/kube-controller-manager.yaml
...
    - --cluster-name=kubernetes
    - --cluster-signing-cert-file=/etc/kubernetes/pki/ca.crt
    - --cluster-signing-key-file=/etc/kubernetes/pki/ca.key
    - --controllers=*,bootstrapsigner,tokencleaner
    - --kubeconfig=/etc/kubernetes/controller-manager.conf
    - --leader-elect=true
    - --node-cidr-mask-size=24
###    - --port=0
    - --requestheader-client-ca-file=/etc/kubernetes/pki/front-proxy-ca.crt
    - --root-ca-file=/etc/kubernetes/pki/ca.crt
    - --service-account-private-key-file=/etc/kubernetes/pki/sa.key
    - --service-cluster-ip-range=192.168.240.0/22
    - --use-service-account-credentials=true
...

其他几种方式注释某行,源文件的内容为

1.sed -i '/Type/s/^/#/g' sshd.service

2.sed -i 's/^Kill/#&/' sshd.service

3.sed -i 's/Gues/#&/' sshd.service

#cat sshd.service
# Automatically generated by systemd-sysv-generator

[Unit]
Documentation=man:systemd-sysv-generator(8)
SourcePath=/etc/rc.d/init.d/sshd
Description=SYSV: OpenSSH server daemon

[Service]
#Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=no
PIDFile=/var/run/sshd.pid
ExecStart=/etc/rc.d/init.d/sshd start
ExecStop=/etc/rc.d/init.d/sshd stop
ExecReload=/etc/rc.d/init.d/sshd reload


# sed -i '/Type/s/^/#/g' sshd.service
# cat sshd.service
# Automatically generated by systemd-sysv-generator

[Unit]
Documentation=man:systemd-sysv-generator(8)
SourcePath=/etc/rc.d/init.d/sshd
Description=SYSV: OpenSSH server daemon

[Service]
#Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=no
PIDFile=/var/run/sshd.pid
ExecStart=/etc/rc.d/init.d/sshd start
ExecStop=/etc/rc.d/init.d/sshd stop
ExecReload=/etc/rc.d/init.d/sshd reload


#sed -i 's/^Kill/#&/' sshd.service
# cat sshd.service
# Automatically generated by systemd-sysv-generator

[Unit]
Documentation=man:systemd-sysv-generator(8)
SourcePath=/etc/rc.d/init.d/sshd
Description=SYSV: OpenSSH server daemon

[Service]
#Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
#KillMode=process
GuessMainPID=no
RemainAfterExit=no
PIDFile=/var/run/sshd.pid
ExecStart=/etc/rc.d/init.d/sshd start
ExecStop=/etc/rc.d/init.d/sshd stop
ExecReload=/etc/rc.d/init.d/sshd reload


#sed -i 's/Gues/#&/' sshd.service
# cat sshd.service                
# Automatically generated by systemd-sysv-generator

[Unit]
Documentation=man:systemd-sysv-generator(8)
SourcePath=/etc/rc.d/init.d/sshd
Description=SYSV: OpenSSH server daemon

[Service]
#Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
#KillMode=process
#GuessMainPID=no
RemainAfterExit=no
PIDFile=/var/run/sshd.pid
ExecStart=/etc/rc.d/init.d/sshd start
ExecStop=/etc/rc.d/init.d/sshd stop
ExecReload=/etc/rc.d/init.d/sshd reload

取消某行的注释

1.sed -i 's/^#\(Type\)/\1/' sshd.service

#sed -i 's/^#\(Type\)/\1/' sshd.service
# cat sshd.service                      
# Automatically generated by systemd-sysv-generator

[Unit]
Documentation=man:systemd-sysv-generator(8)
SourcePath=/etc/rc.d/init.d/sshd
Description=SYSV: OpenSSH server daemon

[Service]
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
#KillMode=process
#GuessMainPID=no
RemainAfterExit=no
PIDFile=/var/run/sshd.pid
ExecStart=/etc/rc.d/init.d/sshd start
ExecStop=/etc/rc.d/init.d/sshd stop

Logo

更多推荐