【嵌入式开发 Linux 常用命令系列 5 -- history 与 “!“ 巧妙配合】

文章目录

    • 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’命令找到命令的编号:
【嵌入式开发 Linux 常用命令系列 5 -- history 与 “!“ 巧妙配合】_第1张图片
上图中显示了命令的执行时间及日期,如果要想执行 2036行的命令,只需要执行 !2036 即可:
【嵌入式开发 Linux 常用命令系列 5 -- history 与 “!“ 巧妙配合】_第2张图片

运行先前执行的命令

可以通过命令的运行顺序来运行先前运行过的命令,最后运行的命令将表示为-1,倒数第二个为-2,倒数第七个为-7,依此类推。
你可以使用!-n,其中n是你要引用的命令的倒数编号。

$ history
$ !-1
$ !-5
$ !-15

【嵌入式开发 Linux 常用命令系列 5 -- history 与 “!“ 巧妙配合】_第3张图片

先前命令的参数传递给新命令

我需要列出目录’/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 "

你可能感兴趣的:(#,Linux,常用命令,linux,history,history,命令,history,与,!)