기록에서 명령을 로드했지만 아직 실행되지 않았으므로 수정할 수 있습니다.

기록에서 명령을 로드했지만 아직 실행되지 않았으므로 수정할 수 있습니다.

Bash에서는 방법을 알고 있습니다.

history |grep foo

그러면 foo가 포함된 기록에 번호가 매겨진 명령 목록이 표시됩니다. 다른 매개변수를 사용하여 이러한 명령 중 하나를 실행하려면 마우스를 사용하여 복사하여 붙여넣으면 됩니다. 정확한 명령을 반복하고 싶지 않습니다. 프롬프트에서 로드하고 몇 가지 사항을 변경한 다음 실행하고 싶습니다. 이를 수행할 수 있는 방법이 있습니까? 위쪽 화살표가 항상 작동하는 것은 아닙니다.

답변1

Bash를 사용하는 경우 명령을 활성화 histverify한 다음 명령을 호출하고 !그 뒤에 기록의 명령 번호를 입력할 수 있습니다.

shopt -s histverify

또 다른 흥미로운 접근 방식은 다음을 사용하는 것입니다 fc.

fc 200

기록의 200번째 명령이 편집기에 로드됩니다. 그런 다음 원하는 대로 명령을 편집할 수 있으며 편집기를 종료하면 명령이 실행됩니다.

다른 셸(예: Zsh)에도 비슷한 기능이 있습니다.

바라보다역사적 상호작용에 관한 Bash 매뉴얼 장더 알아보기.

관련 정보