1. history命令用于显示用户以前执行过的历史命令,并且能对历史命令进行追加和删除等操作。

常用参数

  1. -a: 将当前shell会话的历史命令追加到命令历史文件中,命令历史文件是保存历史命令的配置文件
  2. -c: 清空当前历史命令列表
  3. -d: 删除历史命令列表中指定序号的命令
  4. -n: 从命令历史文件中读取本次Shell会话开始时没有读取的历史命令
  5. -r: 读取命令历史文件到当前的Shell历史命令内存缓冲区
  6. -s: 将指定的命令作为单独的条目加入命令历史内存缓冲区。在执行添加之前先删除命令历史内存缓冲区中最后一条命令
  7. -w: 把当前的shell历史命令内存缓冲区的内容写入命令历史文件

history的一些用法

  1. [root@localhost ~]# history 20 # 显示最后20条历史命令
  2. 234 ls gcc/
  3. 235 tar czvf gcc.tar.gz gcc/
  4. 236 ll
  5. 237 scp gcc.tar.gz 192.168.10.150:/root
  6. 238 yum -y install kernel-headers
  7. 239 find /var/cache/yum/ -name "*.rpm" -exec mv {} gcc/ \;
  8. 240 cd g
  9. 241 cd gcc/
  10. 242 ll
  11. 243 cp kernel-headers-3.10.0-1160.6.1.el7.x86_64.rpm 192.168.10.150:/root
  12. 244 scp kernel-headers-3.10.0-1160.6.1.el7.x86_64.rpm 192.168.10.150:/root
  13. 245 poweroff
  14. 246 hostnamectl
  15. 247 poweroff
  16. 248 history
  17. 249 history --help
  18. 250 man history
  19. 251 history man
  20. 252 man history
  21. 253 history 20
  22. [root@localhost ~]# !242 # 执行第242条历史命令(上面可以看到第242条命令是ll)
  23. ll # 哼,那些内容少儿不宜,不给看~~~
  24. [root@localhost ~]# !! # 再次执行上一条历史命令
  25. ll # 没错,少儿不宜,还是不给你看
  26. [root@localhost ~]# history -c # 清空当前历史命令列表
  27. [root@localhost ~]# history
  28. 1 history # 这下干净了

修改history命令默认保存的数量

  1. [root@localhost ~]# echo $HISTSIZE
  2. 1000 # 系统默认保留的是1000条历史命令
  3. [root@localhost ~]# sed -i 's/^HISTSIZE=1000/HISTSIZE=3000/' /etc/profile
  4. [root@localhost ~]# source /etc/profile
  5. [root@localhost ~]# echo $HISTSIZE
  6. 3000 # 将默认的1000改为了3000

来给history穿衣服

  1. 上面咱也看到了,没有衣服的history是赤裸裸的,只有编号和命令,咱们现在给她穿衣服
  2. [root@localhost ~]# vim /etc/profile.d/history.sh # /etc/profile.d/下的.sh结尾的文件会在用户login或切换用户的时候自动执行
  3. #!/bin/bash
  4. export HISTFILE=$HOME/.bash_history # 用户登录机器后每敲一个命令都会被记录到HISTFILE指定的文件中,而且是以追加的方式写入的
  5. export HISTSIZE=1200 # history命令最多输出1200行
  6. export HISTFILESIZE=1200 # .bash_history文件中最多保留1200行
  7. export HISTCONTROL=ignoredups # 从命令历史中剔除连续重复的条目
  8. # export HISTCONTROL=erasedups # 清除整个历史命令中的重复条目
  9. # export HISTCONTROL=ignorespace # 强制 history不记住特定的命令,在不想被记住的命令前面输入一个空格
  10. export HISTTIMEFORMAT="`whoami` %F %T " # 指定history的输出格式
  11. shopt -s histappend # 由于bash的history文件默认是覆盖,如果存在多个终端,最后退出的会覆盖以前历史记录,这个是改为追加形式
  12. PROMPT_COMMAND="history -a" # 实时追加history,不必等用户退出才将内存中的history记录到文件
  13. typeset -r HISTTIMEFORMAT # 使用shell的typeset命令,带-r选项,这使得指定的变量拥有只读属性
  14. [root@localhost ~]# source /etc/profile.d/history.sh

让我们重新认识一下history

  1. [root@localhost ~]# history
  2. 1 root 2020-12-11 11:42:51 history
  3. 2 root 2020-12-11 11:44:02 echo $HISTSIZE
  4. 3 root 2020-12-11 11:44:35 sed -i 's/^HISTSIZE=1000/HISTSIZE=3000/' /etc/profile
  5. 4 root 2020-12-11 11:44:40 source /etc/profile
  6. 5 root 2020-12-11 11:44:51 echo $HISTSIZE
  7. 6 root 2020-12-11 11:45:34 vim /etc/profile
  8. 7 root 2020-12-11 12:18:58 vim /etc/profile.d/history.sh
  9. 8 root 2020-12-11 12:20:18 source /etc/profile.d/history.sh
  10. 9 root 2020-12-11 12:20:21 history
  11. '多了操作的用户以及操作的时间,是不是变好看了'

有个姑娘叫history的更多相关文章

  1. 我们一起来学Shell - 初识shell

    文章目录 Shell 的分类 `bash` `csh` `ksh` `tcsh` `sh` `nologin` `zsh` Shell 能做什么 bash 环境变量文件 `/etc/profile` ...

  2. History API与浏览器历史堆栈管理

    移动端开发在某些场景中有着特殊需求,如为了提高用户体验和加快响应速度,常常在部分工程采用SPA架构.传统的单页应用基于url的hash值进行路由,这种实现不存在兼容性问题,但是缺点也有--针对不支持o ...

  3. 使用backbone的history管理SPA应用的url

    本文介绍如何使用backbone的history模块实现SPA应用里面的URL管理.SPA应用的核心在于使用无刷新的方式更改url,从而引发页面内容的改变.从实现上来看,url的管理和页面内容的管理是 ...

  4. 使用h5的history改善ajax列表请求体验

    信息比较丰富的网站通常会以分页显示,在点“下一页”时,很多网站都采用了动态请求的方式,避免页面刷新.虽然大家都是ajax,但是从一些小的细节还是 可以区分优劣.一个小的细节是能否支持浏览器“后退”和“ ...

  5. HTML5学习笔记之History API

    这系列文章主要是学习Html5相关的知识点,以学习API知识点为入口,由浅入深的引入实例,让大家一步一步的体会"h5"能够做什么,以及在实际项目中如何去合理的运用达到使用自如,完美 ...

  6. Linux下history命令用法

    如果你经常使用 Linux 命令行,那么使用 history(历史)命令可以有效地提升你的效率.本文将通过实例的方式向你介绍 history 命令的 15 个用法. 使用 HISTTIMEFORMAT ...

  7. safari 浏览器window.history.go(-1)运行无效解决办法

    这几天做了几个手机端app的wap页面,做完之后发现一个问题,那就是ios系统下的safari浏览器不支持window.history.go(-1)..无语... 解决方法很简单!加上return f ...

  8. History lives on in this distinguished Polish city II 2017/1/5

    原文 Some fresh air After your time underground,you can return to ground level or maybe even a little ...

  9. History lives on in this distinguished Polish city 2017/1/4

    原文 History lives on in this distinguished Polish city Though it may be ancient. KraKow, Poland, is a ...

随机推荐

  1. docker安装easymock

    一.准备 参考docker安装mongodb与redis文章 二.拉取 docker pull docker.io/easymock/easymock 三.启动 1.创建配置目录 mkdir -f / ...

  2. [转]webpack配置本地服务器

    亲测,webpack打包vue项目之后生成的dist文件可以部署到 express 服务器上运行. 我的vue项目结构如下: 1. 进入该vue项目目录,打开git bash,执行:npm run b ...

  3. Centos7安装erlang以及RabbitMQ Centos启动rabbitmq

    本文使用版本:  rabbitmq-server-3.8.3-1.el7.noarch.rpm   Centos7  erlang  22.3.1 在线安装 yum install esl-erlan ...

  4. Ubuntu 18.04 server安装+搭建Seacms v10.1网站

    0x00 写在前面 以前我天真的认为,ubuntu Desktop会安装了,server就无所谓了,其实完全不然,server还是有一些坑点的. 之所以选择Seacms搭建网站,是因为这个SeaCMS ...

  5. 1.配置桥接,并抓包验证 2.实现免密登录 3.修改登录端口: 22-》2222 4.不允许root用户远程登录 5.创建用户sshuser1,并设置密码,且只允许sshuser1远程ssh登录

    1.配置桥接:  抓包时如果有ens160的ICMP,说明我们的桥接搭建成功通过桥接访问到了ens160(这里忘加图片了) (1)创建一个桥接设备和会话 (2)添加设备和会话到桥接设备上 (3)启动从 ...

  6. golang中使用switch语句根据年月计算天数

    package main import "fmt" func main() { days := CalcDaysFromYearMonth(2021, 9) fmt.Println ...

  7. 人口信息普查系统-JavaWeb-三

    今天给大家分享前端主页面的代码,设有五个功能.涉及到增删改查,用到了超链接的跳转. <!DOCTYPE html> <html lang="en"> < ...

  8. JavaScript通过父节点ID递归生成JSON树

    JavaScript通过父节点ID递归生成JSON树: · 实现思路:通过递归实现(第一次递归的时候查询出所有的父节点,然后通过当前父节点id不断地去查询所有子节点,直到递归完毕返回)   · 代码示 ...

  9. ApacheCN 数据科学译文集 2020.8

    协议:CC BY-NC-SA 4.0 不要担心自己的形象,只关心如何实现目标.--<原则>,生活原则 2.3.c 在线阅读 ApacheCN 面试求职交流群 724187166 Apach ...

  10. Nginx网络压缩 CSS压缩 图片压缩 JSON压缩

    一.序言 使用Nginx作为web应用服务时,会代理如下常见文件:js.css.JSON.图片等,本文提供基于Nginx内置的压缩技术,提供网络请求响应速度的解决方案. 1.网络压缩原理 网络压缩的原 ...