【发布时间】:2023-03-27 01:10:02
【问题描述】:
如何在 cygwin 中搜索命令历史记录?
我不想一直按箭头键来执行控制台命令历史记录中的命令。
【问题讨论】:
标签: command-line cygwin
如何在 cygwin 中搜索命令历史记录?
我不想一直按箭头键来执行控制台命令历史记录中的命令。
【问题讨论】:
标签: command-line cygwin
如果您使用默认编辑模式,请按 ctrl+R 搜索历史记录。
如果你已经设置 -o vi 使用 vi 编辑模式,那么就是 esc-/
【讨论】:
history 命令是要走的路。我用
h ()
{
history | cut -f 2- | sort -u | grep -P --color=auto -e "$*"
}
这样我就可以输入h git.*MyProgram、h ^tar -c、h svn:ignore 等内容,以调出与正则表达式匹配的过去命令的排序列表。
您可能还想在 ~/.inputrc 中添加以下行:
# Ctrl+Up/Down for searching command history
"\e[1;5A": history-search-backward
"\e[1;5B": history-search-forward
有了这些,您可以键入部分命令前缀(例如 gi 或 sql),然后使用 Ctrl+Up 向后滚动与该前缀匹配的命令历史条目列表(例如git clone https://code.google.com/p/double-conversion/ 和 sqlite3 .svn/wc.db .tables)。如果您想编辑或重新执行最近的命令,这比搜索然后剪切和粘贴要快得多。
【讨论】:
我将history 命令与grep 结合使用,例如history | grep vi 显示使用了vi 的所有命令。
【讨论】:
查看命令“fc”的“Gnu Bash 手册”(man bash)。例如fc -l -80 将列出最后 80 条命令,而其他选项让您使用 RegEx 进行搜索...
【讨论】:
做
vi ~/.inputrc
添加
对于向上/向下箭头绑定:
"\e[A": history-search-backward
"\e[B": history-search-forward
或者对于页面上/下绑定:
"\e[5~": history-search-backward
"\e[6~": history-search-forward
关闭并打开cygwin。
瞧。
【讨论】:
我认为最简单的方法之一是使用 less 进行管道化,然后按搜索字符(“/”),然后键入您要查找的命令。
history | less
然后
/text to find
找到所需的命令
另一种方式
是将stdout表单历史命令附加到文件中:history > /cygdrive/path/file.txt
然后在文档中搜索。
【讨论】: