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

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

내 기록 파일에서 명령을 검색하는 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[A및 사용을 선호할 수 있습니다.)\e[BUpDown

답변4

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

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

!foo

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

!?foo

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

관련 정보