shell第一天练习
创始人
2024-05-04 16:29:56

题目:

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.shcount cmd4 ll4 cd /etc/yum.repos.d/2 cat CentOS-Base.repo1 yun install python361 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
thenecho "user rhel already exists."
elseuseradd rhel -p redhatecho "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

在这里插入图片描述

相关内容

热门资讯

北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
阿西吧是什么意思 阿西吧相当于... 即使你没有受到过任何外语培训,你也懂四国语言。汉语:你好英语:Shit韩语:阿西吧(아,씨발! )日...