命令行历史

当执行命令后,系统默认会在内存记录执行过的命令

当用户正常退出时,会将内存的命令历史存放对应历史文件中,默认是 ~/.bash_history

登录shell时,会读取命令历史文件中记录下的命令加载到内存中

登录进shell后新执行的命令只会记录在内存的缓存区中;这些命令会用户正常退出时“追加”至命令历史文件中

利用命令历史。可以用它来重复执行命令,提高输入效率

1. 命令:history

history [-c] [-d offset] [n]
history -anrw [filename]
history -ps arg [arg...]

2. 常用选项

选项 说明
-c 清空命令历史
-d offset 删除历史中指定的第 offset 个命令
n 显示最近的 n 条历史
-a 追加本次会话新执行的命令历史列表至历史文件
-r 读历史文件附加到历史列表
-w 保存历史列表到指定的历史文件
-n 读历史文件中未读过的行到历史列表
-p 展开历史参数成多行,但不存在历史列表中
-s 展开历史参数成一行,附加在历史列表后

3. 命令历史相关环境变量

变量 说明
HISTSIZE 命令历史记录的条数
HISTFILE 指定历史文件,默认为~/.bash_history
HISTFILESIZE 命令历史文件记录历史的条数
HISTTIMEFORMAT="%F %T $(whoami) " 显示时间和用户
HISTIGNORE="str1:str2*:..." 忽略str1命令,str2开头的历史
HISTCONTROL 控制命令历史的记录方式
ignoredups 是默认值,可忽略重复的命令,连续且相同为“重复”
ignorespace 忽略所有以空白开头的命令
ignoreboth 相当于ignoredups, ignorespace的组合
erasedups 删除重复命令

4. 持久保存变量

以上变量可以 export 变量名=“值” 形式存放在 /etc/profile 或 ~/.bash_profile

示例

[root@centos ~]#cat .bash_profile
# .bash_profile# Get the aliases and functions
if [ -f ~/.bashrc ]; then. ~/.bashrc
fi# User specific environment and startup programsPATH=$PATH:$HOME/binexport PATH
export HISTCONTROL=ignoreboth
export HISTTIMEFORMAT="%F %T "
[root@centos ~]#[root@centos /]#history 5123  2021-03-25 15:52:15 cd ~124  2021-03-25 15:52:16 pwd125  2021-03-25 15:52:18 cd /126  2021-03-25 15:52:19 pwd127  2021-03-25 15:52:30 history 5
[root@centos /]#

5. 调用命令行历史

# 重复前一个命令方法
重复前一个命令使用上方向键,并回车执行
1. 按 !! 并回车执行
2. 输入!-1 并回车执行
3. 按 Ctrl+p 并回车执行使用up(向上)和down(向下)键来上下浏览从前输入的命令
ctrl-r来在命令历史中搜索命令
(reverse-i-search)`’:
Ctrl+g:从历史搜索模式退出
header 1 header 2
!:0 执行前一条命令(去除参数)
!n 执行history命令输出对应序号n的命令
!-n 执行history历史中倒数第n个命令
!string 重复前一个以“string”开头的命令
!?string 重复前一个包含string的命令
!string:p 仅打印命令历史,而不执行
!$:p 打印输出 !$ (上一条命令的最后一个参数)的内容
!*:p 打印输出 !*(上一条命令的所有参数)的内容
^string 删除上一条命令中的第一个string
^string1^string2 将上一条命令中的第一个string1替换为string2
!:gs/string1/string2 将上一条命令中所有的string1都替换为string2
# 要重新调用前一个命令中最后一个参数,三种方式
1. !$           # 表示前一个命令中最后一个参数
2. Esc, .       # 点击Esc键后松开,然后点击 . 键
3. Alt+ .       # 按住Alt键的同时点击 . 键
header 1 header 2
command !^ 用上一个命令的第一个参数做command的参数
command !$ 利用上一个命令的最后一个参数做command的参数
command !* 利用上一个命令的全部参数做command的参数,如 ls !*
command !:n 利用上一个命令的第n个参数做command的参数
command !n:^ 调用第n条命令的第一个参数
command !n:$ 调用第n条命令的最后一个参数
command !n:m 调用第n条命令的第m个参数
command !n:* 调用第n条命令的所有参数
command !string:^ 从命令历史中搜索以 string 开头的命令,并获取它的第一个参数
command !string:$ 从命令历史中搜索以 string 开头的命令 ,并获取它的最后一个参数
command !string:n 从命令历史中搜索以 string 开头的命令,并获取它的第n个参数
command !string:* 从命令历史中搜索以 string 开头的命令 ,并获取它的所有参数

linux history命令详解相关推荐

  1. linux mingetty 命令详解

    linux mingetty 命令详解 功能说明:精简版的getty. 语 法:mingetty [--long-hostname][--noclear][tty] 补充说明:mingetty适用于本 ...

  2. linux zip 命令详解

    功能说明:压缩文件.  语 法:zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串>][-t <日期 ...

  3. linux zipinfo 命令详解

    linux zipinfo 命令详解 功能说明:列出压缩文件信息. 语 法:zipinfo [-12hlmMstTvz][压缩文件][文件...][-x <范本样式>] 补充说明:执行zi ...

  4. Linux chkconfig命令详解

    Linux chkconfig命令详解 (2011-03-07 15:49:04) 转载 标签: linux shell chkconfig 杂谈 分类: 工作*Linux chkconfig:    ...

  5. linux uname 命令详解

    linux uname 命令详解 功能说明:显示系统信息. 语 法:uname [-amnrsv][--help][--version] 补充说明:uname可显示电脑以及操作系统的相关信息. 参 数 ...

  6. linux mread 命令详解

    linux mread 命令详解 功能说明:将MS-DOS文件复制到Linux/Unix的目录中. 语 法:mread [MS-DOS文件...][Linux文件或目录] 补充说明:mread为mto ...

  7. linux sort 命令详解

    linux sort 命令详解 sort命令的功能是对文件中的各行进行排序.sort命令有许多非常实用的选项,这些选项最初是用来对数据库格式的文件内容进行各种排序操作的.实际上,sort命令可以被认为 ...

  8. linux arpwatch 命令详解

    linux arpwatch 命令详解 功能说明:监听网络上ARP的记录. 语 法:arpwatch [-d][-f<记录文件>][-i<接口>][-r<记录文件> ...

  9. linux awk命令详解,使用system来内嵌系统命令,批量github,批量批下载视频, awk合并两列...

    linux awk命令详解 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分 ...

  10. linux kill命令信号,linux kill命令详解

    kill 命令的用途 kill 命令很容易让人产生误解,以为它仅仅就是用来杀死进程的.我们来看一下 man page 对它的解释:kill - send a signal to a process. ...

最新文章

  1. 寻找兄弟单词(2012.5.6百度实习)
  2. python2中使用中文报错:SyntaxError: Non-ASCII character
  3. java 根据客户端重定向_Java Web笔记 - 转发与重定向的区别与在FireBug客户端的表现...
  4. SAP Spartacus Media Component
  5. Asp.net MVC razor语法参考
  6. boost helloworlld
  7. 选择排序 冒泡排序 二分查找
  8. python 多核并行计算_手把手 | 嫌Python太慢?并行运算Process Pools三行代码给你4倍提速!...
  9. 【缺陷检测】基于matlab GUI形态学PCB电路板缺陷检测【含Matlab源码 821期】
  10. FlyMcu - 用于STM32芯片ISP串口程序一键下载的免费软件
  11. Linux下OpenCV摄像头录像(c++)
  12. VGA常用分辨率及计算方法
  13. 《孤尽班T31-04-工程结构规约》
  14. mac如何显示隐藏文件
  15. 你们想要知道的跳一跳都在这了,23333333
  16. jquery input标签中 中checkbox全部选中与全部取消
  17. GPS北斗授时服务,NTP让网络时钟同步更精确
  18. Google Code注册方法详解 Google Code网盘申请方法 1
  19. China's Appetite for Nickel Drives a Symbiotic Alliance
  20. python编程用什么软件?

热门文章

  1. 电脑出现蓝屏后自动重启是什么原因
  2. Linux 操作系统 之 虚拟内存
  3. 易优CMS插件-站长必备易优CMS插件
  4. CMS采集插件-CMS自动采集插件免费
  5. 电脑安装双系统教程,电脑安装两个系统
  6. 聊聊新西兰的工作和生活
  7. 创业感悟:有舍才会得,舍得才见风景
  8. delphi mysql.pas_Delphi 一些pas
  9. 服务器运维大屏,可视化运维大屏
  10. 计算机硬件的五大功能模块,什么是操作系统的五大功能模块