当前位置 博文首页 > 超负荷小生的博客:shell简单应用

    超负荷小生的博客:shell简单应用

    作者:[db:作者] 时间:2021-09-08 19:45

    本次探究任务:

    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将命令执行结果赋值给变量

    1. 尖号把命令括起来,然后赋值给变量
     dir=`pwd`
    
    1. 采用 变量=$(命令) 的形式
    dir=$(pwd)
    
    cs