배쉬 히스토리 검색, 부분 + 위쪽 화살표 아무것도 찾지 못했습니다. 터미널을 사용하여

나는 검색했지만 이것에 대해 아무것도 찾지 못했습니다. 터미널을 사용하여 bash의 기능을 찾고 있습니다.

되돌아 가면 데비안 시스템에 사용자가 있었고 친구가 편리한 기록 검색 기능 (나가 tcsh를 사용했다고 생각합니다)으로 설정했습니다. 이전 명령의 시작 부분을 입력하고 위쪽 화살표를 누르십시오. 부분 문자열을 기반으로 검색을 수행합니다.

예를 들어 내 역사가 :

./script.pl
./script.pl arg1
cat output
cat output | grep yada

그리고을 입력 .하고 위쪽 화살표를 누르면 다음과 같이 표시 ./script.pl arg1됩니다. 다시 누르면 ./script.pl등 이 표시됩니다 .

grep.bash_history에서 수행하는 것과 매우 유사합니다 . 이 기능을 사용할 수있는 방법이 있습니까?



답변

에 다음 줄을 넣으십시오 ~/.inputrc.

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

로 시작하는 줄 #은 주석입니다. 나는 무엇을 뒤로하고 앞으로 무엇을 기억하지 못합니다. 그것으로 실험하십시오. 어쩌면 앞뒤로 전환해야 할 수도 있습니다.


약간의 배경 정보 :

Bash는 readline 을 사용하여 프롬프트를 처리하고 있습니다. ~/.inputrcreadline의 구성 파일입니다. 이것은 readline 라이브러리를 사용하는 다른 소프트웨어 (예 : IPython)에서도 적용 됩니다.

readline에 대한 자세한 정보 는 bash 매뉴얼 을 읽으십시오 . 또한 더 많은 히스토리 관련 readline 명령을 찾을 수 있습니다 .

화살표 키의 이스케이프 코드를 얻으려면 다음을 수행하십시오.

  1. cat터미널에서 시작하십시오 ( cat추가 인수는 없습니다).
  2. 키보드의 키를 입력하면 ^[[A위쪽 화살표 및 ^[[B아래쪽 화살표 와 같은 것들이 나타 납니다 .
  3. 교체 ^[와 함께 \e.

답변

다음 내용으로 /etc/profile.d/에 모드 644로 setup_readline.sh라는 파일을 작성하고 로그인 한 후 원하는 키를 확인하십시오.

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

나는 이것을하는 가장 좋은 방법이라고 생각합니다. 대부분 요리사, 꼭두각시 등의 구성 관리 시스템을 사용하는 경우

그리고 시스템 설정은 여전히 ​​그대로입니다!


답변

Ctrl + R은 이런 종류의 기능을 제공합니다. 부분 명령을 입력하기 시작하면 위와 아래 화살표로 탐색 할 수있는 이전 명령이 나타납니다. 추가 정보 : http://www.nuxified.org/blog/ctrl_r_in_the_bash_shell


답변

Trusty 14.04에서 작성해야하는 “~ / .inputrc”에 대한 lesmana의 답변을 완료하려면 “~ / .bashrc”를 확인 / 추가하십시오 (첫 번째 줄은 이미 “~ / .bashrc”에 있음).

shopt -s histappend
PROMPT_COMMAND='history -a'  

https://doc.ubuntu-fr.org/terminal?&#pour_completer_les_commandes_a_partir_de_l_historique 에서 프랑스어로 이미 설명되어 있습니다 .


답변

아마도 https://github.com/dvorka/hstr 을 사용하여 메트릭을 기반으로 (빈도, 명령의 빈도 및 길이가 중요한) Bash 기록을 간단하고 여러 줄로 간단하게 필터링 할 수 있습니다. 히스토리를 쉽게 탐색 할 수있는 화살표 키 :

그것은 쉽게 할 수 바인딩Ctrl-r및 / 또는Ctrl-s


답변

다음 솔루션은 위에서 언급 한 접근 방식 중 일부를 결합하고 확장 합니다. 다음 동작을 수행하려면 ~/.bash_aliases파일에 다음 줄을 추가 하십시오 (필요 없음 ~/.inputrc).

  1. CTRL + UP 및 CTRL + DOWN을 눌러 기록에서 위 / 아래로 이동합니다 (접두사가 동일한 항목 만). 이것은 UP과 DOWN만으로 전체 히스토리에서 위 / 아래로 이동하는 표준 기능과 공존 할 수 있습니다.
  2. Ctrl + 오른쪽 및 Ctrl + 왼쪽을 눌러 명령 줄에서 다음 / 이전 단어로 이동
bind '"\e[1;5A":history-search-backward'
bind '"\e[1;5B":history-search-forward'
bind '"\e[1;5C":forward-word'
bind '"\e[1;5D":backward-word'

source ./bash_aliases변경 사항을 적용하려면 셸에 다시 로그인하십시오 (또는 run ).