题目:
1、在当前主机编写脚本文件history_max.sh显示主机中执行频率最高的前5个命令。
2、判断主机是否存在rhel用户,如果存在则设置密码为redhat,如果不存在则创建用户并设置密码。
3、通过设置变量HISTTIMEFORMAT,使得当执行history命令时输出格式如下:[2022-12-25 16:53:42][root]history
1、在当前主机编写脚本文件history_max.sh显示主机中执行频率最高的前5个命令。
思路:使用history命令获取记录历史命令,再通过tr、cut、sort、uniq等命令进行替换、切割、排序、统计操作,进而得到结果并输出。
操作:
1、查看history输出内容
2、根据history输出内容特征,用vim编写history_max.sh脚本
[root@localhost shell]# vim history_max.sh
#!/bin/bash
echo " count cmd"
history | tr -s ' ' | cut -d' ' -f3- | sort | uniq -c | sort -k1 -nr | head -5
注释:
tr -s ’ ’ 表示将history输出的重复空格删除;
cut -d ’ ’ -f3- 表示切割出以空格为分隔符的第3列及以后的所有列;
sort 表示将切割出的内容排序;
uniq -c 表示删除连续的重复行并在每列旁边显示该行连续重复出现的次数;
sort -k1 -nr 表示指定第一列为排序依据并以数值型倒序排序。
3、设置history_max.sh脚本为可执行文件
[root@localhost shell]# chmod a+rx history_max.sh
4、测试运行脚本
[root@localhost shell]# source history_max.sh
count cmd
4 ll
4 cd /etc/yum.repos.d/
2 cat CentOS-Base.repo
1 yun install python36
1 yum repolist [all]
2、判断主机是否存在rhel用户,如果存在则设置密码为redhat,如果不存在则创建用户并设置密码。
1、使用vim编辑useradd_rhel.sh脚本
[root@localhost shell]# vim useradd_rhel.sh
#!/bin/bash
if grep rhel /etc/passwd &> /dev/null
then
echo "user rhel already exists."
else
useradd rhel -p redhat
echo "add user rhel successfully."
fi
2、设置useradd_rhel.sh脚本为可执行文件
[root@localhost shell]# chmod a+rx useradd_rhel.sh
3、运行测试脚本
3、通过设置变量HISTTIMEFORMAT,使得当执行history命令时输出格式如下
[2022-12-25 16:53:42][root]history
1、打开 /etc/profile 或 /etc/bashrc 文件,设置环境变量HISTTIMEFORMAT
[root@localhost ~]# vim /etc/profile
export HISTTIMEFORMAT="[%F %T][`whoami`]"
2、重新读取文件
[root@localhost ~]# source /etc/profile
3、验证生效
[root@localhost ~]# history | more