Bash 기록에서 항목을 찾는 방법

Bash 기록에서 항목을 찾는 방법

Bash를 열고 위쪽 화살표를 누르면 마지막으로 입력한 명령이 표시됩니다. 위쪽 화살표를 계속 누르면 이전에 입력한 일련의 명령이 표시됩니다.

위쪽 화살표를 n번 누르지 않고도 이 목록에서 특정 명령을 어떻게 찾을 수 있습니까?

답변1

을 누르고 CTRL+R입력을 시작하세요. CTRL+R다음 항목을 찾으려면 다시 누르세요 .

답변2

다음 명령을 사용하여 .bash_history 파일에서 찾을 수 있습니다.

sed -n '/commandwhichyouwanttosearch/p' bash.history

ls 명령에 대해 .bash_history를 검색한다고 가정해 보겠습니다.

history | sed -n '/ls/p'

답변3

이것은 아직 언급되지 않았습니다.

!start-of-command

예를 들어

echo hello
ls
!echo
#finds echo hello

답변4

History + grep(또는 기타 텍스트 검색 명령)

문자열 "foo"를 포함하는 모든 기록 항목을 나열하려면 다음을 수행하십시오. history | grep "foo"

history- 히스토리 버퍼의 모든 명령을 표시합니다.

grep "foo"- 문자열이 포함된 행을 검색하고 foo, grep 매뉴얼에 따라 정규식을 사용할 수도 있습니다.


거꾸로 내가 검색해

기록으로 돌아가려면(이전에 화살표 키를 사용했던 것처럼) Ctrl+R을 사용하세요. Ctrl+R을 누르고 입력을 시작하면 됩니다. 문구를 입력한 후 Ctrl+R을 여러 번 누르면 일치하는 기록 항목으로 다시 반복됩니다.


퍼지 파인더

이것은 내 개인적인 취향입니다. 기본적으로 작동하지 않는 솔루션이지만 어느 정도 인정받을 가치가 있다고 생각합니다. 많은 것을 더 효율적으로 검색할 수 있는 bash용 퍼지 파인더 확장을 설치할 수 있습니다(역방향 i-검색을 대체하므로 ctrl+r은 기록 검색의 바로가기로 사용됩니다).

관련 정보