이전의 모든 명령이 아닌 동일한 초기 문자를 사용하여 명령을 탐색하도록 위쪽 화살표를 구성하십시오.


15

bash명령 줄, 나에게 이전 명령을 제공합니다. numpy또는 의 명령 줄에서 matlab몇 문자를 입력하면 해당 문자로 시작하는 이전에 입력 한 명령이 표시 됩니다. 에서이 동작을 정확히 활성화하려면 어떻게 bash해야합니까?

명령 줄 기록을 검색하는 고급 방법을 알고 있지만 때로는 간단한 방법이 더 편리합니다.

답변:


18

찾고있는 readline 명령은 다음 history-search-*명령입니다.

history-search-forward
현재 행의 시작과 현재 커서 위치 (포인트) 사이의 문자열에 대한 히스토리를 탐색합니다. 이것은 비 증분 검색입니다.
history-search-backward
현재 행의 시작과 지점 사이의 문자열을 기록에서 뒤로 검색합니다. 이것은 비 증분 검색입니다.

다음과 같이에 바인딩하십시오 .inputrc.

"\e[A": history-search-backward            # arrow up
"\e[B": history-search-forward             # arrow down

명령의 첫 문자를 입력 한 다음 UpDown키를 사용하여 .bash_history해당 문자열로 시작 하는 명령 만 이동할 수 있습니다 .

예를 들어 및를 입력하면 vi과 같이 Up시작하는 첫 번째 이전 명령으로 이동 합니다. 입력 하면 다음 이전 인스턴스로 이동합니다.vivim somefileUp

모든 readline 바인딩에 대한 자세한 내용은 여기를 참조 하십시오. http://linux.about.com/library/cmd/blcmdl3_readline.htm


10

~ /의 .inputrc에 다음을 추가하여 제안한 작업을 수행하십시오.

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

아마도 .bash_profile에 다음을 추가하고 싶을 수도 있습니다.

export INPUTRC=~/.inputrc

이 "내보내기"를 수행하는 이유를 자세히 설명 할 수 있습니까?
texnic

2

앞에 "!" 당신이 찾고있는 명령에. 위쪽 및 아래쪽 화살표의 기능을 바꾸려면 inputrc 파일을 수정하는 것이 좋습니다.

"command"가 검색중인 명령 인 경우 다음을 입력하십시오.

!comm

출력으로 "command"를 가져와야합니다.

마찬가지로 명령의 일부를 포함하지만 시작하지는 않는 명령을 찾으려면 ctrl + r을 누른 다음 명령의 일부를 입력하십시오.

"탭"을 입력하여 입력 한 텍스트를 자동 완성 할 수도 있습니다 (파일 포함). 히스토리에없는 명령을 찾거나 히스토리 파일이없는 경우에 유용합니다.

히스토리 파일 "마스터 링"에 대한 자세한 내용은 여기를 참조 하십시오. http://www.thegeekstuff.com/2008/08/15-examples-to-master-linux-command-line-history/

이것은 /programming/1030182/how-do-i-change-bash-history-completion-to-complete-whats-already-on-the-line 의 가능한 복제본입니다.


다른 답변은 내 질문에 더 정확하게 대답하지만 SO에 대한 포인터에 감사드립니다 ( meta.stackexchange.com/q/4708/172266 참조 ).
gerrit
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.