Кроме просмотра истории, есть ли способ отфильтровать мою историю?
Скажите, я хочу найти команду, которая началась с "ssh"?
command-line
Бланкмэн
источник
источник
Я делаю небольшую вариацию из вышеперечисленного, хорошо работает для меня (если вы имеете в виду вашу историю Bash
В моей домашней папке я создаю файл с именем
Внутри идет это
Примечание: вышеприведенное, похоже, больше не работает в 14.04, так что это делает то же самое -
Затем, набрав как можно большую часть предыдущей команды, используя кнопки «вверх» / «страница», dn ищет историю, всегда начиная с «вверх».
источник
Нажатие Ctrl+ Rзапустит режим «reverse-i-search», ввод «ssh» будет искать в вашей истории команды, содержащие «ssh».
источник
Вот еще один метод, использующий классические команды (более вероятно, работать через дистрибутивы). История команд хранится в файле
.bash_history
в вашем домашнем каталоге, поэтому вы можете сделать это:Не забывайте
-i
флаг, если вам нужен поиск без учета регистра.источник
history | grep ssh
покажет только временную сессию ssh, поэтому я бы пошел на этот ответ.Я нашел следующую функцию где-то в Интернете и использовал ее с большим эффектом. Поместите это в свой
~/.bashrc
:Теперь повторно загрузить оболочку:
exec bash
. Теперь у вас есть новая команда, которую вы можете использовать так:Он покажет вам список подходящих команд из вашей истории. Чтобы выполнить команду, введите,
!
а затем номер команды. Вот пример:Мне нравится этот подход лучше, чем Ctrl+, Rпотому что он позволяет гораздо более гибкий поиск, и я могу видеть несколько результатов одновременно.
источник
Поместите это в свой
~/.bashrc
:пример:
источник
Если вы используете shell в Emacs (
M-x shell
), вы можете использоватьM-r
(это эквивалентно Ctrl+ Rв терминале ).источник
История хороша, но ограничена - я предпочитаю настроить свою среду bash так, чтобы я регистрировал все команды, которые я когда-либо выполнял, в дополнение к каталогу, в котором они были запущены. Затем я запускаю команду, чтобы вывести список всех команд Я запустил в текущем каталоге, который я могу направить на grep и т. Д. - это называется «блюдо» см:
https://github.com/wolfwoolford/dish
Если вы хотите перейти в погоню, просто укажите это в своем .bashrc ( https://github.com/wolfwoolford/dish/blob/master/dishrc )
Есть также действительно полезная команда, которую вы получаете бесплатно, которая называется «dishg» - или «тарелка глобальная», которая распечатывает каждую команду, которая когда-либо выполнялась, независимо от каталога. Очевидно, что это полезно только при использовании с grep, tail и т. Д.
Я использую его годами, и это буквально первое, что я устанавливаю, когда устанавливаю новую коробку. Он записывает команды, которые вы запускаете в текстовые файлы в скрытом каталоге (~ / .dish) .. У меня никогда не было проблем с дисковым пространством ...
источник
Хотел написать это как комментарий к @ssmy, но не смог получить форматирование в комментарии для сотрудничества.
После поиска в истории
history | grep ssh
вы можете выполнить желаемую команду, набрав ее номер с восклицательным знаком, например!42
.Пример:
источник