Linux中历史命令的具体使用方法

Linux系统当你在shell(控制台)中输入并执行命令时,shell会自动把你的命令记录到历史列表中,一般保存在用户目录下的.bash_history文件中。默认保存1000条,你也可以更改这个值,本篇文章重点为大家讲解一下Linux中历史命令的具体使用方法。

如果可以的话,你肯定会很高兴不用翻阅十几页的手册,每过一会再次列出你的文件,而是通过输入 history 查看以前运行的命令。在这篇文章中,我们将探讨如何让 history 命令记住你希望它记住的内容,并忘记那些可能没有什么“历史价值”的命令。

查看你的命令历史

要查看以前运行过的命令,你只需输入 history。你可能会看到一长串命令。记忆的命令数量取决于在 ~/.bashrc 文件中设置的名为 $HISTSIZE 的环境变量,但是如果你想保存更多或更少的命令,你可以根据你的需要改变这个设置。

要查看历史记录,请使用 history 命令:

history
209 uname -v
210 date
211 man chage
...

要查看将显示的最大命令数量:

echo $HISTSIZE
500

你可以通过运行这样的命令来改变 $HISTSIZE 并使之永久化:

export HISTSIZE=1000
$ echo "HISTSIZE=1000" >> ~/.bashrc

在为你保留多少历史记录和当你输入 history 时显示多少历史记录之间也有区别。变量控制显示多少历史记录,而HISTFILESIZE 变量控制在你的 .bash_history 文件中保留多少命令。

echo $HISTSIZE
1000
$ echo $HISTFILESIZE
2000

你可以通过计算历史文件中的行数来验证第二个变量:

$ wc -l .bash_history
2000 .bash_history

需要注意的是,在登录会话中输入的命令在注销前不会被添加到你的 .bash_history 文件中,尽管它们会立即显示在 history 命令输出中。

使用历史

有三种方法可以重发你在 history 中发现的命令。最简单的方法,特别是当你想重用的命令是最近运行的时候,通常是输入一个 ! 后面跟上命令中足够多的首字母来唯一地识别它。

$ !u
uname -v
#37-Ubuntu SMP Thu Mar 26 20:41:27 UTC 2020

另一种简单的重复命令的方法是,只需按上箭头键,直到显示了该命令,然后按回车键。

另外,如果你运行 history 命令,并看到你想重新运行的命令被列出,你可以输入一个 ! 后面跟着命令左边显示的序号。

$ !209
uname -v
#37-Ubuntu SMP Thu Mar 26 20:41:27 UTC 2020

隐藏历史

如果你想在一段时间内停止记录命令,你可以使用这个命令:

set +o history

当你输入 history 时,你输入的命令不会显示出来,当你退出会话或退出终端时,它们也不会被添加到你的 .bash_history 文件中。

要取消这个设置,使用 set -o history。

要使它永久化,你可以把它添加到你的 .bashrc 文件中,尽管不使用命令历史记录通常不是一个好主意。

echo 'set +o history' >> ~/.bashrc

要暂时清除历史记录,这样在输入 history 时只显示之后输入的命令,可以使用 history -c(清除)命令:

history | tail -3209 uname -v210 date211 man chage$ history -c$ history1  history

注意:在输入 history -c 后输入的命令不会被添加到 .bash_history 文件中。

控制历史

许多系统上的 history 命令的设置会默认包括一个名为 $HISTCONTROL 的变量,以确保即使你连续运行同一命令七次,也只会被记住一次。它还可以确保你在首先输入一个或多个空格后跟着的命令将从你的命令历史记录中忽略。

$ grep HISTCONTROL .bashrcHISTCONTROL=ignoreboth

ignoreboth 的意思是“忽略重复的命令和以空格开头的命令”。例如,如果你输入这些命令:

echo try this$ date$ date$ date$   pwdhistory

你的 history 命令应该像这样报告:

historyecho try this
$ date
$ history

请注意,连续的 date 命令被缩减为一条,以空格缩进的命令被省略。

忽略历史

要忽略某些命令,使它们在你输入 history 时不会出现,也不会被添加到你的 .bash_history 文件中,可以使用 $HISTIGNORE 设置。例如:

export HISTIGNORE=”history:cd:exit:ls:pwd:man”

这个设置将导致所有的 history、cd、exit、ls、pwd 和 man 命令从你的 history 命令的输出和 .bash_history 文件中被忽略。

如果你想把这个设置变成永久性的,你必须把它添加到你的 .bashrc 文件中。

echo 'HISTIGNORE="history:cd:exit:ls:pwd:man"' >> .bashrc

这个设置只是意味着当你回看以前运行的命令时,列表不会被你在查看命令历史记录时不想看到的命令所干扰。

记住、忽略和忘记过去的命令

命令历史记录很有用,因为它可以帮助你记住最近使用过的命令,并提醒你最近所做的更改。它还可以让你更容易地重新运行命令,特别是那些有一串参数但你不一定想重新创建的命令。定制你的历史设置可以让你对命令历史的使用变得更容易,更有效率。

原创文章,作者:晴川运维,如若转载,请注明出处:https://baike.qcidc.com/11715.html

(0)
晴川运维晴川运维
上一篇 2025年7月6日
下一篇 2025年7月6日

相关推荐

  • Linux下设置开机自动运行

    有时可能会需要在重启时或者每次系统启动时运行某些命令或者脚本。我们要怎样做呢?本文中我们就对此进行讨论。 我们会用两种方法来描述如何在 CentOS/RHEL 以及 Ubuntu …

    Linux系统 2025年6月12日
  • Shell [[]]详解:检测某个条件是否成立

    [[ ]]是 Shell 内置关键字,它和 test 命令类似,也用来检测某个条件是否成立。 test 能做到的,[[ ]] 也能做到,而且 [[ ]] 做的更好;test 做不到…

    Linux系统 2025年9月16日
  • Linux中常用的监控工具

    本篇文章重点为大家讲解一下Linux中常用的监控工具,有需要的小伙伴可以参考一下。 1. iotop 如果你想知道某些进程使用了多少你宝贵的 I/O 资源,那么就使用 iotop …

    Linux系统 2025年6月11日
  • static关键字的使用方法

    static,即静态声明。它在 作用域、存储方式、生命周期 等各方面影响一个变量或函数。文章将从 局部变量、全局变量、普通函数、类的static成员(包括数据成员与成员函数)来总结…

    Linux系统 2025年10月9日
  • Linux中搭建Docker私有仓库

    使用Docker私有仓库可以帮助我们节省网络带宽,针对于每个镜像不用每个人都去中央仓库上面去下载,只需要从私有仓库中下载即可,还可以提供镜像资源利用,针对于公司内部使用的镜像,推送…

    Linux系统 2025年9月20日
  • 通过GIt备份Linux文件

    我们使用 Linux 服务器时,有时候需要备份配置文件。传统的备份方法是复制文件,改名,并在文件结尾插入一些字符。但,如果我们使用 Git ,我们可以很轻松的管理配置文件的备份。 …

    Linux系统 2025年10月11日
  • D语言基础教程

    D语言是一种编程语言,具备多范型,例如面向对象、指令式。由沃尔特·布莱特和安德烈·亚历山德雷斯库所开发,起源自C++,深受C++的影响,然而其不是C++的变种,而是重新设计来自C+…

    Linux系统 2025年10月25日
  • 选择云计算数据库需要注意的几个方面

    关系数据库的应用已经有了半个世纪的历史,其各种子类别(如文档、键值数据库和缓存数据库)是IT领域中长期存在的部分。很多人可能会认为数据库创新的时代已经过去了。但是,云计算基础设施和…

    Linux系统 2025年6月25日
  • 详解Spring中AOP

    AOP (Aspect Orient Programming),直译过来就是 面向切面编程。AOP 是一种编程思想,是面向对象编程(OOP)的一种补充。面向对象编程将程序抽象成各个…

    Linux系统 2025年6月28日
  • HTML 元素使用实例

    HTML 文档是由 HTML 元素定义的。HTML 元素指的是从开始标签(start tag)到结束标签(end tag)的所有代码,下面为大家详细讲解一下HTML 元素 HTML…

    Linux系统 2025年6月8日

发表回复

登录后才能评论