第五周

1、编写脚本 createuser.sh,实现如下功能:使用一个用户名做为参数,如果 指定参数的用户存在,就显示其存在,否则添加之;显示添加的用户的id号等信息

#!/bin/bash 
#使用一个用户名做为参数,如果 指定参数的用户存在,就显示其存在,
#否则添加之;显示添加的用户的id号等信息
E_WRONG_NUMBER_ARGS=10
E_WRONG_USERNAME_FORMAT=20
Number_of_expected_args=1
pattern='^[[:alpha:]][[:alnum:]]*'
if [ $# -ne  $Number_of_expected_args  ]; then
   echo "参数错误,正确格式: `basename $0` user_name(String)"
   exit  $E_WRONG_NUMBER_ARGS
elif [[ ! $1 =~ $pattern  ]]; then
  echo "请输入正确的用户名格式."
  exit $E_WRONG_USERNAME_FORMAT
fi

getent passwd $1  &>/dev/null
if [ $? -eq 0 ]; then
  echo "$1用户已经存在"
  exit
else
  adduser $1
  echo "$1用户添加成功"
  id $1
  echo "done"
fi

2、编写生成脚本基本格式的脚本,包括作者,联系方式,版本,时间,描述等

#!/bin/bash 
DATE=`date +%F`
AUTHOR='kenny'
EMAIL='771401822@qq.com'
SCRIPT_NAME=`basename $0`
VERSION='1.0'
DESC='my bash program'
echo "###################################################################"
echo "#Script Name    : $SCRIPT_NAME "
echo "#Version        : $VERSION"
echo "#Date           : $DATE "
echo "#Email          : $EMAIL "                                          
echo "#AUTHOR         : $AUTHOR "                                          
echo "Description     : $DESC "
echo "###################################################################"

3、查找/etc目录下大于1M且类型为普通文件的所有文件

[root@centos8 ~]$find /etc -type f -size +1M
/etc/selinux/targeted/policy/policy.31
/etc/udev/hwdb.bin

4、打包/etc/目录下面所有conf结尾的文件,压缩包名称为当天的时间,并拷贝到/usr/local/src目录备份。

[root@centos8 data]$find /etc -name *.conf -type f -print0 | xargs -0 tar -cvf `date +%F`.tar
[root@centos8 data]$cp 2020-12-24.tar /usr/local/src
[root@centos8 data]$ls /usr/local/src
2020-12-24.tar
//一条命令
file_name=$(date +%F).tar;find /etc -name *.conf -type f -print0 | xargs -0 tar -cvf $file_name;cp $file_name /usr/local/src/

5、查找当前系统上没有属主或属组,且最近一个周内曾被访问过的文件或目录

[root@centos8 dir1]$find / \( -nouser -o -nogroup \) -atime -7
find: ‘/proc/3739/task/3739/fd/9’: No such file or directory
find: ‘/proc/3739/task/3739/fdinfo/9’: No such file or directory
find: ‘/proc/3739/fd/8’: No such file or directory
find: ‘/proc/3739/fdinfo/8’: No such file or directory
/home/mandriva
/home/mandriva/.bash_logout

6、查找/etc目录下至少有一类用户没有执行权限的文件

#相当于全部有执行权限的文件除外
[root@centos8 dir1]$find /etc -not -perm -111 -ls
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、编写脚本 createuser.sh,实现如下功能:使用一个用户名做为参数,如果 指定参数的用户存在,就显示其...
    紫火红云阅读 149评论 0 0
  • Q1:编写脚本 createuser.sh,实现如下功能:使用一个用户名做为参数,如果 指定参数的用户存在,就显示...
    丹枫_Nariss阅读 144评论 0 0
  • 1.一个目录中有很多文件(ls -l 查看时好多屏),想用一条命令最快速度查看到最近更新的文件。如何看? ls -...
    高博666阅读 276评论 0 1
  • 命令部分: 1.一个目录中有很多文件(ls -l 查看时好多屏),想用一条命令最快速度查看到最近更新的文件。如何看...
    Gentlewei丶阅读 282评论 0 0
  • 1.一个目录中有很多文件(ls -l 查看时好多屏),想用一条命令最快速度查看到最近更新的文 件。如何看? ls ...
    song先生i阅读 212评论 0 0