第五周学习

一、编写脚本 createuser.sh,实现如下功能:使用一个用户名做为参数,如果 指定参数的用户存在,就显示其存在,否则添加之;显示添加的用户的id号等信息
#!/bin/bash
read -p "请输入要创建的用户名:" USER
id $USER &> /dev/null && echo "$USER 用户存在" || (useradd $USER && echo "$USER添加完成,具体信息是:" && id $USER)
[root@centos7 shellscript]# chmod +x createuser.sh
[root@centos7 shellscript]# bash -n /root/shellscript/createuser.sh 
[root@centos7 shellscript]# bash createuser.sh 
请输入要创建的用户名:killer
killer添加完成,具体信息是:
uid=1001(killer) gid=1001(killer) groups=1001(killer)
二、编写生成脚本基本格式的脚本,包括作者,联系方式,版本,时间,描述等

生成配置文件~/.vimrc(个人)或者/etc/vimrc (全局)

[root@centos7 ~]# vim .vimrc
set ts=4          设置tab为四个空格
set expandtab     tab用空格代替
set ignorecase    不区分大小写
set cursorline    设置光标所在行的标识线
set autoindent    自动缩进
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,"#Auther:        blaine")
    call setline(5,"#QQ:            1043884623")
    call setline(6,"#Date:          ".strftime("%Y-%m-%d"))
    call setline(7,"#FileName:      ".expand("%"))
    call setline(8,"#Version:       1.0")
    call setline(9,"#Description:   The test scritps")
    call setline(10,"#*****************************************")             
    call setline(11,"")
    endif
endfunc
autocmd BufNewFile * normal G

[root@centos7 ~]# vim test.sh

#!/bin/bash
#
#****************************************
#Auther:        blaine
#QQ:            1043884623
#Date:          2021-03-13
#FileName:      test.sh
#Version:       1.0
#Description:   The test scritps
#*****************************************

三、查找/etc目录下大于1M且类型为普通文件的所有文件
[root@centos7 ~]# find /etc -size +1M -type f -ls
135082742 7760 -r--r--r--   1 root     root      7942570 Feb 28 10:43 /etc/udev/hwdb.bin
201618107 3808 -rw-------   1 root     root      3896194 Nov  3  2018 /etc/selinux/targeted/active/policy.kern
350725 1380 -rw-r--r--   1 root     root      1412826 Nov  3  2018 /etc/selinux/targeted/contexts/files/file_contexts.bin
201618127 3808 -rw-r--r--   1 root     root      3896194 Nov  3  2018 /etc/selinux/targeted/policy/policy.31
四、打包/etc/目录下面所有conf结尾的文件,压缩包名称为当天的时间,并拷贝到/usr/local/src目录备份。

因为tar使用绝对路径要用-P,否者会报错。

[root@centos7 ~]# find /etc/ -name "*.conf" | xargs tar zcvPf /usr/local/src/`date +%F`.tar.gz        
/etc/resolv.conf
/etc/dracut.conf
/etc/depmod.d/dist.conf
/etc/prelink.conf.d/nss-softokn-prelink.conf
/etc/prelink.conf.d/fipscheck.conf
/etc/prelink.conf.d/grub2.conf
/etc/modprobe.d/dccp-blacklist.conf
/etc/modprobe.d/tuned.conf
/etc/modprobe.d/firewalld-sysctls.conf
/etc/rsyslog.d/listen.conf
/etc/systemd/bootchart.conf
/etc/systemd/coredump.conf
/etc/systemd/journald.conf
/etc/systemd/logind.conf
/etc/systemd/system.conf
/etc/systemd/user.conf
/etc/dbus-1/system.d/org.freedesktop.hostname1.conf
/etc/dbus-1/system.d/org.freedesktop.import1.conf
/etc/dbus-1/system.d/org.freedesktop.locale1.conf
/etc/dbus-1/system.d/org.freedesktop.login1.conf
/etc/dbus-1/system.d/org.freedesktop.machine1.conf
/etc/dbus-1/system.d/org.freedesktop.systemd1.conf
/etc/dbus-1/system.d/org.freedesktop.timedate1.conf
/etc/dbus-1/system.d/org.freedesktop.PolicyKit1.conf
/etc/dbus-1/system.d/wpa_supplicant.conf
/etc/dbus-1/system.d/nm-dispatcher.conf
/etc/dbus-1/system.d/nm-ifcfg-rh.conf
/etc/dbus-1/system.d/org.freedesktop.NetworkManager.conf
/etc/dbus-1/system.d/teamd.conf
/etc/dbus-1/system.d/com.redhat.tuned.conf
/etc/dbus-1/system.d/FirewallD.conf
/etc/dbus-1/session.conf
/etc/dbus-1/system.conf
/etc/host.conf
/etc/sysctl.d/99-sysctl.conf
/etc/udev/udev.conf
/etc/lvm/lvm.conf
/etc/lvm/lvmlocal.conf
/etc/NetworkManager/NetworkManager.conf
/etc/X11/xorg.conf.d/00-keyboard.conf
/etc/pki/ca-trust/ca-legacy.conf
/etc/sestatus.conf
/etc/ld.so.conf
/etc/ld.so.conf.d/mariadb-x86_64.conf
/etc/ld.so.conf.d/kernel-3.10.0-957.el7.x86_64.conf
/etc/nsswitch.conf
/etc/yum/protected.d/systemd.conf
/etc/yum/pluginconf.d/fastestmirror.conf
/etc/yum/pluginconf.d/langpacks.conf
/etc/yum/version-groups.conf
/etc/krb5.conf
/etc/sysctl.conf
/etc/wpa_supplicant/wpa_supplicant.conf
/etc/libaudit.conf
/etc/security/access.conf
/etc/security/chroot.conf
/etc/security/group.conf
/etc/security/limits.conf
/etc/security/limits.d/20-nproc.conf
/etc/security/namespace.conf
/etc/security/pam_env.conf
/etc/security/sepermit.conf
/etc/security/time.conf
/etc/security/pwquality.conf
/etc/sasl2/smtpd.conf
/etc/openldap/ldap.conf
/etc/libuser.conf
/etc/logrotate.conf
/etc/asound.conf
/etc/GeoIP.conf
/etc/selinux/semanage.conf
/etc/selinux/targeted/setrans.conf
/etc/plymouth/plymouthd.conf
/etc/yum.conf
/etc/tuned/tuned-main.conf
/etc/firewalld/firewalld.conf
/etc/kdump.conf
/etc/audisp/audispd.conf
/etc/audisp/plugins.d/af_unix.conf
/etc/audisp/plugins.d/syslog.conf
/etc/audit/auditd.conf
/etc/rsyslog.conf
/etc/chrony.conf
/etc/man_db.conf
/etc/e2fsck.conf
/etc/mke2fs.conf
/etc/sudo-ldap.conf
/etc/sudo.conf
/etc/vconsole.conf
/etc/locale.conf
[root@centos7 ~]# ll /usr/local/src
total 60
-rw-r--r--. 1 root root 57721 Mar 14 11:34 2021-03-14.tar.gz
五、查找当前系统上没有属主或属组,且最近一个周内曾被访问过的文件或目录
[root@centos7 ~]# find / \( -nouser -o -nogroup \) -atime -7
find: ‘/proc/8846/task/8846/fd/6’: No such file or directory
find: ‘/proc/8846/task/8846/fdinfo/6’: No such file or directory
find: ‘/proc/8846/fd/5’: No such file or directory
find: ‘/proc/8846/fdinfo/5’: No such file or directory
/var/spool/mail/killer2
/home/killer2
/home/killer2/.bash_logout
/home/killer2/.bash_profile
/home/killer2/.bashrc
六、查找/etc目录下至少有一类用户没有执行权限的文件
[root@centos7 ~]# find /etc -not -perm -111
posted @ 2021-03-14 13:19  jy03017317  阅读(91)  评论(0)    收藏  举报