本次探究任务:
1、每次系统注销时记录注销时间,
2、将注销前的50条命令记录下来。
知识点补充:
用户目录下.bash_history
和.bash_logout
和.bash_profile
和.bashrc
作用
详细介绍参看 该博客 博客链接
这次主要用的是.bash_logout
该文件,他的用途就是: 用户登出时执行的命令
探究做法一:
1、查看是否有.bash_logout 文件
2、编辑该文件,编写内容
代码中的whoami只是为了辨别是谁退出了,本次探究中没有要求可不写该句话
# ~/.bash_logout
whoami >> /logout.txt
date "+%Y-%m-%d %H:%M:%S" >> /logout.txt
history |tail -n 50 >> /history.txt
3.exit 退出测试,重新登录,查看根目录/ 下的logout.txt 和 history.txt
查看文件
探究做法二:
如果登出的时候要执行的命令过多等等,遇到这种情况的做法
1、还是编写.bash_logout,并在~ 目录下创建一个脚本文件logout.sh
vim .bash_logout 编写一下内容
创建logout.sh 文件
写入以下内容
#!/bin/bash
date "+%Y-%m-%d %H:%M:%S" >> /var/log/logout
HISTFILE=~/.bash_history
set -o history
history | tail -n 50 >> /history.txt
2、进行测试
exit登出,然后重新登录,进行查看/var/log/logout 和 /history.txt
补充说明:
第一点: $HISTFILE bash启动的时候会读取~/.bash_history文件并载入到内存中,这个变量就用于设置.bash_history文件,bash退出时也会把内存中的历史回写到.bash_history文件
第二点: linux bash内置命令与普通命令的区别:which查不到的都是bash内置命令
history是bash内置命令,能不能开启由bash说了算
set -o查看是否开启
因此脚本中写了
第三点: 此脚本也可以加上用户的名称
这里需要注意的地方:
变量需要注意的地方
-
变量名和等号之间不能有空格。
-
命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
-
中间不能有空格, 可以使用下划线(_)。
-
不能使用标点符号。
-
不能使用bash里的关 键字(可用help命令 查看保留关键字)。
-
第二行使用的是尖号不是单引号 尖号(tab上边的那个键位)
shell将命令执行结果赋值给变量
- 用尖号把命令括起来,然后赋值给变量
dir=`pwd`
- 采用 变量=$(命令) 的形式
dir=$(pwd)