마지막 명령의 인수(cd, ls 또는 echo 아님)를 사용하여 명령을 다시 실행하는 바로 가기가 있습니까?

마지막 명령의 인수(cd, ls 또는 echo 아님)를 사용하여 명령을 다시 실행하는 바로 가기가 있습니까?

다음과 같이 전달된 로그 파일을 검색합니다.

고양이/경로/to/로그파일 | grep -iEw '일부 IP 주소-여기|해당-맥-주소-여기'

그러면 지금까지 전달된 모든 로그 라인이 제공되므로 현재 상태를 확인할 수 있습니다. 이제 나는 무슨 일이 일어나고 있는지 알고 싶기 때문에 나 에게 이것을 제공하는 cat것과 교환해야 합니다 tail -f:

꼬리 -f/경로/to/로그파일 | 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명령을 실행하려면 누르세요 .

관련 정보