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은 기록 검색의 바로가기로 사용됩니다).