sed练习:
1、删除centos7系统/etc/grub2.cfg文件中所有以空白开头的行行首的空白字符
[root@rocky8 ~]# sed -rn 's/^[[:space:]](.*)/\1/p'  /etc/grub2.cfg
load_env -f ${config_directory}/grubenv
load_env
set default="${next_entry}"
set next_entry=
save_env next_entry
set boot_once=true
set default="${saved_entry}"
...
2、删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符
[root@rocky8 ~]# sed -rn 's/^#[[:space:]]+(.*)/\1/p' /etc/fstab
/etc/fstab
Created by anaconda on Fri Jul 8 12:03:02 2022
Accessible filesystems, by reference, are maintained under '/dev/disk/'.
See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
After editing this file, run 'systemctl daemon-reload' to update systemd
units generated from this file.

[root@rocky8-2 ~]# sed -r 's/^#[[:space:]]*(.*)/\1/' /etc/fstab #删除所有#和后边的空白字符
3、在centos6系统/root/install.log每一行行首增加#号
[root@rocky8 ~]# sed -rn 's/^/#/p' /etc/fstab
#
##
## /etc/fstab
## Created by anaconda on Fri Jul 8 12:03:02 2022
##
## Accessible filesystems, by reference, are maintained under '/dev/disk/'.
## See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
##
## After editing this file, run 'systemctl daemon-reload' to update systemd
## units generated from this file.
##
#UUID=be3d4c81-b9c8-4931-b2bf-f9a97629945c / xfs defaults 0 0
#UUID=5a8e7270-b50c-47ec-b952-6bf92992156c /boot xfs defaults 0 0
#UUID=10ec0263-5d12-4ba6-be25-5b62a34b8fcb none swap defaults 0 0
4、在/etc/fstab文件中不以#开头的行的行首增加#号
[root@rocky8 ~]# sed -rn 's/^[^#]/#&/p'  /etc/fstab
#UUID=be3d4c81-b9c8-4931-b2bf-f9a97629945c / xfs defaults 0 0
#UUID=5a8e7270-b50c-47ec-b952-6bf92992156c /boot xfs defaults 0 0
#UUID=10ec0263-5d12-4ba6-be25-5b62a34b8fcb none swap defaults 0 0
5、处理/etc/fstab路径,使用sed命令取出其目录名和基名
[root@rocky8 ~]# echo /etc/fstab | sed -rn 's#(.*)/([^/]+)/?$#\1#p'
/etc
[root@rocky8 ~]# echo /etc/fstab | sed -rn 's#(.*)/([^/]+)/?$#\2#p'
fstab
[root@rocky8 ~]# echo /etc/fstab/ | sed -rn 's#(.*)/([^/]+)/?$#\2#p'
fstab
[root@rocky8 ~]# echo /etc/sysconfig/network-scripts/ | sed -rn 's#(.*)/([^/]+)/?$#\2#p'
network-scripts
[root@rocky8 ~]# echo /etc/sysconfig/network-scripts/ | sed -rn 's#(.*)/([^/]+)/?$#\1#p'
/etc/sysconfig
6、利用sed 取出ifconfifig命令中本机的IPv4地址
[root@rocky8 ~]# ifconfig |sed -rn '2s/.*inet ([0-9.]+) .*/\1/p'
10.0.0.151
7、统计centos安装光盘中Package目录下的所有rpm文件的以.分隔倒数第二个字段的重复次数
[root@rocky8-2 ~]# find /misc/cd -name "*.rpm" |sed -rn 's/.*\.([^.]+)\.rpm$/\1/p' |sort|uniq -c
1391 i686
2681 noarch
4193 x86_64
8、统计/etc/init.d/functions文件中每个单词的出现次数,并排序(用grep和sed两种方法分别实现)
[root@rocky8-2 ~]# cat /etc/init.d/functions |sed -rn 's#[^[:alpha:]]+#\n#gp' |sed -r '/^$/d' |sort|uniq -c
24 a
5 A
1 aA
1 abnormally
5 action
1 active
1 ActiveState
...
[root@rocky8-2 ~]# cat /etc/init.d/functions |egrep -o '[[:alpha:]]+' |sort |uniq -c
24 a
5 A
1 aA
1 abnormally
5 action
1 active
1 ActiveState
1 adjust
1 alive
...
find练习
1、查找/var目录下属主为root,且属组为mail的所有文件
[root@rocky8-2 ~]# find /var -user root -group mail -type f
[root@rocky8-2 ~]# find /var -user root -group mail
/var/spool/mail
2、查找/var目录下不属于root、lp、gdm的所有文件
[root@rocky8-2 ~]# find /var ! \( -user root -o -user lp -o -user gdm \) -type f -ls
17406137 4 -rw-r--r-- 1 unbound unbound 759 Jul 12 00:00 /var/lib/unbound/root.key
17254206 1256 -rw------- 1 sssd sssd 1286144 Jul 12 21:18 /var/lib/sss/db/config.ldb
1404753 9040 -rw-rw-r-- 1 sssd sssd 9253600 Jul 13 19:34 /var/lib/sss/mc/passwd
1675507 6780 -rw-rw-r-- 1 sssd sssd 6940392 Jul 13 19:34 /var/lib/sss/mc/group
1675506 11300 -rw-rw-r-- 1 sssd sssd 11567160 Jul 13 19:34 /var/lib/sss/mc/initgroups
560580 0 -rw-rw---- 1 magedu mail 0 Jul 8 20:08 /var/spool/mail/magedu
560596 0 -rw-rw---- 1 bash mail 0 Jul 10 20:25 /var/spool/mail/bash
629672 0 -rw-rw---- 1 testbash mail 0 Jul 10 20:25 /var/spool/mail/testbash
624743 0 -rw-rw---- 1 basher mail 0 Jul 10 20:25 /var/spool/mail/basher
629667 0 -rw-rw---- 1 sh mail 0 Jul 10 20:25 /var/spool/mail/sh
624754 0 -rw-rw---- 1 nologin mail 0 Jul 10 20:25 /var/spool/mail/nologin
3、查找/var目录下最近一周内其内容修改过,同时属主不为root,也不是postfifix的文件
[root@rocky8-2 ~]# find /var -mtime -7 ! \( -user root -o -user postfifix \) -type f -ls
17406137 4 -rw-r--r-- 1 unbound unbound 759 Jul 12 00:00 /var/lib/unbound/root.key
17254206 1256 -rw------- 1 sssd sssd 1286144 Jul 12 21:18 /var/lib/sss/db/config.ldb
1675514 9040 -rw-rw-r-- 1 sssd sssd 9253600 Jul 13 19:38 /var/lib/sss/mc/passwd
1675515 6780 -rw-rw-r-- 1 sssd sssd 6940392 Jul 13 19:38 /var/lib/sss/mc/group
1675506 11300 -rw-rw-r-- 1 sssd sssd 11567160 Jul 13 19:38 /var/lib/sss/mc/initgroups
560580 0 -rw-rw---- 1 magedu mail 0 Jul 8 20:08 /var/spool/mail/magedu
560596 0 -rw-rw---- 1 bash mail 0 Jul 10 20:25 /var/spool/mail/bash
629672 0 -rw-rw---- 1 testbash mail 0 Jul 10 20:25 /var/spool/mail/testbash
624743 0 -rw-rw---- 1 basher mail 0 Jul 10 20:25 /var/spool/mail/basher
629667 0 -rw-rw---- 1 sh mail 0 Jul 10 20:25 /var/spool/mail/sh
624754 0 -rw-rw---- 1 nologin mail 0 Jul 10 20:25 /var/spool/mail/nologin
779204 0 -rw-rw---- 1 gdm mail 0 Jul 13 19:34 /var/spool/mail/gdm
4、查找当前系统上没有属主或属组,且最近一个周内曾被访问过的文件
[root@rocky8-2 ~]# find / \( -nouser -o -nogroup \) -atime -7 -ls
5、查找/etc目录下大于1M且类型为普通文件的所有文件
[root@rocky8-2 ~]# find /etc -type f -size +1M  -exec ls -lh {} \;
-rw-r--r--. 1 root root 8.2M May 10 21:43 /etc/selinux/targeted/policy/policy.31
-r--r--r--. 1 root root 11M Jul 8 20:16 /etc/udev/hwdb.bin
6、查找/etc目录下所有用户都没有写权限的文件
[root@rocky8-2 ~]# find /etc ! -perm /222 -type f -exec ls -l {} \;
-r--r--r--. 1 root root 145596 Jul 8 20:05 /etc/pki/ca-trust/extracted/edk2/cacerts.bin
-r--r--r--. 1 root root 146170 Jul 8 20:05 /etc/pki/ca-trust/extracted/java/cacerts
-r--r--r--. 1 root root 243169 Jul 8 20:05 /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt
-r--r--r--. 1 root root 200578 Jul 8 20:05 /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
-r--r--r--. 1 root root 153694 Jul 8 20:05 /etc/pki/ca-trust/extracted/pem/email-ca-bundle.pem
-r--r--r--. 1 root root 0 Jul 8 20:05 /etc/pki/ca-trust/extracted/pem/objsign-ca-bundle.pem
----------. 1 root root 489 Jul 13 19:34 /etc/gshadow-
----------. 1 root root 976 Jul 13 19:34 /etc/shadow-
---------- 1 root root 503 Jul 13 19:38 /etc/gshadow
-r--r--r--. 1 root root 33 Jul 8 20:04 /etc/machine-id
-r--r--r--. 1 root root 11120017 Jul 8 20:16 /etc/udev/hwdb.bin
---------- 1 root root 1008 Jul 13 19:38 /etc/shadow
-r--r--r--. 1 root root 67 May 10 23:01 /etc/ld.so.conf.d/kernel-4.18.0-372.9.1.el8.x86_64.conf
-r--r-----. 1 root root 4328 Apr 20 16:44 /etc/sudoers
7、查找/etc目录下至少有一类用户没有执行权限的文件
[root@rocky8-2 ~]# find /etc ! -perm /001 -exec ls -l {} \;
-rw-r--r--. 1 root root 615 Jul 8 20:03 /etc/fstab
-rw-------. 1 root root 0 Jul 8 20:03 /etc/crypttab
-rw-r--r-- 1 root root 80 Jul 12 21:18 /etc/resolv.conf
-rw-r--r--. 1 root root 10 Mar 30 08:02 /etc/dnf/vars/contentdir
-rw-r--r--. 1 root root 6 Mar 15 2021 /etc/dnf/protected.d/setup.conf
-rw-r--r--. 1 root root 4 Apr 12 2021 /etc/dnf/protected.d/dnf.conf
-rw-r--r--. 1 root root 21 May 9 14:51 /etc/dnf/protected.d/systemd.conf
-rw-r--r--. 1 root root 4 Apr 12 2021 /etc/dnf/protected.d/yum.conf
-rw-r--r--. 1 root root 5 Apr 20 16:47 /etc/dnf/protected.d/sudo.conf
-rw-r--r--. 1 root root 108 Apr 12 2021 /etc/dnf/dnf.conf
-rw-r--r--. 1 root root 351 Apr 12 2021 /etc/dnf/plugins/copr.conf
-rw-r--r--. 1 root root 30 Apr 12 2021 /etc/dnf/plugins/debuginfo-install.conf
-rw-r--r--. 1 root root 1672 Mar 30 08:01 /etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
-rw-r--r--. 1 root root 1672 Mar 30 08:01 /etc/pki/rpm-gpg/RPM-GPG-KEY-rockytesting
-rw-r--r--. 1 root root 566 Sep 22 2021 /etc/pki/ca-trust/extracted/edk2/README
-r--r--r--. 1 root root 145596 Jul 8 20:05 /etc/pki/ca-trust/extracted/edk2/cacerts.bin
-rw-r--r--. 1 root root 560 Sep 22 2021 /etc/pki/ca-trust/extracted/README
-rw-r--r--. 1 root root 726 Sep 22 2021 /etc/pki/ca-trust/extracted/java/README
-r--r--r--. 1 root root 146170 Jul 8 20:05 /etc/pki/ca-trust/extracted/java/cacerts
-rw-r--r--. 1 root root 787 Sep 22 2021 /etc/pki/ca-trust/extracted/openssl/README
-r--r--r--. 1 root root 243169 Jul 8 20:05 /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt
8、查找/etc/init.d目录下,所有用户都有执行权限,且其它用户有写权限的文件
[root@rocky8-2 ~]# find /etc/init.d/ -perm -111 -perm -002
[root@rocky8-2 ~]# find /root -perm -111 -perm -002 -ls
34813720 4 -rwxr-xrwx 1 root root 563 Jul 11 22:06 /root/yum.sh