8.2 命令历史
时间:2022-04-27
本文章向大家介绍8.2 命令历史,主要内容包括命令历史、查看之前敲过的命令、history命令中最多存放1000条历史命令、环境变量HISTSIZE在 /etc/profile 中配置、记录history查看历史命令时间、命令历史永久保存、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
命令历史
- history //查看之前的命令
- .bash_history //存放之前敲过的命令,在 /root/ 目录下
- 最大1000条 //默认参数值是1000条
- 变量HISTSIZE
- /etc/profile中修改 //在其中可编辑HISTSIZE参数
- HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S"
- 永久保存 chattr +a ~/.bash_history //增加隐藏权限,让他人无法删除 !! 表示执行最后一条命令
- !n 表示运行第几条命令(n表示数字)
- !echo 表示会在命令历史里面,倒着网上找第一个执行以 echo 开头的命令
查看敲过的命令存放位置
- 在我们使用过的命令,会存放在用户的家目录下 /root/.bash_history
[root@localhost ~]# ls /root/.bash_history
/root/.bash_history
[root@localhost ~]# cat !$
cat /root/.bash_history
init 0
ping www.baidu.com
dhclient
ping www.baidu.com
yum install -y net-tools
等等等
查看之前敲过的命令
- history //查看之前敲过的命令
[root@localhost ~]# history
1 init 0
2 ping www.baidu.com
3 dhclient
4 ping www.baidu.com
5 yum install -y net-tools
6 ifconfig
history命令中最多存放1000条历史命令
- history命令
- 最多存放1000条
- 是由环境变量HISTSIZE配置的
- 这是系统内置的环境变量 HISTSIZE [root@localhost ~]# echo $HISTSIZE 1000 [root@localhost ~]#
- 有时敲命令的时候,会出来更多的数值
- 这是因为 还没有真正的写入到文件中去,这些命令临时存放在内存中
- 有时敲命令的时候,会出来更多的数值
- 这是系统内置的环境变量 HISTSIZE [root@localhost ~]# echo $HISTSIZE 1000 [root@localhost ~]#
- history -c //把当前内存里面命令历史给清空
[root@localhost ~]# history -c
[root@localhost ~]# history
1 history
但不会清空 .bash_history 配置文件,仅仅是把历史命令给清空
在敲完命令后,直接到配置文件中查看,会发现其中并没有存在 这是因为仅存在内存中,只有在退出终端的时候,才能够保存到配置文件中去
环境变量HISTSIZE在 /etc/profile 中配置
- vim /etc/profile //在文件中修改环境变量的参数
- 进入后 /HISTSIZE 搜索,并修改参数
HISTSIZE=5000
- 在修改完参数后,要使参数生效,需
- 方法1:需要重进一下终端
- 方法二:执行 source /etc/profile
- 进入后 /HISTSIZE 搜索,并修改参数
[root@localhost ~]# vim /etc/profile //在里面编辑文件,改变参数
改变参数后,可以重启终端,或者source /etc/profile,发现参数生效
[root@localhost ~]# source !$ //执行命令后,会发现HISTSIZE值变化了
source /etc/profile
[root@localhost ~]# echo $HISTSIZE
5000
记录history查看历史命令时间
- 记录命令使用的时间,给变量重新赋值,执行 HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S" 即可
- 指定变量的格式
[root@localhost ~]# history
1 history
2 vim /etc/profile
3 yum provides "/*/vim"
4 yum install -y vim-enhanced
5 vim /etc/profile
6 source /etc/profile
7 echo $HISTSIZE
8 HISTIMEFORMAT="%Y/%m/%d %H:%M:%S"
9 history
[root@localhost ~]# HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S"
[root@localhost ~]# history
1 2017/11/15 23:25:28history
2 2017/11/15 23:35:08vim /etc/profile
3 2017/11/15 23:35:29yum provides "/*/vim"
4 2017/11/15 23:53:58yum install -y vim-enhanced
5 2017/11/15 23:59:04vim /etc/profile
6 2017/11/16 00:07:14source /etc/profile
7 2017/11/16 00:07:31echo $HISTSIZE
8 2017/11/16 00:13:45history
9 2017/11/16 00:14:49HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S"
10 2017/11/16 00:14:51history
11
[root@localhost ~]# echo $HISTTIMEFORMAT
%Y/%m/%d %H:%M:%S
这个环境变量仅仅在当前窗口下的终端生效,在打开另一个终端的时候,就会显示空的
也就是说,系统默认这个环境变量是不存在的
-
- 若想这个环境变量一直生效,则需要编辑 /etc/profile
[root@hf-01 ~]# vim /etc/profile
进入配置文件中,在变量HISTSIZE下放入
HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S"
然后 :wq 保存退出
[root@hf-01 ~]# source !$
source /etc/profile
-
- 在编辑完保存退出后,再source /etc/profile
-
- 这时候,在打开另一个终端
- 执行echo $HISTTIMEFORMAT 会出现%Y/%m/%d %H:%M:%S
- 这就表示执行成功,在其他终端下也生效了
命令历史永久保存
- chattr +a ~/.bash_history //增加隐藏权限,让别人无法删除
- 增加权限后,就只能追加,而不能被删除
[root@hf-01 ~]# chattr +a ~/.bash_history
[root@hf-01 ~]#
在运行很多命令后,未正常退出(exit或logout正常退出),直接关闭终端,那刚刚敲的命令就不会完整的保存到 .bash_history 中去
- !! 表示执行最后一条命令
- !n 表示运行第几条命令(n表示数字)
- !echo 表示会在命令历史里面,倒着网上找第一个执行以 echo 开头的命令
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Flutter开发笔记——BottomNavigationBar设置未选择Item颜色
- 访问虚拟机局域网服务拒绝连接
- uninstalling vim-minimal 同时也卸载了 sudo 解决方法
- 大点干!早点散----------深入剖析缓存加速--squid(反向代理与ACL访问控制以及sarg日志)
- JVM的Xms和Xmx参数设置为相同值有什么好处?
- 【CVPR 2020】一种新的门控通道注意力转换单元
- 5个好用的 CSS 函数
- java1.8中Object类源码分析
- 多线程基础(六):Object的wait方法以及notify与notifyAll的区别
- Day15:反转链表
- Day16:合并两个排序的链表
- 大厂面试爱问的「调度算法」,20 张图一举拿下
- Day17:树的子结构
- 多线程基础(七):关于HotSpot中notify方法不具备随机性的证明
- Day18:二叉树的镜像