Bash 기록 검색, 부분 + 위쪽 화살표

Bash 기록 검색, 부분 + 위쪽 화살표

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

예전에 데비안 시스템을 사용하는 사용자가 있었고 친구가 편리한 기록 검색 기능을 설정해 주었습니다(당시에는 tcsh를 사용한 것 같습니다). 여기서 이전 명령의 시작 부분을 입력하고 위쪽 화살표를 누르면 됩니다. 부분 문자열을 기반으로 검색을 수행합니다.

예를 들어 내 기록이 다음과 같은 경우:

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

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

grep.bash_history에서 수행하는 것과 매우 유사합니다 . 이 기능을 얻을 수 있는 방법이 있나요?

답변1

다음 줄을 만들고 ~/.inputrc추가합니다.

# Respect default shortcuts.
$include /etc/inputrc

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

팁:$include /etc/inputrc에 대한 설명 이나 파일이 이미 있는 경우 수행할 작업에 대해서는 하단을 읽어보세요 ~/.inputrc.

로 시작하는 줄 #은 주석입니다.

무엇이 뒤인지 무엇이 앞인지 기억이 나지 않습니다. 그것을 실험해 보세요. 어쩌면 앞뒤로 전환해야 할 수도 있습니다.

새로운 동작을 적용하려면 모든 터미널을 닫았다가 다시 엽니다.


약간의 배경 정보:

배쉬가 사용 중입니다읽어보기프롬프트를 처리합니다. ~/.inputrcreadline의 구성 파일입니다. 이는 readline 라이브러리를 사용하는 다른 소프트웨어에도 적용됩니다. 예를 들어IPython.

읽기배쉬 매뉴얼readline에 대한 자세한 내용은 거기에서 더 많은 정보를 찾을 수도 있습니다.기록 관련 readline 명령.

화살표 키에 대한 이스케이프 코드를 얻으려면 다음을 수행할 수 있습니다.

  1. cat터미널에서 시작합니다 ( cat추가 인수 없음).
  2. ^[[A키보드에서 키를 입력하면 위쪽 화살표 및 ^[[B아래쪽 화살표 와 같은 정보가 표시됩니다 .
  3. ^[로 교체하세요 \e.

자세한 내용은 여기를 참조 ^[하세요 \e.https://unix.stackexchange.com/a/89817/380515


라인 정보 $include /etc/inputrc:

Readline은 구성을 읽으려고 시도합니다 ~/.inputrc. 해당 파일이 없으면 읽기를 시도합니다 /etc/inputrc. 즉, ~/.inputrc존재하는 경우 읽지 않음을 의미합니다 /etc/inputrc.

일부 배포판은 /etc/inputrc. 그런 다음 생성하면 ~/.inputrc준비된 구성이 손실됩니다. 이것은 당신이 원하는 것일 수도 있고 아닐 수도 있습니다. 준비된 구성을 계속 /etc/inputrc유지 $include /etc/inputrc하려면 ~/.inputrc.

파일이 이미 있다면, ~/.inputrc이미 무엇을 하고 있는지 알고 있다는 의미입니다. 또는 시스템을 설정한 사람으로부터 상속받은 경우입니다. 또는 이전에 파일을 생성하라는 다른 가이드를 따랐으나 이를 잊어버렸습니다. 어느 쪽이든 /etc/inputrc라인을 유지하고 싶은지 확인하고 결정하는 것이 좋습니다 $include /etc/inputrc.

답변2

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

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

나는 이것을하는 가장 좋은 방법이라고 생각합니다. 주로 Chef, Puppet 등과 같은 구성 관리 시스템을 사용하는 경우

그리고 시스템 구성은 아직 그대로 유지되었습니다!

답변3

Ctrl + R이런 종류의 기능을 제공합니다. 부분 명령을 입력하기 시작하면 위쪽 및 아래쪽 화살표를 사용하여 탐색할 수 있는 이전 명령이 표시됩니다.

더 많은 정보여기.

답변4

~/.inputrcTrusty 14.04에서 생성해야 하는 것에 대한 lesmana의 답변을 완성하려면 확인/추가하세요 ~/.bashrc(첫 번째 줄은 이미 my 에 있습니다 ~/.bashrc).

shopt -s histappend  
PROMPT_COMMAND='history -a'  

이미 프랑스어로 설명되어 있어요여기.

관련 정보