阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

​​在Linux中怎样使用history命令​​?

85次阅读
没有评论

共计 1623 个字符,预计需要花费 5 分钟才能阅读完成。

导读 使用 Linux 命令行工作,需要了解且使用 history 的一些常用的特性,不管是 Linux 初学者,还是系统专家。

在使用过一段时间 Linux 终端之后,大家应该都会注意到,使用上下箭头按键,可以执行之前运行过的命令,这就是 history 所起到的作用。

1,查看 bash 历史记录(history

我们在之前的文章中介绍过 history 的使用,大家感兴趣可以参考:

查看 bash 历史记录,最简单的方法就是在命令行中输入 history 命令:

history

这将显示你历史记录中的上百或上千条命令,这取决于 HISTSIZE 变量中设定的大小。

​​在 Linux 中怎样使用 history 命令​​?

如果不想列出所有的历史记录,可以限制显示出的记录条数。比如,想要只显示最近的 7 条历史命令,可在 history 命令后跟上一个数字 7,如下:

history 7

​​在 Linux 中怎样使用 history 命令​​?

2,运行 bash 历史记录中的命令

在查看 history 记录后,可以使用一个感叹号 ! 来运行其中的某条历史命令,如下方式:

! <HISTORY NUMBER>

​​在 Linux 中怎样使用 history 命令​​?

使用两个感叹号 !! 可以返回历史记录中最后的一条命令。比如:

sudo !!

​​在 Linux 中怎样使用 history 命令​​?

另外,也可以使用一个特定的字符串来运行 history 命令,这个“特定的字符串”就是 history 命令中,与其匹配的命令:

!text

比如,你曾经运行过 echo $HISTCONTROL,然后想再次运行它,那么可以这样:

!echo

上述命令,会再次运行 history 中的最后一条 echo 命令:

​​在 Linux 中怎样使用 history 命令​​?

这其实也相当于是在 history 命令中以“字符串”方式匹配搜索。

如果你不确定在 history 中的具体命令,可以在其后添加 :p 来打印该命令,而不是运行,比如 !echo:p,!23:p 等。

3,搜索 history 记录

你可能会想到使用​​ grep​​ 搜索 history 记录,像下面这样:

history | grep text

搜索历史记录的一个更好且超级方便的方法是使用 ctrl + r 键,反向搜索并键入您要查找的字符串。

可以通过反复按 ctrl + r 来循环选择,当找到要查找的命令时,按 ctrl + o 或只按 enter 键即可选择并运行该命令。

例如,下面的示例搜索包含“aud”的命令:

​​在 Linux 中怎样使用 history 命令​​?

如果找不到想要的命令,可更改搜索的字符串,或者按 ctrl + g 退出搜索。

4,重新使用历史记录中以前命令中的参数

关于 history 的另外一个很有用的技巧是,可以在新命令中使用以前命令中的参数。

我们可以像这样使用上一个命令的最后一个参数:

<new command> !$

上面的选项只提供上一个命令的最后一个参数。如果需要所有参数,请使用以下命令:

<new command> !*
5,清除历史记录中的条目

有一个名为 HISTCONTROL  的环境变量,可以帮助我们处理 bash 历史记录中的冗余条目。可以为其指定以下三个值之一:

  • ignorespace:使用这个变量值,在运行某个命令时,在该命令前面加一个空格,该命令照常运行,但是不会记录在 history 记录中;
  • ignoredups:如果有两个或多个相同的命令连续运行,则只有一个命令会记录在 history 记录中;
  • ignoreboth:设置上述两个功能。

设置 HISTCONTROL  变量,应该在 bashrc 文件中设置,以便在每次使用 bash shell 时该变量的设置都会起作用。

如果 history 中的记录太多,可以使用 -c 选项来清理历史记录,然后从新开始记录新的命令。

history -c

​​在 Linux 中怎样使用 history 命令​​?

除了我们上面介绍的以外,history 还有很多东西值得研究学习,大家可以参考 history 命令的 man 手册,感兴趣的话还可以了解一下  history builtins,地址为:

​​https://www.gnu.org/software/bash/manual/html_node/Bash-History-Builtins.html

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-24发表,共计1623字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中