Ctrl + R в командной строке терминала Linux / Ubuntu

17

С помощью CTRL+ Rвы можете искать в предыдущих командах (в терминале Ubuntu). Тем не менее, он всегда отображает последнее вхождение поискового запроса. Есть ли способ просмотреть все результаты?

hsmit
источник

Ответы:

34

После того, как вы введете несколько символов для поиска, вы можете снова нажать CTRL + R, чтобы просмотреть историю, которая соответствует тому, что вы ввели.

Это будет ограничено размером истории, хотя.

Матье
источник
КЛАССНО! это именно то, что я искал!
alfasin
1
Что касается контроля размера истории, можно заметить, что она HISTFILESIZEуправляет размером файла истории ( ~/.bash_history), но HISTSIZEуправляет размером конкретной истории терминала, и именно последний решает, как далеко Ctrl+Rможет смотреться назад . Я заметил это на машине, где увеличил первую переменную, но не последнюю. Оба изначально установлены на 500, но если кто-то хочет сохранить больше истории обратного поиска, обе переменные должны быть обновлены.
Даниэль Андерссон
8

Вам просто нужно нажать еще CTRL-Rраз.


источник
2

Если вы просто хотите увидеть все совпадающие строки истории одновременно, попробуйте fc -ln | grep.

mress:10077 Z$ fc -ln -100 | grep \^cd 
cd /Volumes/Development/android-sdk-mac_x86
cd ~/Downloads/MagicTrackpad.pkg
cd Resources
cd English.lproj
cd ../..
cd MagicTrackpadMultiTouchUpdate1.0.pkg
cd ..
cd 

( -100означает «последние 100 команд»; по умолчанию установлено 20, или вы можете указать диапазон.)

geekosaur
источник
1

Для шага по поиску вы должны CTRL+Rснова.

Но если вы хотите список команды, вы можете использовать

history | grep 'command to search'
eveevans
источник