如何在cygwin中搜索命令历史记录?
我不想按箭头键从控制台命令历史记录执行命令。
答案 0 :(得分:11)
如果您使用默认编辑模式,请按ctrl + R搜索历史记录。
如果你已经设置了-o vi来使用vi编辑模式,那么它是esc - /
答案 1 :(得分:5)
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
)。如果你想编辑或重新执行一个相当新的命令,这比搜索然后剪切和粘贴要快得多。
答案 2 :(得分:3)
我将history
命令与grep
结合使用,例如history | grep vi
显示所有使用vi
的命令。
答案 3 :(得分:2)
查看“Gnu Bash手册”(man bash
)以获取命令“fc”。例如,fc -l -80
将列出最后80个命令,而其他选项允许您使用RegEx ...
答案 4 :(得分:2)
待办事项
vi ~/.inputrc
添加
对于向上/向下箭头绑定:
"\e[A": history-search-backward
"\e[B": history-search-forward
或者页面向上/向下绑定:
"\e[5~": history-search-backward
"\e[6~": history-search-forward
关闭并打开cygwin
。
瞧。
答案 5 :(得分:0)
我认为最简单的方法之一是用较少的方法来管道它并按下搜索字符(“/”),然后输入你想要找到的命令。
history | less
然后
/text to find
找到所需的命令
另一种方式
将stdout表单历史命令附加到文件:history > /cygdrive/path/file.txt
然后在文档中搜索。