Linux命令:history命令历史的管理及用法
bash可以保存的过去曾经执行过的命令。当某个用户登录到shell中,会读取该用户家目录中的~/.bash_history文件,并将历史命令列表保存到内存中。当用户退出当前shell时,会将内存中的历史命令列表覆盖至~/.bash_history文件。
我们可以通过# histroy 来查看历史命令。history是bash的内部命令。通过# help history获取帮助。
一、history的常见选项
# history
。。。 # 省略前面
man poweroff
poweroff --reboot
man poweroff
man shutdown
shutdown + "Goodbye SB"
shutdown -c
man rm
info rm
man history
enable
enable | grep history
help history
history
history -d
history
echo $HISTORYSIZE
history
# history -c 清空命令历史记录
# history -d N N为整数,删除历史中序号是N的命令
# history N N为整数,显示最近N条历史
# history -a 追加本次回话新执行的命令历史列表至~/.bash_history文件
# history -r 读历史文件附加到历史列表
# history -w 保存历史列表到指定的历史文件
# history -n 读历史文件中未读过的行到历史列表
# history -p 展开历史参数成多行,但不存在历史列表中
# history -s 展开历史参数成一行,附加在历史列表后
二、调用命令历史的方法
1、重复前一个命令,有4种方法
- 使用方向键↑选中命令,按↑↓调整,并回车执行
- 输入!! 并回车执行
- 输入!-1 并回车执行
- 按Ctrl + p,调出命令,并回车执行
2、 !:0 执行前一条命令(去除参数)
3、 Ctrl + n显示当前历史中的下一条!命令,但不执行
4、 Ctrl + j执行当前命令
5、 !n 执行history命令输出对应序号为n的命令
6、 !-n执行history历史中倒数第n个命令
7、 !string 重复前一个以“string”字符串开头的命令
8、 !?string 重复前一个包含string字符串的命令
9、 !string:p 仅打印命令历史,而不执行
10、 !$:p 打印输出!$(上一条命令的最后一个参数)的内容
11、 !*:p 打印输出!*(上一条命令的所有参数)的内容
12、 ^string 删除上一条命令中的第一个string
13、 ^string1^string2将上一条命令中的第一个string1替换为string2
14、 !:gs/string1/srting2 将上一条命令中所有的string1都替换为string2
15、使用方向键↑↓键来上下浏览从前输入的命令
16、Crtl + r来在命令历史中搜索命令
进入(reverse-i-search)`':模式
17、 Crtl + g 从历史搜索模式退出
18、 重新调用前一个命令中最后一个参数,3种方法
!$
Esc . (点击Esc键后松开,然后点击.键)
Alt+. (按住Alt键的同时点击.键),在一些终端软件中屏蔽了Alt功能键,需要开启
19、command !^ 利用上一个命令的第一个参数做cmd的参数
command !$ 利用上一个命令的最后一个参数做cmd的参数
command !* 利用上一个命令的全部参数做cmd的参数
command !:n 利用上一个命令的第n个参数做cmd的参数
command !n:^ 调用第n条命令的第一个参数
command !n:$ 调用第n条命令的最后一个参数
command !n:m 调用第n条命令的第m个参数
command !n:* 调用第n条命令的所有参数
command !srting:^ 从命令历史中搜索string开头的命令,并获取它的第一个参数
command !srting:$ 从命令历史中搜索string开头的命令,并获取它的最后一个参数
command !srting:n 从命令历史中搜索string开头的命令,并获取它的第n个参数
command !srting:* 从命令历史中搜索string开头的命令,并获取它的所有参数
三、命令历史相关的环境变量
HISTSIZE:命令历史中可以保存的命令的个数,默认值为1000
HISTFILE:命令历史保存在哪个文件,默认为当前用户家目录中的.bash_history文件
HISTFILESIZE:命令历史文件可以保存的命令的个数,默认值为1000
HISTIGNORE='command1:command2:...',让历史命令不记录执行过的命令,默认为NULL
举例:HISTIGNORE='ls' #让历史文件不记录ls命令,但是如果ls命令后接任何参数(包括空格)都会记录起来。所以要完全不记录任何与ls相关的命令,需要赋值为'ls *',即 HISTIGNORE='ls *'
HISTTIMEFORMAT="%F %T-->" 执行history 命令显示的时候,带有此格式时间。
让~/.bash_history带有相对时间如:#1560378603
HISTCONTROL=[ignoredups|ignoredups|ignoreboth|erasedups],控制命令历史的生成
ignoredups:忽略记录重复的命令:连续相同的命令为重复命令(默认的变量值)
ignorespace:不记录以空白字符开头的命令
ignoreboth:相当于上面两个参数ignoredups,ignorespace的组合
erasedups: 删除重复命令
注意:修改环境变量建议在/etc/profile.d/中创建***.sh文件,便于日后的查看和管理
Linux命令:history命令历史的管理及用法的更多相关文章
- linux下history命令显示历史指令记录的使用方法
Linux系统当你在shell(控制台)中输入并执行命令时,shell会自动把你的命令记录到历史列表中,一般保存在用户目录下的.bash_history文件中.默认保存1000条,你也可以更改这个值 ...
- linux 查看历史命令 history命令
1.history命令 "history"命令就是历史记录.它显示了在终端中所执行过的所有命令的历史. history //显示终端执行过的命令 history 10 //显示最近 ...
- Linux下history命令用法
如果你经常使用 Linux 命令行,那么使用 history(历史)命令可以有效地提升你的效率.本文将通过实例的方式向你介绍 history 命令的 15 个用法. 使用 HISTTIMEFORMAT ...
- Linux下history命令详解---转载
Linux下History命令主要用于显示历史指令记录内容, 下达历史纪录中的指令 . >History命令语法:[www.linuxidc.com@linux]# history [n][ww ...
- [Linux] 关于 history 命令的简单使用
1. 如果不想记录当前 会话操作的命令的话 可以使用命令 set +o history 但是这个命令有一个坏处, 他自己被记住了... 2. 还有一个办法 就是 在退出登录之前执行命令 history ...
- Linux:history命令详解
Linux下History命令 主要用于显示历史指令记录内容, 下达历史纪录中的指令 . 语法 history [n] history [-c] history [-raw] histfiles ...
- 【转】Linux下history命令用法
转自:http://blog.sina.com.cn/s/blog_5caa94a00100gyls.html 如果你经常使用 Linux 命令行,那么使用 history(历史)命令可以有效地提升你 ...
- linux常用命令 history命令
历史命令 history [选项] [历史命令保存文件] 选项 '-c' 清空历史命令 '-w' 把缓存中的历史命令写入历史命令保存文件~/.bash_history [root@ssgao1987 ...
- linux的history命令设置
history的历史记录,同一个用户的各个会话,读取到的内容也是不一样的,原因是它读取的是shell会话缓存里的内容.只有当用户退出当前会话的时候,会话里的缓存内容才会写入~/.bash_histor ...
随机推荐
- Django 字段中 null 和 blank的区别
blank 设置为 True 时,字段可以为空 设置为 False 时,字段是必须填写的 默认为 False null 设置为 True 时,数据库的字段允许为NULL,而且表单中的空值将会被存储为N ...
- 【代码总结】PHP面向对象之类与对象
一.类和对象的关系 类的实体化结果是对象,而对象的抽象就是类.在开发过程中,我们通常都是先抽象(幻想)出一个类,再用该类去创建对象(实现幻想的内容).在程序中,直接使用的是我们(实现幻想)的对象,而不 ...
- Docker安装部署ELK教程(Elasticsearch+Kibana+Logstash+Filebeat)
Elasticsearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等. Logstash 是一个完全开 ...
- Educational Codeforces Round 82 C. Perfect Keyboard
Polycarp wants to assemble his own keyboard. Layouts with multiple rows are too complicated for him ...
- 浅谈Java三大特性之继承
前言 简单用伪代码去介绍一些 父类与子类的构造函数问题 others 前言 类的继承性是面向对象语言的基本特性,多态性前提是继承性.Java 支持继承性和多态性.——Java从小白到大牛 继承:三大特 ...
- 前端学习 之 JavaScript基础
一. JavaScript简介 1. JavaScript的历史背景介绍 1994年,网景公司(Netscape)发布了Navigator浏览器0.9版.这是历史上第一个比较成熟的网络浏览器,轰动一时 ...
- JavaScript - String对象,字符串,String包装类型
1. 字符串 1.1 字符串的不可变性 var str = 'abc'; str = 'hello'; // 当重新给str赋值的时候,常量'abc'不会被修改,依然在内存中 // 重新给字符串赋值, ...
- 单元测试及框架简介 --junit、jmock、mockito、powermock的简单使用
转 单元测试及框架简介 --junit.jmock.mockito.powermock的简单使用 2013年08月28日 14:33:06 luvinahlc 阅读数:6413 标签: 测试工具单元测 ...
- Plastic Sprayer Manufacturer - How Does The Sprayer Work?
The Plastic Sprayers Manufacturer stated that the sprayer is a very useful type of machine and a g ...
- IVM sdk command
1.load sdk shell ./auto_load_user.sh 2.查看all端口状态 IVM:0>ifcs show devport 3.查看个别端口状态 IVM:0>ifcs ...