第三周
1、显示/etc目录下,非字母开头,后面跟了一个字母以及其他任意长度任意字符的文件或目录
ls /etc|grep '^[[:digit:]]'
2、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录下
cp -ra /etc/p*[:alpha:] /tmp/mytest1/
3、将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中
cat /etc/issue |tr 'a-z' 'A-Z' >> /tmp/issue.out
4、
(1)创建组distro,其GID为2019
groupadd -g 2019 distro
(2)创建用户mandriva,其ID号为1005;基本组为distro
useradd -u 1005 -g distro mandriva
(3)创建用户mageia,其ID号为1100,家目录为/home/linux
useradd -d /home/linux -u 1100 mageia
(4)给用户mageia添加密码,密码为mageedu,并设置用户密码7天后过期
echo "mageedu"|passwd --stdin mageia
passwd mageia -x 7
(5)删除mandriva,但保留其家目录
userdel mageia
(6)创建用户slackware,其ID号为2002,基本组为distro,附加组peguin
groupadd peguin ; useradd -u 20002 -g distro -G peguin slackware
(7)修改slackware的默认shell为/bin/tcsh
usermod -s /bin/tcsh slackware
(8)为用户slackware新增附加组admins,并设置不可登陆
usermod -G admins -s /sbin/nologin slackware
5、创建用户user1、user2、user3。在/data/下创建目录test
(1)目录/data/test属主、属组为user1
chown -R user1:user1 /data/test
(2)在目录属主、属组不变的情况下,user2对文件有读写权限
setfacl -m u:user2:rw /data/test
(3)user1在/data/test目录下创建文件a1.sh,a2.sh,a3.sh,a4.sh,设置所有用户都不可删除a1.sh,a2.sh文件、除了user1及root之外,所有用户都不可删除a3.sh,a4.sh
su - user1 ; touch /data/test/a{1..4}.sh
chattr +i /data/test/a1.sh /data/test/a2.sh
chmod o+x /data/test/a3.sh /data/test/a4.sh
chmod o+t /data/test/a3.sh /data/test/a4.sh
(4)user3增加附加组user1,同时要求user1不能访问/data/test目录及其下所有文件
usermod -G user1 user3
setfacl -m u:user1:- /data/test
(5)清理/data/test目录及其下所有文件的acl权限
setfacl -R -b /data/test
第四周
1、统计出/etc/passwd文件中其默认shell为非/sbin/nologin的用户个数,并将用户都显示出来
cat /etc/passwd|grep -v '/sbin/nologin'|wc -l
cat /etc/passwd|grep -v '/sbin/nologin'|awk -F: '{print $1}'
2、查出用户UID最大值的用户名,UID及shell类型
cat /etc/passwd|sort -t: -k3 -rn|awk -F: 'NR==1{print $1,$3,$NF}'
3、统计当前连接本机的每个远程主机IP的连接数,并按达到小排序
netstat -nt|tr -s " " ":"|cut -d: -f6|sort|uniq -c|sort -rn
4、编写脚本disk.sh,显示当前硬盘分区中空间利用率最大的值
#!/bin/bash
re=`df -h|tr -s " " ":"|awk -F[:%] 'NR!=1{print $5}'|sort -rn|head -n 1`
echo ${re}%
5、编写脚本system info.sh,显示当前主机系统信息,包括主机名,IPV4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小
#!/bin/bash
hostname=`hostname`
ipv4=`ifconfig eth0|grep inet|tr -s " " ":"|head -n 1|cut -d: -f3`
osVersion=`cat /etc/redhat-release`
kernelVersion=`uname -r`
cpuType=`lscpu|grep 'Model name'|tr -s ' '|cut -d' ' -f5`
menTotal=`cat /proc/meminfo |head -n 1|awk -F: '{print $2}'`
disktotal=`lsblk -b|awk 'NR!=1{sum += $4}END{print sum/(1024**3)}'`
echo -e "HostNmae: "$hostname
echo -e "IPV4: "$ipv4
echo -e "OS Version: "$osVersion
echo -e "Kernel Version: "$kernelVersion
echo -e "CPU Type: "$cpuType
echo -e "Memtotl: "$menTotal
echo -e "Disk tatal: "${disktotal}G