Завершение командной строки из истории команд

Я предпочитаю философию лицензии лицензии BSD по сравнению с лицензией GPL. Мне свободные средства делают в значительной степени независимо от того, что Вы хотите с кодом. Это настолько свободно, можно сделать его не свободным как яблоко, сделал.

Практически это, вероятно, не оказывает влияния на меня, но я предпочитаю его на принципе, и была одна из причин, я принял решение использовать FreeBSD по Linux.

Другая причина, я хотел чинить, я нахожу, когда, когда я использую Ubuntu, я не надеваю свою шляпу Unix; вместо этого я просто использую GUI везде, как будто я был в окнах (который является не обязательно плохой вещью, просто отличающейся).

89
16.09.2011, 05:45
5 ответов

Нажатие Ctrl+R откроет обратный поиск истории. Теперь начните вводить свою команду, это даст первое соответствие. Путем нажатия Ctrl+R снова (и снова) можно циклически повториться через историю.

mysq(Ctrl+R)

Дал бы:

mysqldump  --add-drop-table -e -q -n -C -u 

Ctrl+R снова:

mysql -u ben.dauphinee -p
93
27.01.2020, 19:30
  • 1
    Спасибо. Кроме того, Esc поместит выбранную команду на Вашу командную строку без выполнения, в то время как Входят, выполнит выбранную команду. –  Ben Dauphinee 03.01.2011, 18:08
  • 2
    я нахожу CTRL+E лучше для этого, чем ESC, потому что Escape неудобно достигнуть, но я уже поражаю CTRL+R, таким образом, E тут же. Это также располагает курсор в конце строки, которая удобна в случае, если я хотел изменить что-то (как имя файла), который я нахожу, чтобы быть общим падежом. –  Sorpigal 03.01.2011, 19:41
  • 3
    К сожалению, это не работает над Cygwin –  ATorras 19.02.2018, 10:54

Чтобы подробно остановиться, что сказал Gilles, у меня есть следующее в моем .inputrc связывать/клавиша со стрелкой вниз с history-search-backward и history-search-forward:

# Key bindings, up/down arrow searches through history
"\e[A": history-search-backward
"\e[B": history-search-forward
"\eOA": history-search-backward
"\eOB": history-search-forward

Просто введите что-то (дополнительно), затем нажмите/клавиша со стрелкой вниз для поиска истории для команд, которые начинаются с того, что Вы ввели.

Выполнить в этом .bashrc вместо .inputrc, можно использовать:

bind '"\e[A": history-search-backward'
66
27.01.2020, 19:30
  • 1
    те, которые связывают, принадлежат в ~/.inputrc..., благодарит поддерживать мою ленивость. –  Martin Zeitler 20.05.2015, 20:03
  • 2
    Стоит отметить, что '\e' крайне важен, по крайней мере, для дебютантов удара. Просто ввод Ctrl-V для получения нажатия клавиши для команды не рассказывает целую историю. Например, вводя Ctrl-V Meta-P (т.е.). Alt-P), возвращает ^ [p - для получения поведения, которое Вы хотите, заменяете "^ [" с '\e'. –  MrMas 02.06.2015, 21:04
  • 3
    Согласитесь с @syslogic - помещает строки в .inputrc и отбрасывают связывание и одинарные кавычки. –  MrMas 02.06.2015, 21:04
  • 4
    это в .inputrc на osx, я добираюсь: источник ~/.inputrc - удар: \e [A:: команда, не найденная - удар: \e [B:: команда, не найденная - удар: \eOA:: команда, не найденная - удар: \eOB:: команда, не найденная –  Walrus the Cat 04.07.2015, 00:50
  • 5
    См. superuser.com/questions/241187/how-do-i-reload-inputrc. Вы не можете получить файл. –  raychi 23.02.2016, 01:47

Можно использовать команды readline history-search-backward и history-search-forward для навигации между строками команд, начинающимися с префикса, Вы уже ввели. Ни одна из этих команд не связывается с ключами в конфигурации по умолчанию.

Zsh (zle) имеет подобные команды history-beginning-search-backward и history-beginning-search-forward, также не связанный с ключами по умолчанию. Существуют также history-search-backward и history-search-forward, который использует первое слово текущей команды как префикс для поиска независимо от позиции курсора.

5
27.01.2020, 19:30

Если Вы хотите хороший обзор очень похожих команд, можно получить список с:

history|grep KEYSTRING

Затем копия и вставка со средней кнопкой Вашей мыши.

Пожелания - Joe

4
27.01.2020, 19:30

Вы также можете нажать кнопку PAGEUP для автоматического завершения команды. Он в основном ищет файл bash_history.

7
27.01.2020, 19:30

Теги

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