1、查找/etc目录下大于1M且类型为普通文件的所有文件
find /etc -type f -size +1M
2、打包/etc/目录下面所有conf结尾的文件,压缩包名称为当天的时间,并拷贝到/usr/local/src目录备份。
tar czvf /usr/local/src/`date +%F`.tar.gz /etc
3、利用sed 取出ifconfig命令中本机的IPv4地址
方法1:取出所有IP
ifconfig | sed -nr '/inet/s@.*inet (.*) netmask.*@\1@p'
方法2:取出固定网络接口IP
ifconfig eth0 | sed -rn '2s#^[^0-9]+([0-9.]+) .*$#\1#p'
4、删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符
sed -nr 's@^#[[:space:]]+(.*)@\1@p' /etc/fstab
5、处理/etc/fstab路径,使用sed命令取出其目录名和基名
取出目录名:
echo /etc/fstab | sed -rn 's@(^/.*/)([^/]+/?)@\1@p'
取出基名字:
echo /etc/fstab | sed -rn 's@(^/.*/)([^/]+/?)@\2@p'
补充练习:
1.删除/etc/grub2.cfg文件中以空白行开头的行首的空白字符:
sed 's#^[[:space:]]\+##gp' /etc/grub2.cfg
2.echo一个绝对路径给sed命令,取出起基名,取出其目录名:
echo '/etc/sysconfig/network-scripts/' | sed -r 's@[^/]+/?$@@g'
方法解释:将以非/开头的字符,也就是network去掉来实现取出目录
3.同时删除/etc/fstab文件里以#号开头以及空行,并且存入fstab.txt文档中
sed '/^#/d;/^$/d;w fstab.txt' /etc/fstab
4.修改/etc/selinux/config文件中的SELINUX=enforcing修改为SELINUX=disabled
sed -i.bck '/SELINUX=enforcong/c SELINUX=disabled' /etc/selinux/config
5.获得本机的所有接口和ip地址写入文件,并且并入一个文件中
ifconfig | sed -rn 's@.*inet (.*) net.*@\1@pw ip.txt' #获取所有ip
ifconfig | sed -nr 's@(.*): flags.*@\1@pw interface.txt'
paste interface.txt ip.txt
6.给每行上方增加一个行号
sed '=' /etc/passwd
7.取fstab的非#开头的字符串,使用!感叹号进行取反
sed -n '/^#/!p' /etc/fstab
8.删除httpd中<VirtualHost>到</VitualHost>这一段
sed -n '/#<VirtualHost/,/#<\/VirtualHost/s@#@@' /etc/httpd/conf/httpd.conf
9.在/boot/grub2/grub.cfg中追加net.ifnames=0
方法1:
sed -nr '/^[[:space:]]+linux16.*/s#(.*)#\1 net.ifnames=0#p' /boot/grub2/grub.cfg
方法2:
sed -nr '/^[[:space:]]+linux16.*/s#.*#& net.ifnames=0#p' /boot/grub2/grub.cfg # &代表前面搜索出来的内容
10.在/etc/default/grub文件中的GRUB_CMDLINE_LINUX默认塞入net.ifnames=0
方法1:
sed -rn '/^GRUB_CMDLINE_LINUX=/s#"$# net.ifnames=0"#p' /etc/default/grub #直接匹配到最后一个引号,然后替换为net.ifnames=0"
方法2:
sed -rn '/^GRUB_CMDLINE_LINUX=/s#(.*)"$#\1 net.ifnames=0"#p' /etc/default/grub #用分组的方法
11)备份配置文件,添加.orig这个扩展名
find -name "*.conf" -exec cp {} {}.orig \; #备份到同一个目录下
find /etc -maxdepth 1 -type f -name "*.conf" -exec cp {} /data/dir/{}.bck \; #备份到不同的目录下,事先得创建出目录etc
12)提示删除存在时间超过3天以上的joe的临时文件
find /tmp -ctime +3 -user joe -ok rm {} \; #-ctime +3实际代表4天及以上的
13)在主目录中寻找被其他用户写的文件
find ~ -perm -002 -exec chmod o-w {} \;
14)查找/data下的权限为644,后缀为sh的普通文件,增加执行权限
find /data -type f -perm 644 -name "*.sh" -exec chmod 755 {} \;
15)查看/home的目录
find /home -type d -ls
16)查看/var目录下属主为root,且属组为mail的所有文件
find /var -user root -group mail
17)查看/var目录下不属于root、lp、solar的所有文件
find /var -not \( -user root -o -user lp -o -user solar \) -ls
18)查找/var目录下最近一周内其内容修改过,同时属主不会root,也不是postfix的文件
find /var -type f -mtime -7 -not \( -user root -o -user postfix \) -ls
19)查找当前系统上没有属主或属组,且最近一周内曾被访问过的文件
find /home \( -nogroup -o -nouser \) -ls
20)查找/etc目录下大雨1M且类型为普通文件的所有文件
find /etc -size +1M -type f | xargs ls -lh
21)查找/etc目录下所有用户都没有写权限的文件
find /etc/ ! -perm /222 -ls
22)查找/etc目录下至少有一类用户没有执行权限的文件
find /etc/ ! -perm -111 -ls
23)查找/etc/init.d目录下,所有用户都有执行权限,且其他用户有写权限的文件
find /etc/init.d/ -perm -113
sed&tar&find
最新推荐文章于 2024-11-14 17:45:18 发布