bash 中类似 zsh 的历史记录

2024-02-25

我真的很喜欢 zsh 的历史记录自动完成功能。也就是说,当我按下时,我会收到上一个命令。当我打字时emacs然后按向上键,我得到了我使用的最后一个 emacs 命令。当我打字时git然后按向上键,我得到了我使用的最后一个 git 命令。当我尝试在 bash 中执行此操作时,它只会转到我使用的最后一个通用命令。本质上,我希望能够半键入一个命令,然后按向上键以获得我使用的最后一个与我迄今为止键入的命令相匹配的命令。我不知道如何在 bash 中实现这一点。我无法在此系统上使用 zsh,那么是否可以在 bash 中复制此功能?


向上箭头绑定到previous-history命令。您想将其重新绑定到history-search-backward(默认情况下未绑定)。您可以检查哪些键previous-history目前绑定到:

$ bind -p | grep previous-history
"\C-p": previous-history
"\eOA": previous-history
"\e[A": previous-history

就我而言,最后两个都代表向上箭头(确切的转义序列可能因终端而异,或者取决于终端所处的模式,但这两个是相当标准的)。特别是从previous-history仍然可以通过 Control-P 使用,可以安全地更改向上箭头的行为。

将其添加到您的.inputrc文件(如有必要,创建文件):

"\e[A": history-search-backward
"\eOA": history-previous-history

或者,您可以添加呼叫bind从你的.bashrc:

bind '"\e[A": history-search-backward'
bind '"\eOA": history-previous-history'

您可能还想类似地绑定history-search-forward到向下箭头键,\e[B and \eOB.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

bash 中类似 zsh 的历史记录 的相关文章

  • Grep 搜索带有换行符的字符串

    如何使用 grep 输出下面给出的输入文件中出现的字符串 export to excel 具体来说 如何处理搜索字符串之间发生的换行符 grep 中是否有一个开关可以执行此操作或其他命令 输入文件 文件a txt 等等 导出到优秀 巴拉巴拉
  • 如何在 Bash 中删除字符串的第一部分?

    该代码将给出第一部分 但是如何删除它并获取没有第一部分的整个字符串 echo first second third etc cut d f1 你应该看看info cut 这将解释什么f1 means 实际上我们只需要第二个字段之后的字段 f
  • git log --oneline 提供在管道或重定向到文件时丢失的 HEAD 信息

    当我执行没有管道或文件重定向的 git log oneline 命令时 它会提供有关 HEAD 位置和分支的信息 下面示例中的 master git log oneline color never 8bc8511 HEAD gt day 2
  • 如何在 Bash 脚本中查找数字的阶乘?

    在 shell 脚本中如何查找数字的阶乘 seq s 1 500 bc
  • 通过 ssh 运行 Bash 脚本

    我正在尝试编写一个 Bash 脚本 它将通过 SSH 连接到计算机并创建一个目录 长期目标有点复杂 但现在我从简单的开始 然而 虽然很简单 但我似乎不太明白 这是我的代码 bin bash ssh T email protected cdn
  • 如何运行 bash 压缩脚本?

    有没有一种方法可以直接运行带有 参数 的压缩bash脚本 而无需将其解压缩到文件中 然后运行解压缩的文件 例如 我需要使用一些给定的参数执行 setup mysql gzip 压缩脚本 n wordpress locahost 而不先解压缩
  • 使用转义序列渲染文本(如终端)

    你好 我正在寻找一些库或工具来在文本文件中呈现带有转义序列字符的文本 我不知道如何称呼它 但这是一个例子 echo e abc vdef abc def echo e abc vdef gt tmp xxxxx vi tmp xxxxx 我
  • Shell 执行:时间与 /usr/bin/time

    当 bash zsh 执行以下操作时会发生什么 usr bin time l sleep 1 1 00 real 0 00 user 0 00 sys 516096 maximum resident set size 0 average s
  • 带变量的 AWK 负正则表达式

    我在 bash 脚本中使用 awk 来比较两个文件以获取不匹配的行 我需要将第二个文件的所有三个字段 作为一个模式 与第一个文件的所有行进行比较 第一个文件 chr1 9997 10330 HumanGM18558 peak 1 150 1
  • 我们可以在 Bash 脚本中使用 PHP 吗?

    我有一个 bash 脚本abcd sh bin sh for i in seq 8 do ssh w i uptime ps elf grep httpd wc l free m mpstat done pid sleep 1 kill 9
  • 为什么 ?(*[[:class:]])foobar 的 Bash 模式匹配速度很慢?

    我有一个文本文件 foobar txt 大约 10KB 不是那么长 然而 以下匹配搜索命令在高性能 Linux 计算机上大约需要 10 秒 bash gt shopt s extglob bash gt cat foobar txt pri
  • 如何编写 bash 函数来包装另一个命令?

    我正在尝试编写一个函数包装器mysql command If my cnf存在于 pwd 中 我想自动附加 defaults file my cnf到命令 这就是我正在尝试的 function mysql if e my cnf then
  • 通过 Bash 命令在文本文件中查找并替换

    例如 对给定输入字符串进行查找和替换的最简单方法是什么abc 并替换为另一个字符串 例如XYZ在文件中 tmp file txt 我正在编写一个应用程序并使用 IronPython 通过 SSH 执行命令 但我不太了解 Unix 也不知道要
  • '>&0' 有用途吗(重定向到标准输入)?

    在 bash 中你可以这样做 echo test gt 1 重定向到标准输出 尽管它已经到那里了 echo test gt 2 重定向到标准错误 echo test gt 0 重定向到标准输入 当我做最后一个时 我的终端仍然打印test就像
  • Bash shell 读取错误:0:资源暂时不可用

    编写 bash 脚本时 有时你运行的命令会打开另一个程序 例如 npm composer 等 但同时你需要使用read以提示用户 你不可避免地会遇到这种错误 read read error 0 Resource temporarily un
  • bash脚本ip主机

    在第一个中 如果我们希望显示主机名 这是文件中的第五个字段 然后 如果我们提供给主机命令的 IP 不存在 则该命令将返回消息 3 NXDOMAIN 脚本应该识别命令是否 未找到 在这种情况下 它将 必须简单地打印 bin bash ip 1
  • bash.sh 运行 cron 的权限被拒绝

    如何在这里使用 bash 脚本运行 cron 我做了如下操作 这里有错误 我想知道如何在 ubuntu 中做到这一点 我现在对它感到震惊 bash sh 文件 bin bash cd var www Controller usr bin p
  • virtualenvwrapper 函数在 shell 脚本中不可用

    所以 我再一次制作了一个很棒的 python 程序 它让我的生活变得更加轻松 并节省了大量时间 当然 这涉及到一个 virtualenv 用mkvirtualenvvirtualenvwrapper 的功能 该项目有一个requiremen
  • 从配置文件中读取分配

    我有配置文件 其中每行都包含用分号分隔的分配 像这样的东西 模仿正常的 shell 分配 VAR1 1 VAR2 2 VAR1 3 VAR2 4 每行包含相同的变量 并且旨在单独处理 这些配置文件都在系统管理员的控制之下 所以使用eval现
  • 我应该使用 AWK 或 SED 删除 CSV 文件中引号之间的逗号吗? (重击)

    我有一堆日常打印机登录CSV格式 我正在编写一个脚本来跟踪使用了多少纸张并将信息保存到数据库中 但我遇到了一个小问题 本质上 日志中的一些文档名称中包含逗号 全部用双引号引起来 并且由于它采用逗号分隔格式 所以我的代码搞乱了并将所有内容推到

随机推荐

  • Infiniband 寻址 - 主机名到 IB 地址(无需 IBoIP)

    我刚刚开始熟悉 infiniband 我想了解可用于解决 infiniband 节点的方法 基于代码的示例来自 RDMA 使用 IB 动词进行读写 http thegeekinthecorner wordpress com 2010 09
  • 如何使用 linq 从 DataTable 中过滤掉空行?

    我有一个从 Excel 数据构建的数据表 但有时 Excel 返回的行中所有字段都为空 我想一般性地过滤掉这些 而不考虑列名 我认为 Linq 可以很好地做到这一点 但要实现这一点有点困难 到目前为止 这就是我得到的 var nonempt
  • 如何在浏览器中从Go服务器下载文件

    我的代码从远程 url 获取文件并在浏览器中下载文件 func Index w http ResponseWriter r http Request url http upload wikimedia org wikipedia en b
  • iPhone 配置实用程序无法识别 iOS 8 设备

    随着 iOS 8 最近的更新 我无法使用 iPhone 配置实用程序加载我的测试设备 该程序根本无法识别装有 iOS 8 的设备 当 iOS 7 发布时 iPCU 不需要更新 尽管它确实可以与 iOS 7 配合使用 Apple 支持网站上的
  • 批处理文件对多个目录中的所有文件执行命令

    我想制作一个运行此命令的批处理文件 C Program Files x86 IrfanView i view32 exe C Users digi admin TIFFs OLD DIRECTORY tif ini C Users digi
  • Visual Studio:如何中断已处理的异常?

    我希望 Visual Studio 在发生处理的异常时中断 即我不只是想看到 第一次机会 消息 我想调试实际的异常 例如我希望调试器在异常时中断 try System IO File Delete someFilename catch Ex
  • C 中的结构初始化出现错误:预期表达式

    我有一个这样的结构 struct foobar int i char word 我知道这会起作用 struct foobar int i char word struct foobar three 3 three 为什么以下不起作用 str
  • 始终块中的 Veriloggenerate/genvar

    我试图让一个模块通过 ISE 12 4 中的语法检查 但它给了我一个我不明白的错误 首先是代码片段 parameter ROWBITS 4 reg ROWBITS 1 0 temp genvar c generate always pose
  • IntelliJ 社区版中的 Spring Boot 项目

    我是 IntelliJ 社区版的新手 任何人都可以帮助我在 IntelliJ 社区版中创建 Spring Boot 项目 对于终极版 有 spring boot 初始化程序 但我找不到社区版的任何内容 我点击了此链接但找不到任何解决方案 使
  • 编辑元素时 Java 优先级队列重新排序

    我正在尝试实现 Dijkstra 算法 以使用优先级队列查找最短路径 在算法的每一步中 我都会从优先级队列中删除距离最短的顶点 然后更新优先级队列中其每个邻居的距离 现在我读到 当您编辑 Java 中的优先级队列中的元素 确定排序的元素 时
  • 如何将变量限制为一组固定的字符串?

    如果我想将数据库中的spicelevel列的值限制为1 2和3 我可以这样做 private enum SpiceLevel Low 1 Medium 2 Hot 3 然后在代码中我可以做 int SpiceLevel Low选择 1 作为
  • Visual Studio 2010 DataCompare 表比较

    在 Visual Studio 2010 中 您是否能够比较两个数据库之间的数据库数据 我想用它来将数据从一个数据库复制到另一个数据库 这些数据库具有完全相同的结构 但是当我进行比较时 我看到 VS2010 的 DataCompare 视图
  • 为什么静态库包含 main 函数?

    我遇到了一个奇怪的静态库 其中包含main 函数 C 我只是想知道它的目的是什么 如何main 执行 从链接器的角度来看 链接在哪里并不重要main功能是 它可以位于静态库中 也可以位于独立的目标文件中 链接器不在乎 它从目标文件生成可执行
  • 如何在 CSS 中定义 tbody 的最小高度

    我想在CSS中设置tbody的最小高度 即使没有 tr td td tr 在 tbody 中 这是我的代码 tbody height 500px min height 500px 但它不起作用 那么我应该怎么做才能实现这一目标呢 你为什么要
  • 沮丧:为什么:“A”是“B”无法访问的基础?

    与此错误消息的其他示例不同 我已经有一个指向A并想要检索实际的子类 这种安排是一些 C 包装的 C 代码的一部分A是一些 POD C 结构 为什么没有动态转换 和test是 C 中的一些回调 它调用 C 功能并检索正确的对象 应使用强制转换
  • 常规语言的抽引理

    我在使用泵引理检查给定语言是否规则时有点困惑 假设我们必须检查是否 L 接受偶数的语言0是否正常 我们知道它是正则的 因为我们可以为 L 构造一个 DFA 但我想用泵引理来证明这一点 现在假设我拿一个字符串w 0000 现在将字符串划分为x
  • 无法使用 Maven 从 .avsc 编译和创建 .avro 文件

    我是 Maven 新手 一直在查看教程和网络以获取有关如何从架构文件 avsc 构建 avro 的文档 基于 apache maven org 站点上的文档 我必须添加以下内容
  • 如何在C# TBB(C#代码片段)中添加用户定义的方法?

    我正在创建一个 C TBB C 代码片段 为此 我需要编写一个用户定义的方法 我尝试使用 如何在代码中访问用户定义的方法 提前致谢 请建议我一种解决此问题的方法 TOM NET API 参考提供了以下示例 log Debug Executi
  • Tensorflow/models 使用 COCO 90 类 ID,尽管 COCO 只有 80 个类别

    Tensorflows object detection 项目的标签图包含 90 个类别 尽管 COCO 只有 80 个类别 因此参数num classes在所有示例配置中设置为 90 如果我现在下载并使用COCO 2017数据集 我需要将
  • bash 中类似 zsh 的历史记录

    我真的很喜欢 zsh 的历史记录自动完成功能 也就是说 当我按下时 我会收到上一个命令 当我打字时emacs然后按向上键 我得到了我使用的最后一个 emacs 命令 当我打字时git然后按向上键 我得到了我使用的最后一个 git 命令 当我