第五周学习
一、编写脚本 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

浙公网安备 33010602011771号