Подтвердить что ты не робот

В обратном i-поиске (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, чтобы выбрать подходящий?

4b9b3361

Ответ 1

Продолжайте нажимать Ctrl - R, и он будет перемещаться по вашей истории.

Ответ 2

Если ваши условия поиска немного сложнее/не смежны, другой вариант - 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, чтобы вернуться к точной команде.

Ответ 3

Существует отличная альтернатива Ctrl + R

установить https://github.com/dvorka/hstr

запустите его с помощью hh

он отображает список всех последних выполненных команд (содержимое./bash_history)

если вы начнете вводить список, будет отфильтрован на основе того, что вы набираете

вы можете использовать стрелки Up/Down, чтобы выбрать нужную команду и выбрать ее с помощью Enter