쉘 기록을 검색하는 가장 좋은 방법

쉘 기록을 검색하는 가장 좋은 방법

grep보다 내 기록 파일에서 명령을 검색하는 더 좋은 방법이 있습니까? 나는 그 명령이 무엇으로 시작하는지 어느 정도 알고 있지만 그것이 역사에서 얼마나 멀리 떨어져 있는지는 모릅니다.

업데이트:이전에는 zsh에만 국한되었지만 중복되는 답변으로 인해 여기에 있는 모든 쉘(또는 모드(vi/emacs))에 대해 자유롭게 답변하십시오. 구체적인 경우에만 참고하세요.

답변1

Ctrl+는 R일반적으로 가장 좋은 방법입니다.설명자가 말했다. !string로 시작하는 최신 명령을 실행하는 를 사용 string하거나 !?string?, 가 포함된 최신 명령을 실행하는 를 사용할 수도 있습니다 string.

(내 생각에는 이것이 이 질문과 관련된 유일한 내용이라고 생각합니다. 그러나 나는 역사 명령에 대해 훨씬 더 많이 다루었습니다.이 답변)

답변2

Bash를 사용하는 경우 Control-를 입력한 R다음 입력을 시작합니다. 입력 Control- R일부 텍스트를 입력한 후 반복적으로 일치하는 명령줄로 돌아갑니다.

답변3

다음을 추가하면~/.inputrc

"\e[5~": history-search-backward
"\e[6~": history-search-forward

Bash를 다시 시작하면 입력을 시작한 다음 및 를 사용하여 Page Up방금 Page Down입력한 것과 동일한 접두어로 시작하는 줄 기록을 통해 앞뒤로 이동할 수 있습니다.

(일부는 새 키를 바인딩하는 대신 일반 및 작업을 대체하는 \e[Aand 를 사용하는 것을 선호할 수 있습니다 .)\e[BUpDown

답변4

Ctrl이미 언급한 - 에 의해 호출되는 대화형 프롬프트가 R가장 편리한 방법입니다. 또한 현재 명령줄에 있는 접두사에 대한 기록을 검색하기 위해 다시 매핑 Up하고 화살표 키를 사용하는 것이 널리 사용되지만 이를 위해서는 약간의 요구 사항이 있습니다.Down~/.inputrc파일 변경.

고전적이고 덜 대화식인 솔루션은 쉘 히스토리 확장을 사용하는 것입니다. 타자

!foo

foo및 로 시작하는 마지막 명령을 실행합니다 .

!?foo

가 포함된 마지막 명령을 실행합니다 foo. 기록 확장에 대한 자세한 내용은 다음에서 확인할 수 있습니다.배쉬 참조 매뉴얼, 쉘이 Bash이거나 호환 가능하다고 가정합니다.

관련 정보