Linux命令记录配置

前言

记录shell命令行执行的所有命令,以备后续查询。

创建记录文件存放路径

sudo mkdir /var/history
#给目录/var/history赋予所有人的写权限 ——>-
sudo chmod a+w $HISTDIR
# 给目录/var/history赋予特殊属性——>
sudo chattr +a /var/history

向shell配置文件中添加配置,一般添加在/etc/目录下的shell相关配置中

配置如下

USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
HISTDIR=/var/history

if [ -z $USER_IP ]
    #如果string为空
then
    USER_IP=`hostname`
fi

if [ ! -d $HISTDIR ]
#如果目录为空
then
    mkdir -p  $HISTDIR
    #给目录/var/history赋予所有人的写权限 ——>-
    chmod a+w $HISTDIR
    # 给目录/var/history赋予特殊属性——>
    chattr +a /var/history
fi

readonly DT=$(date +%F)
readonly HISTFILE=$HISTDIR/$USER-$UID-$DT.log      #设置保存命令历史记录的路径及文件名称
readonly HISTSIZE=null
readonly HISTFILESIZE=500000
readonly HISTTIMEFORMAT="%F %T `who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`  `whoami ` "
shopt -s histappend                                                         #一个用户可以>同时打开多个终端
readonly PROMPT_COMMAND="history -a"             #实时追加当前历史命令到history文件
if [ "$HISTCONTROL" = "ignorespace" ] ; then
    export HISTCONTROL=ignoreboth
else
    export HISTCONTROL=ignoredups
fi
export HISTSIZE HISTCONTROL

版权声明:除特别注明外,本站所有文章均为王晨曦个人站点原创

转载请注明:出处来自王晨曦个人站点 » Linux命令记录配置

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注

  1. 王晨曦 说道:

    1. 文件名含有特殊字符,直接使用 rm 可能删除不了,可以使用如下方法: 1) 使用 ls -i 查处该文件的 inode 号,假设为654321 2) 使用find命令删除 find ./ -inum 654321 -exec rm '{}' \; 2. 如果文件名是以 - 连字符开头的,可以使用如下方法来删除,如删除 "-filename" 文件: rm -- -filename rm ./-filename