Поиск в переданном файле журнала с помощью чего-то вроде этого:
кот/путь/к/файлу/журнала | grep -iEw 'какой-то-ip-адрес|соответствующий-mac-адрес'
Это дает мне все пройденные строки журнала до сих пор, так что я могу видеть, что было. Теперь я также хочу видеть, что происходит, поэтому мне нужно обменять cat
с, tail -f
что дает мне это:
хвост -ф/путь/к/файлу/журнала | grep -iEw 'какой-то-ip-адрес|соответствующий-mac-адрес'
решение1
Вы можете использовать его !!:*
для ссылки на все слова, кроме нулевого в последней командной строке.
!!
относится к предыдущей команде, :
отделяет спецификацию события от обозначения слова, *
относится ко всем словам, кроме нулевого.
Это из HISTORY EXPANSION
раздела bash(1).
wieland@host in ~» cat foo | grep bar
bar
wieland@host in ~» tail -f !!:*
tail -f foo | grep bar
bar
Вы также можете использовать быструю замену, где ^string1^string2^
повторяется последняя команда, заменяя ее string1
на string2
:
wieland@host in ~» cat foo | grep bar
bar
wieland@host in ~» ^cat^tail -f
tail -f foo | grep bar
bar
решение2
- Нажмите Upили Ctrl+ P, чтобы вызвать предыдущую строку. Повторите, если хотите предыдущую строку и т. д.
- Нажмите Homeили Ctrl+ A, чтобы перейти к началу строки.
- Нажмите Alt+ D, чтобы удалить слово под курсором, т. е. команду, которую вы хотите заменить.
- Введите команду, которую вы хотите выполнить сейчас.
- Нажмите Enter, чтобы выполнить команду.