Команды readline, которые вы ищете, это history-search-*
команды:
history-search-forward
Поиск вперед по истории для строки символов между началом текущей строки и текущей позицией курсора (точка). Это неинкрементный поиск.
history-search-backward
Поиск назад по истории строки символов между началом текущей строки и точкой. Это неинкрементный поиск.
Привязать их в вашем .inputrc
, вот так:
"\e[A": history-search-backward # arrow up
"\e[B": history-search-forward # arrow down
позволит ввести первые символы команды, а затем использовать Upи Downклавиши для перемещения через только те команды , в вашем , .bash_history
которые начинаются с этой строки.
Например, введя vi
и Up, вы перейдете к первой предыдущей команде, начинающейся с vi
, например vim somefile
. Ввод Upприведет вас к следующему предыдущему экземпляру и так далее.
Вы можете прочитать больше обо всех привязках readline здесь:
http://linux.about.com/library/cmd/blcmdl3_readline.htm
Добавить "!" к команде, которую вы ищете. Если вы хотите заменить функциональность стрелок вверх и вниз, то изменение файла inputrc (как предлагают другие ответы) - это путь.
Если «команда» - это команда, которую вы ищете, введите это:
Вы должны получить «команду» в качестве вывода.
Аналогично, если вы хотите найти команду, которая включает (но может не начинаться с) часть команды, нажмите ctrl + r, а затем введите часть команды.
Вы также можете ввести «вкладку», чтобы автоматически заполнить введенный текст (в том числе и файлы). Это полезно, если вы ищете команду, которой нет в истории (или у вас нет файла истории)
Вы можете прочитать больше об "освоении" файла истории здесь: http://www.thegeekstuff.com/2008/08/15-examples-to-master-linux-command-line-history/
Это возможный дубликат /programming/1030182/how-do-i-change-bash-history-completion-to-complete-whats-already-on-the-line
источник