1、编写脚本 createuser.sh,实现如下功能:使用一个用户名做为参数,如果 指定参数的用户存在,就显示其存在,否则添加之;显示添加的用户的id号等信息。
[root@YWQ shell]# cat createuser.sh
#!/bin/bash
#
#*************************************
#author: YWQ
#QQ: @@@@@@@@
#email: @@@@@@@qq.com
#version: 1.0
#date: 2020-12-27
#description: script
#*************************************
## 判断传入参数是否为空
if [ "$#" -lt 1 ]
then
echo "Usage: createuser.sh [userId]"
exit 1
fi
## 判断用户是否存在 :
id $1 &> /etc/null
if [[ $? -eq 0 ]];then
echo "user already exit"
else
## 创建用户并显示用户信息
useradd $1
echo "$1 create successfully!"
echo "$(id $1)"
fi
[root@YWQ shell]# ./createuser.sh ywq
user already exit
[root@YWQ shell]# ./createuser.sh abc
abc create successfully!
uid=2006(abc) gid=2006(abc) groups=2006(abc)
[root@YWQ shell]#
2、编写生成脚本基本格式的脚本,包括作者,联系方式,版本,时间,描述等
[root@YWQ ~]# cat .vimrc
autocmd BufNewFile *.sh exec ":call SetTitle()"
func SetTitle()
if expand("%:e")=='sh'
call setline(1,"#!/bin/bash")
call setline(2,"#")
call setline(3,"#*************************************")
call setline(4,"#author: YWQ")
call setline(5,"#QQ: @@@@@@@@")
call setline(6,"#email: @@@@@@@qq.com")
call setline(7,"#version: 1.0")
call setline(8,"#date: ".strftime("%Y-%m-%d"))
call setline(9,"#description: script")
call setline(10,"#*************************************")
endif
endfunc
[root@YWQ ~]#
3、查找/etc目录下大于1M且类型为普通文件的所有文件
[root@YWQ ~]# find /etc/ -type f -size +1M -exec ls -lh {} \;
-rw-r--r--. 1 root root 8.2M Nov 28 16:40 /etc/selinux/targeted/policy/policy.31
-r--r--r--. 1 root root 8.8M Nov 28 16:42 /etc/udev/hwdb.bin
[root@YWQ ~]#
4、打包/etc/目录下面所有conf结尾的文件,压缩包名称为当天的时间,并拷贝到/usr/local/src目录备份。
[root@YWQ ~]# find /etc -name "*.conf" | xargs tar -zPcf `date +%F`.gz && cp `date +%F`.gz /usr/local/src
[root@YWQ ~]# ls /usr/local/src/
2020-12-27.gz rpcsvc-proto-1.4
[root@YWQ ~]# tar -tPf 2020-12-27.gz
/etc/resolv.conf
/etc/dnf/dnf.conf
/etc/dnf/plugins/copr.conf
/etc/dnf/plugins/debuginfo-install.conf
....
5、查找当前系统上没有属主或属组,且最近一个周内曾被访问过的文件或目录
[root@YWQ ~]# find / -ctime -7 -nogroup -nouser -ls
6、查找/etc目录下至少有一类用户没有执行权限的文件
find /etc -not -perm -111 -ls
简单总结 :
find
特点:
1.实时查找
2.文件遍历
3.精确匹配
4.速度较慢