千家信息网

Bash中的history命令怎么用

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,小编给大家分享一下Bash中的history命令怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!history 是内置
千家信息网最后更新 2026年10月31日Bash中的history命令怎么用

小编给大家分享一下Bash中的history命令怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

history 是内置的命令

history 命令与许多其他的命令不同。你可能习惯于命令都作为可执行文件放置在常见的系统级的位置,例如 /usr/bin,/usr/local/bin 或 〜/ bin。但是,内置的 history 命令并不在你的环境变量 PATH 保存的路径中的。

实际上,history 命令并没有保存在物理位置中:

$ which history  which: no history in [PATH]

history 其实是 Shell 本身的一个内置函数:

$ type history history is a shell builtin $ help history history: history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]  Display or manipulate the history list. [...]

由于 history 是 Shell 的内置函数,所以每种 Shell 的 history 函数都是独一无二的。因此,你在 Bash 中能使用的功能可能无法在 Tcsh,Fish 或 Dash 中使用,同样的,在 Tcsh,Fish 或 Dash 中能使用的功能也可能无法在 Bash 中使用。

查看你的 Bash 命令历史记录

history 命令最基本,最频繁的用法就是查看你的 Shell 会话的命令历史记录:

$ echo "hello" hello $ echo "world" world $ history   1  echo "hello"   2  echo "world"   3  history

事件提示符

事件提示符 (!) 是按事件搜索历史记录的。这里的事件,指的是每一条记录在历史记录里的命令。换句话说,它就是一行命令,并被数字索引标记着以供引用。

要重新运行历史记录中的一个命令,用 ! 直接加上 (无空格) 你想要运行的命令前面的索引数字即可。例如,假设历史记录中的第一条指令是 echo hello ,然后你想重新运行它:

$ !1 echo "hello" hello

你还可以通过从历史记录中的当前位置开始提供负数的行来使用相对定位。例如,返回历史记录中倒数第3条命令:

$ echo "alvin" alvin $ echo "hello" hello $ echo "world" world $ !-3 echo "alvin" alvin

如果你只想返回上一条命令,你可以使用简写 !! 来替代 !-1。这整整节省了一次按键的时间!!!

$ echo "alvin" alvin $ !! echo "alvin" alvin

字符串搜索

你也可以通过特定的字符串来搜索历史记录中的命令并运行它。

若是想要搜索以特定字符串开头的命令,就用 ! 直接加上 (无空格) 你想要搜索的字符串:

$ echo "alvin" alvin $ true $ false $ !echo echo "alvin" alvin

你还可以搜索在任意位置包含特定字符串的命令。要做到这点,你只需要用 ! 直接加上前后两端都被 ? 包围的特定字符串即可,像这样:

$ echo "alvin" alvin $ true $ false $ !?alvin? echo "alvin" alvin

如果你知道你想要搜索的字符串在命令的最后面,那就可以省略字符串后面的 ?,像这样:

$ echo alvin alvin $ !?alvin echo alvin alvin

值得注意的是,若是历史记录中包含目标字符串的命令不止一条,则它只会执行符合条件的命令中最后的一条:

$ echo "hello world" hello world $ echo "hello alvin" hello alvin $ !?hello? echo "hello alvin" hello alvin

字符串替换

你可以搜索一个特定的字符串并用新字符串替换它,从而更改命令:

$ echo "hello" hello $ echo "world" world $ ^hello^alvin echo "alvin" alvin

但是它只能替换第一次出现的目标字符串,若是命令中出现两次目标字符串,则只有第一次出现的会被替换,像这样:

$ echo "hello hello" hello hello $ ^hello^alvin echo "alvin hello" alvin hello

与字符串搜索一样,当历史记录中包含目标字符串的命令不止一条时,只替换并执行最后一条:

$ echo "hello world" hello world $ echo "hello" hello $ ^hello^alvin echo "alvin" alvin

充分利用 history 命令

实际上,Bash 的 history 命令的功能远不止本文所提到的,但这是你习惯使用 history 命令的一个很好的开始,而不仅仅是利用 history 来查看历史记录。要经常使用 history 命令,看看你只利用 history 命令而不输入具体的指令能完成多少事情,你会被惊艳到的。

以上是"Bash中的history命令怎么用"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

命令 字符 字符串 历史 搜索 事件 位置 目标 运行 函数 功能 篇文章 若是 内容 可以通过 实际 实际上 就是 指令 提示符 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 保险科技 互联网保险 湖北九亚互联网络科技有限公司 互联网科技公司的优势 善班互联网科技 互联网科技ppt模板 广西互联网科技公司 四川狮子座互联网科技 卓越科技互联网 招聘 佩信高科技互联网 互联网和高科技公司 哈尔滨新华互联网科技学院 成都铂石互联网科技做什么的 阿大互联网科技有限公司 广州市恰铎互联网科技有限公司 互联网科技的全部知识 爱医互联网络科技 世界互联网领先科技成果获奖 科技赋能视角下互联网保险发展 区块链结合互联网科技 滨湖区互联网智能科技产品有哪些 互联网科技公司税收优惠 河南真二互联网科技有限公司 致骋互联网科技 科技互联网的估值 须眉科技是互联网公司吗 宝灵互联网科技有限公司 伍佰万互联网科技怎么赚钱 互联网科技包装股 萌小萌互联网科技河南有限公司 江苏互联网智能科技产品出厂价
0