이전 명령의 매개변수(cd, ls 또는 echo 아님)를 사용하여 명령을 다시 실행하는 바로가기가 있습니까?

이전 명령의 매개변수(cd, ls 또는 echo 아님)를 사용하여 명령을 다시 실행하는 바로가기가 있습니까?

다음을 사용하여 전달된 로그 파일을 검색합니다.

고양이/path/to/log 파일 | grep -iEw '여기에 일부 IP 주소가 있습니다.'

그러면 지금까지 전달된 모든 로그 라인이 제공되므로 무슨 일이 일어났는지 확인할 수 있습니다. 이제 무슨 일이 일어나고 있는지 확인하고 싶으므로 다음을 교환해야 cat합니다 tail -f.

꼬리 -f/path/to/log 파일 | grep -iEw '여기에 일부 IP 주소가 있습니다.'

답변1

!!:*마지막 명령줄의 0번째 단어를 제외한 모든 단어를 인용하는 데 사용할 수 있습니다 .

!!이전 명령을 참조하고, :이벤트 지정을 단어 지정자와 구분하며, *0번째 단어를 제외한 모든 단어를 참조합니다.

이것은 HISTORY EXPANSIONbash(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

  1. 이전 줄을 불러오려면 Up또는 Ctrl+를 누르세요 . P이전 행 등을 원하면 반복하십시오.
  2. 줄의 시작 부분으로 이동하려면 Home또는 Ctrl+를 누르세요 .A
  3. Alt+를 누르면 D커서 아래에 있는 단어, 즉 바꾸려는 명령이 삭제됩니다.
  4. 지금 실행하려는 명령을 입력하세요.
  5. 실행 명령을 누르세요 Enter.

관련 정보