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

上篇文章:嵌入式开发 Linux 常用命令系列 4 – git 常用配置及常用命令
下篇文章:嵌入式开发 Linux 常用命令系列 6 – 字符提取 cut 命令使用

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 "

上篇文章:嵌入式开发 Linux 常用命令系列 4 – git 常用配置及常用命令
下篇文章:嵌入式开发 Linux 常用命令系列 6 – 字符提取 cut 命令使用

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

主公CodingCos

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值