Какой самый быстрый способ перезагрузить историю команд, начинающихся с определенных символов в Linux?

Какой самый быстрый способ перезагрузить историю команд, начинающихся с определенных символов в Linux?

В Dos мы можем ввести первые несколько символов, чтобы отфильтровать историю команд и быстро найти нужную. Но как сделать то же самое в Linux?

например, когда я тестирую локальный сервер:

cd 
sudo /etc/init.d/vsftpd start
wget ...
ls
emacs ...
sudo /etc/init.d/vsftpd restart
sudo /etc/init.d/vsftpd stop
...

В Dos вы можете легко вводить sudoи переключаться между тремя командами, начинающимися с него, используя клавиши со стрелками. Но в Linux, является ли команда ниже лучшим, что мы можем сделать?

historty | grep sudo

Мне это не нравится, потому что история легко может превратиться в беспорядок, и для этого также требуется управление мышкой.

решение1

Вставьте в свой ~/.inputrc:

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

Затем после ввода sudoбудет Upвыполнен поиск команд, начинающихся с sudo.

(Вам придется перезапустить bash.) (Не уверен, работает ли это в csh.)

решение2

В Bash (и большинстве подобных приложений на основе Readline) можно нажать , Ctrl-Rчтобы вызвать функцию поиска по истории:

$ date
Tue Feb  1 15:40:06 EET 2011
(reverse-i-search)`d': date

Нажимая Enterздесь я получаю:

$ date
Tue Feb  1 15:40:06 EET 2011
$ date
Tue Feb  1 15:40:52 EET 2011

РЕДАКТИРОВАТЬ:

Вы можете увидеть полный список сочетаний клавиш Bash, связанных с историейздесь.

Вы можете увидеть текущий список привязок клавиатуры для поиска по истории:

$ bind -P | grep search | grep history
forward-search-history can be found on "\C-s".
history-search-backward can be found on "\e[5~".
history-search-forward can be found on "\e[6~".
non-incremental-forward-search-history can be found on "\en".
non-incremental-forward-search-history-again is not bound to any keys
non-incremental-reverse-search-history can be found on "\ep".
non-incremental-reverse-search-history-again is not bound to any keys
reverse-search-history can be found on "\C-r".

В моем случае Page-Up/Down также можно использовать для поиска команд, начинающихся с того, что я уже ввел, как настроено в моем /etc/inputrc:

# Page Up/Down cycles through history only for matching entries
"\e[5~": history-search-backward       # Previous
"\e[6~": history-search-forward        # Next

решение3

В дополнение к Ctrl+ R, вы можете ввести !sudo+ Enterв bash, и он выполнитпоследнийкоманда, начинающаяся с sudo.

решение4

Введите первую букву, например sudo, нажмите Ctrl, а затем или .

Связанный контент