히스토리 명령을 실행하지 않고 명령줄에 넣습니다.

히스토리 명령을 실행하지 않고 명령줄에 넣습니다.

나는 !n을 사용합니다. 여기서 (n)은 기록 파일에서 한 줄을 실행하는 데 사용되는 줄 번호이고, 명령 프롬프트에서 해당 줄을 실행하고 싶습니다. 명령 프롬프트는 History|less를 통해 찾습니다.

하지만 수동으로 수정하고 싶은 명령줄 기록 이벤트가 있습니다. 기록 이벤트 내용을 실제로 실행하지 않고 명령줄에 삽입하여 수정한 다음 Enter 키를 누를 수 있도록 하려면 어떻게 해야 합니까?

최고,

답변1

히스토리 교체 후 실행하는 대신 인쇄 명령을 요청하려면 다음을 추가하세요.:p 수정자,예를 들어 !42:p. 생성된 명령도 기록에 입력되므로 Up를 눌러 편집할 수 있습니다.

당신이 가지고 있다면histverify 옵션( shopt -s histverify)를 설정하면 언제든지 과거 교체 결과를 편집할 수 있습니다.

이것fc내장기록 확장(단어 표시 없음)에 대한 제한된 액세스를 제공하고 외부 편집기에서 이전 명령을 편집할 수 있습니다.

!prefixusing 으로 시작된 마지막 명령 prefix!?substring로 시작된 마지막 명령을 참조 할 수 있습니다 substring. 이렇게 하면 찾고 있는 것이 무엇인지 알 때 많은 시간을 절약할 수 있습니다 history | less.

이전 기록을 검색하는 또 다른 방법은 점진적으로 검색하는 것입니다. Ctrl+를 누르고 R찾고 있는 내용의 하위 문자열을 입력하기 시작하세요. 지금까지 검색 문자열의 이전 항목으로 이동하려면 Ctrl+를 누르고 , 너무 멀리 이동하려면 +를 누릅니다. + , + 및 일반 문자를 제외한 대부분의 키는 증분 검색을 종료하고 일반적인 작업을 수행합니다(예: 화살표 키는 명령을 실행하기 위해 도달한 줄로 커서를 이동합니다 ).RCtrlSCtrlRCtrlSBackspaceEnter

답변2

또 다른 작은 것 : Alt+#

현재 줄을 주석 처리하고 기록 버퍼로 이동합니다.

따라서 명령줄을 조합하고 파일을 찾기 위해 임시 명령을 실행해야 하는 경우 Alt+를 누르고 #다른 명령을 실행하고 기록에서 찾은 후 주석 처리를 해제하고 계속하면 됩니다.

답변3

Enter를 누르기 전에 마법 공간을 사용하여 기록을 확장할 수 있습니다. .inputrc에서 공간을 매직 공간에 매핑합니다.

$if Bash
     Space: magic-space
$endif

이제 기록 사양 뒤에 공백을 입력할 때마다 공백이 즉시 확장됩니다. 이는 편집하려는 경우에도 편리합니다!

답변4

나는 보통 Ctrl+를 사용 r하여 검색한 다음 Ctrl+를 사용 e하여 실행하지 않고 줄의 끝으로 이동합니다.

관련 정보