Cygwin命令历史记录的快捷方式

时间:2011-06-17 00:29:47

标签: command-line cygwin

如何在cygwin中搜索命令历史记录?

我不想按箭头键从控制台命令历史记录执行命令。

6 个答案:

答案 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.*MyProgramh ^tar -ch svn:ignore之类的内容来提取与正则表达式匹配的过去命令的排序列表。

您可能还想将以下行添加到〜/ .inputrc:

# Ctrl+Up/Down for searching command history
"\e[1;5A": history-search-backward
"\e[1;5B": history-search-forward

有了这些,您可以键入部分命令前缀(例如gisql),然后使用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

然后在文档中搜索。