Назад | Перейти на главную страницу

Последняя команда, начинающаяся с

Используя BASH, вы можете получить последнюю команду (при подключении через терминал PuTty) с помощью клавиши со стрелкой ВВЕРХ.

Я хочу знать, есть ли способ "автозаполнения" последней выполненной мной команды начиная с почта, например.

В Google Chrome, например, как работает адресная строка, сужая из вашей предыдущей истории веб-поиска сайт, который вы пытаетесь посетить.

Итак, я хочу начать набирать «mail», затем, например, нажать клавишу ВВЕРХ и последняя команда, начинающаяся с почты получает автозаполнение. Если я снова нажму "вверх", то вторая последняя команда, начинающаяся с почты, будет автоматически завершена.

Возможно ли такое в BASH?

Ударить CTRL + R он запустит обратный поиск в истории. Если вам нужна вторая команда со строкой, которую вы хотите найти, продолжайте нажимать CTRL + R пока не найдете команду с тем, что вам нужно.

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

Вы можете связать readline функция history-search-backward на нажатие клавиши (и history-search-forward другому). Я привязал их к PgUp и PgDn которые в моей системе ^[[5~ и ^[[6~ так что в моем ~/.inputrc:

"\e[5~": history-search-backward
"\e[6~": history-search-forward

Используя это, вы вводите начало нужной строки, mail например, затем нажмите PgUp несколько раз, пока не дойдете до предыдущей строки, которую ищете. Вы можете нажать PgDn для перехода назад по списку. Разница с Ctrl+р это то, что с ним вы сначала нажимаете клавишу, тогда она соответствует любой строке где угодно в пределах строка, а не только в начале. Я считаю, что использую оба метода в зависимости от того, что делаю.

Вы можете сделать шаг назад после нажатия Ctrl+р несколько раз нажав Ctrl+S если у вас есть forward-search-history привязан к нему, и у вас есть stty -ixon в твоем ~/.bashrc.

Обратите внимание на тонкую разницу между history-search-forward и forward-search-history.

Один из способов выполнить последнюю команду, начинающуюся с mail, - !mail но он не позволит вам прокрутить вверх, последний или ничего (способ выше лучше :))

Последнюю команду можно выполнить с помощью !!