검색했지만 이에 대해서는 아무것도 찾지 못했습니다. 터미널을 사용하여 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
.
로 시작하는 줄 #
은 주석입니다.
무엇이 뒤인지 무엇이 앞인지 기억이 나지 않습니다. 그것을 실험해 보세요. 어쩌면 앞뒤로 전환해야 할 수도 있습니다.
새로운 동작을 적용하려면 모든 터미널을 닫았다가 다시 엽니다.
약간의 배경 정보:
배쉬가 사용 중입니다읽어보기프롬프트를 처리합니다. ~/.inputrc
readline의 구성 파일입니다. 이는 readline 라이브러리를 사용하는 다른 소프트웨어에도 적용됩니다. 예를 들어IPython.
읽기배쉬 매뉴얼readline에 대한 자세한 내용은 거기에서 더 많은 정보를 찾을 수도 있습니다.기록 관련 readline 명령.
화살표 키에 대한 이스케이프 코드를 얻으려면 다음을 수행할 수 있습니다.
cat
터미널에서 시작합니다 (cat
추가 인수 없음).^[[A
키보드에서 키를 입력하면 위쪽 화살표 및^[[B
아래쪽 화살표 와 같은 정보가 표시됩니다 .^[
로 교체하세요\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
~/.inputrc
Trusty 14.04에서 생성해야 하는 것에 대한 lesmana의 답변을 완성하려면 확인/추가하세요 ~/.bashrc
(첫 번째 줄은 이미 my 에 있습니다 ~/.bashrc
).
shopt -s histappend
PROMPT_COMMAND='history -a'
이미 프랑스어로 설명되어 있어요여기.