显示或操作历史列表。命令语法history[-c][-doffset][n]history-anrw[filename]history-psarg[arg...]命令功能显示历史列表。操作历史列表。命令选项-a将当前内存的历史追加(append)到历史文件中-n从历史文件中读取当前内存记录中未读的行Output-r从历史文件中读取所有记录并追加到内存历史记录中-w从内存历史中读取数据并覆盖到历史文件中,可以指定保存记录的文件-p以列表形式输出参数,但不保存-s将参数保存到命令历史记录中,即可用于伪造命令记录命令参数n:可选,只列出最近的n条记录。filename:可选,表示历史文件;默认的调用顺序是文件名、环境变量HISTFILE、~/.bash_history。返回值返回成功,除非提供了非法选项或发生错误。使用history命令显示最近10条历史命令>history10清除历史>history-c通过修改环境变量控制历史的保存属性$HISTSIZE最大历史记录条数$HISTFILE历史存储文件$HISTFILESIZE最大historyfileentrysnumber$HISTTIMEFORMAT="%F%T"显示命令历史时的输出时间等格式$HISTIGNORE="str1;str2;str3*"表示不记录str1,str2命令和str3开头的命令一般在/etc/bashrc定义这些变量>vim/etc/bashrcexportHISTTIMEFORMAT='%F%T'#让历史命令记录运行时间exportHISTSIZE=1000000#设置保存历史命令的条数exportHISTFILESIZE=1000000#设置文件大小保存历史命令shopt-shistappend#多个终端同时操作时,避免命令覆盖,使用附加方法PROMPT_COMMAND='history-a'#实时记录历史命令,防止丢失>source/etc/bashrcsavethe操作命令到文件方法1vim/etc/bashrcexportHISTORY_FILE=/var/.history/date+'%y-%m-%d'.log#customhistorycommandsavefileexportPROMPT_COMMAND='{date"+%Y-%m-%d%T-用户:$USERIP:$SSH_CLIENTPS:$SSH_TTY-$(历史1|{读取x命令;回声“$cmd”;})";}>>$HISTORY_FILE'实时记录历史命令到自定义文件,日志文件中不记录方法2>vim/etc/bashrcexportPROMPT_COMMAND='history-a{command=$(history1|{readxy;echo$y;});logger-plocal1.notice-tbash-i"user=$USER,ppid=$PPID,from=$SSH_CLIENT,pwd=$PWD,command:$command"}'>vim/etc/syslog.conflocal1.notice/var/log/cmd.log记录在日志中,可以使用日志服务器传输log.highsecurityPROMPT_COMMAND是一个bash环境变量,这个变量的内容作为一个普通的bash命令执行,执行时间是bash显示提示符(命令行前缀提示符)之??前。这个很容易理解,就是,每次执行一条命令前,先执行PROMPT_COMMAND,然后提示(命令行前缀提示)。原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门站
