shell第一天练习

本文介绍了如何使用bash脚本分析Linux系统中执行频率最高的前5个命令,以及检查和管理rhel用户,包括设置或创建用户并修改密码。同时,展示了通过设置HISTTIMEFORMAT变量来定制history命令的输出格式。
摘要由CSDN通过智能技术生成

题目:

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

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值