BASH의 루프에서 역방향 검색을 수행하는 방법은 무엇입니까?

BASH의 루프에서 역방향 검색을 수행하는 방법은 무엇입니까?

터미널에서 Ctrl+를 입력하면 R이전에 BASH에 입력한 일치 명령을 검색할 수 있습니다. 예를 들어 Ctrl+ Rthen 을 입력하면 grep마지막 grep명령이 나열되며 Enter를 눌러 사용할 수 있습니다. 그러나 이것은 단지 제안일 뿐입니다. 이전에 입력한 다른 일치 명령을 반복하는 방법이 있습니까?

답변1

Ctrl제가 질문을 올바르게 이해했다면 +를 반복해서 클릭하여 옵션을 순환 할 수 있을 것입니다 R.

예를 들어:

  • Ctrl+R
  • grep
  • Ctrl+R
  • Ctrl+ R ...

그러면 기록이 거꾸로 검색됩니다. 앞으로 검색하려면 Ctrl+ 를 사용하세요. 하지만 + 를 대신하는 XON/XOFF 기능을 비활성화하려면 S이 작업을 수행하기 전에 (또는 수동 stty -ixon으로 ) 다음을 설정해야 할 수도 있습니다 . 이 경우 +를 사용하여 화면 출력을 다시 활성화하세요(자세한 내용은.bash_profileCtrlSCtrlQ여기.)

답변2

해당 명령이 자주 사용될 것이라고 생각되면 태그를 추가할 수 있습니다.

command #useful

그 다음에

Ctrl+R #useful

이는 #주석 구분 기호이기 때문에 작동합니다. 즉, 기호 뒤에 오는 모든 내용은 명령으로 해석되지 않습니다. 그러나 이력에는 기록되므로 검색이 가능합니다.

답변3

~/.inputrc에 다음 줄을 추가하여 위쪽 및 아래쪽 화살표를 설정하여 약간 다른 검색을 수행할 수도 있습니다.

"\e[A": history-search-backward
"\e[B": history-search-forward

명령의 어느 곳에서나 하위 문자열을 검색하는 대신(예:Ctrl-r) 명령을 검색합니다커서 왼쪽에 있는 텍스트부터 시작. 예를 들어 다음 명령을 실행하면 다음과 같습니다.

$ ls bart
$ ls fools

그런 다음 입력 ls하고 두 번 누르면 커서와 같은 위치에 Up나타납니다 . ls bart비교 Ctrl- 마지막 줄을 두 번 r찾게 되므로 ls이전 줄을 찾으려면 다시 눌러야 합니다.

이러한 각 방법에는 고유한 장점이 있으며 많은 시간을 절약할 수 있습니다.

답변4

다음과 같은 내장 대체 항목이 있습니다 Ctrl + R.하스트. 모든 검색 태그와 일치하는 명령 기록을 동시에 검색하고 화살표 키를 사용하여 결과를 순환할 수 있습니다.

예

이것은데모 스크린샷.

다음과 같은 Debian 시리즈 운영 체제에 설치할 수 있습니다.

add-apt-repository ppa:ultradvorka/ppa
apt-get update
apt-get install hstr

hstr --show-configuration >> ~/.bashrc

Ctrl + R그런 다음 (터미널을 다시 연 후)을 사용하십시오 .

관련 정보