Matlab-подобный поиск истории команд в командной строке unix

В Matlab есть очень хорошая функция, которая мне нравится. Предположим, я набрал команду очень длинная команда , а затем несколько команд. Затем, если мне снова понадобится длинная команда, я просто набираю очень и нажимаю клавишу со стрелкой вверх, появляется моя длинная команда. Он находит последнюю команду, которая начинается с очень . Я не мог Делая то же самое в командной строке Unix, когда я пытаюсь это сделать, он игнорирует все, что я набрал, и возвращается к последним командам в хронологическом порядке. Есть ли способ сделать это?

14
задан AgCl 20 August 2010 в 22:03
поделиться

3 ответа

В bash нажатие ctrl - r позволит вам выполнить поиск в истории:

$ echo 'something very long'
something very long
$ # blah
$ # many commands later...
(reverse-i-search)`ec': echo 'something very long'

В приведенном выше фрагменте я нажал ctrl - r в следующей строке после # многие команды позже ... , а затем набрал e c , что вернуло меня к команда echo. В этот момент нажатие Enter выполнит команду.

8
ответ дан 1 December 2019 в 12:38
поделиться

Вы можете сделать то же самое, используя "!". Например:

 $ echo "Hello"
 Hello
 $ !echo
 echo "Hello"
 Hello

Однако, как правило, делать такие вещи - плохая идея (что, если последняя команда сделала что-то разрушительное?). Если вы ожидаете, что будете использовать что-то повторно, то я предлагаю вам создать сценарий оболочки и сохранить его где-нибудь (всякий раз, когда я планирую что-то повторно использовать, я создаю сценарий в ~ / .local / bin).

3
ответ дан 1 December 2019 в 12:38
поделиться

В bash эта функциональность обеспечивается командами history-search-forward и history-search -backward, которые по умолчанию не привязаны к каким-либо ключам (см. здесь ). Если вы запустите

bind '"\e[A":history-search-backward'
bind '"\e[B":history-search-forward'

, он будет выполнять поиск по стрелке вверх и вниз по истории назад и вперед для строки символов между началом текущей строки и точкой. См. Также этот связанный вопрос о переполнении стека .

11
ответ дан 1 December 2019 в 12:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: