2012-09-04 79 views
1

有時候,我試圖通過CTRL +[R搜索一些命令,它不是發現, 而我最近使用它或CTRL +[R成功搜索。bash的歷史CTRL + R行爲

我運行歷史`我可以再次找到命令。

這種行爲是否正常? 如何更改?

回答

1

Ctrl + R在歷史中從當前位置向後搜索,所以如果您已經移動了該位置,您將錯過接近尾聲的部分。

如:

[email protected]: ~ $ foob 
bash: foob: command not found 
[email protected]: ~ $ barz 
bash: barz: command not found 
[email protected]: ~ $ barq 
bash: barq: command not found 
[email protected]: ~ $ quarg 
bash: quarg: command not found 

按Ctrl + R,酒吧產量:

(reverse-i-search)`bar': barq 

而且移動到那個歷史時刻 - 如果隨後做Ctrl + R鍵和搜索quarg,你不會找到它。這可通過使用end-of-history(M->默認值)來重新設置索引來重新設置。

+0

當「移動到歷史上的這一點」?命令執行時或在^ R提示符下執行? – dimba

+0

絕對是「當你在Ctrl + R時」(例如,如果你再次按下Ctrl + R,它會從剛剛給你的比賽中向後搜索)。 – themel

+0

但是,如果我在shell中,只是按CTRL + R比歷史搜索並不總是位於最後? – dimba