Ответ 1
Продолжайте нажимать Ctrl - R, и он будет перемещаться по вашей истории.
Я думаю, что пример будет хорошим, чтобы понять мой вопрос.
...
scp file1 [email protected]:/home/user1/linuxfiles/samplecode/important
...
...
scp file1 [email protected]:/home/user1/linuxfiles/samplecode/important/tested
...
...
Предположим, что это порядок команд в истории. Если я делаю Ctrl + R и набираю scp
, он покажет последнюю выполненную команду scp
(то есть строку, заканчивающуюся "проверенной" ).
Но я хочу найти команду scp, заканчивающуюся 'important'. Итак, есть ли способ в этом reverse-i-search
просмотреть все команды, начинающиеся с scp, чтобы выбрать подходящий?
Продолжайте нажимать Ctrl - R, и он будет перемещаться по вашей истории.
Если ваши условия поиска немного сложнее/не смежны, другой вариант - grep среди результатов history
, например:
history 300 | grep scp | grep important$
Это вернет список команд в вашей истории, которые соответствуют, например:
3323 scp file1 [email protected]:/home/user1/linuxfiles/samplecode/important
3325 scp file1 [email protected]:/home/user1/winfiles/samplecode/important
Затем вы можете выполнить соответствующую команду с помощью !3325
.
Я иногда считаю это полезным при запуске множества подобных команд и, возможно, придется многократно нажимать Ctrl + R, чтобы вернуться к точной команде.
Существует отличная альтернатива Ctrl + R
установить https://github.com/dvorka/hstr
запустите его с помощью hh
он отображает список всех последних выполненных команд (содержимое./bash_history)
если вы начнете вводить список, будет отфильтрован на основе того, что вы набираете
вы можете использовать стрелки Up/Down, чтобы выбрать нужную команду и выбрать ее с помощью Enter