文章目录
- history 命令介绍
- history 命令与 “!”
- 运行先前执行的命令
- 先前命令的参数传递给新命令
- 两个或多个参数的处理
- 设置 history 命令显示行数以及时间
上篇文章:嵌入式开发 Linux 常用命令系列 4 – git 常用配置及常用命令
history 命令介绍
history
是一个Linux命令,用于显示用户最近运行过的命令。它保存了你在终端中执行过的所有命令的列表,使你可以轻松地查看和复制这些命令。
history
命令的常用选项包括:
-c
: 清除历史记录
-d OFFSET
: 删除历史记录中的某一条
-a
: 将缓冲区的历史记录追加到历史记录文件中
-n
: 从历史记录文件中读取尚未读取的历史记录
-r
: 读取历史记录文件并将结果附加到当前历史记录中
-w
: 将当前历史记录写入历史记录文件并覆盖文件内容
-s
: 将参数作为单独的历史记录项添加到历史记录列表的末尾
使用history
命令可以帮助你找到之前运行过的命令,尤其是一些复杂或者长的命令,使用这个命令可以避免重复输入,提高工作效率。
history 命令与 “!”
在 Linux 中, history
命令与 !
可以配合使用来执行历史记录中的命令。
!
用于引用历史记录中的命令。它后面可以是数字或字符串。
如果 !
后面是数字,那么将会执行与这个数字对应的历史记录中的命令。例如,如果你输入 !100
,那么将会执行历史记录中的第 100 条命令。
如果 !
后面是字符串,那么将会执行最近一次以这个字符串开始的命令。例如,如果你输入 !ls
,那么将会执行最近一次输入的以 ls
开始的命令。
还有一个特殊的用法,就是 !!
,它指的是执行上一条命令,这在你需要以管理员权限运行上一条命令但忘记加 sudo
时非常有用,只需要输入 sudo !!
即可。
这种方式可以极大地增加命令行的效率,特别是对于那些很长或者复杂的命令。
首先,通过运行’history’命令找到命令的编号:
上图中显示了命令的执行时间及日期,如果要想执行 2036行的命令,只需要执行 !2036
即可:
运行先前执行的命令
可以通过命令的运行顺序来运行先前运行过的命令,最后运行的命令将表示为-1,倒数第二个为-2,倒数第七个为-7,依此类推。
你可以使用!-n,其中n是你要引用的命令的倒数编号。
$ history
$ !-1
$ !-5
$ !-15
先前命令的参数传递给新命令
我需要列出目录’/home/ldemo’中的内容,所以我执行了以下命令。
$ ls /home/demo
然后我意识到我应该执行 ls -l
来查看哪个文件在那里可执行。所以我应该重新输入整个命令吗?不需要,我只需要将上个命令的参数传递给这个新命令,如下所示:
$ ls -l !$
两个或多个参数的处理
第一个参数为 !^
,而其余的参数可以通过 ![命令名称]:[参数编号]
来使用。
设置 history 命令显示行数以及时间
编辑 ~/.bashrc文件,加入如下三行:
HISTFILESIZE=2000
HISTSIZE=2000
HISTTIMEFORMAT="%Y%m%d-%H%M%S: "
或者
HISTTIMEFORMAT="%Y%m%d %T "
或者
HISTTIMEFORMAT="%F %T "