sed&tar&find

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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值