FreeBSD의 세계에서 오는 나는 기본적으로 입력 할 때 FreeBSD의 일, 특히 9.1 버전처럼 리눅스 터미널없이 행동을하고자하는 cd
터미널에서 그리고는 "업"당신이 역사를 시작하는 모든 명령을 찾아 볼 수 있습니다 화살표와 함께 추진 cd
하는 당신을한다 많은 시간을 얻습니다.
Linux Debian 또는 CentOS 에서이 기능을 활성화하여 전체를 입력하도록 강요하는 방법을 모르겠습니다. 누군가 도와주세요.
FreeBSD의 세계에서 오는 나는 기본적으로 입력 할 때 FreeBSD의 일, 특히 9.1 버전처럼 리눅스 터미널없이 행동을하고자하는 cd
터미널에서 그리고는 "업"당신이 역사를 시작하는 모든 명령을 찾아 볼 수 있습니다 화살표와 함께 추진 cd
하는 당신을한다 많은 시간을 얻습니다.
Linux Debian 또는 CentOS 에서이 기능을 활성화하여 전체를 입력하도록 강요하는 방법을 모르겠습니다. 누군가 도와주세요.
답변:
다음에 추가하십시오 ~/.inputrc
.
# Press up-arrow for previous matching command
"\e[A":history-search-backward
# Press down-arrow for next matching command
"\e[B":history-search-forward
설명
~/.inputrc
GNU readline 의 구성 파일입니다 . 를 포함한 많은 껍질 bash
과 tcsh
명령 행 편집을위한 사용의 readline. 위의 두 줄은 위쪽 화살표 키 ( \e[A
) 및 아래쪽 화살표 키 ( ) 의 이스케이프 시퀀스가 발견 될 때 readline에 히스토리 검색 기능을 호출하도록 지시 \e[B
합니다.
현재 FreeBSD와 Linux는 기본적으로 다른 쉘을 사용합니다. FreeBSD의 기본값은 tcsh로 , 과거에는 bash보다 대화식 기능이 뛰어 났지만 (bash는 따라 잡았지만) 스크립팅 기능은 현저히 떨어 졌습니다.
익숙한 환경을 얻는 가장 간단한 방법은 Linux에서 쉘을 tcsh로 전환하는 것입니다. tcsh가 시스템 전체에 설치되어 있으면 (시스템 관리자가 설치하지 않은 경우 설치하도록 요청) chsh -s tcsh
기본 쉘을 변경하십시오.
또는이 명령을 사용하도록 bash를 설정할 수 있습니다. 기본적으로 Up및 Down화살표는 입력 한 접두사로 시작하는 명령뿐만 아니라 기록의 모든 명령을 탐색합니다. 이것을 익숙한 동작으로 변경하려면 .bashrc
홈 디렉토리에 있는 bash의 초기화 파일에 다음 행을 넣으십시오 . . ~/.bashrc
초기화 파일을 다시 읽으려면 새 쉘을 실행 하거나 시작하십시오.
bind '"\eOA": history-search-backward'
bind '"\e[A": history-search-backward'
bind '"\eOB": history-search-forward'
bind '"\e[B": history-search-forward'
이스케이프 시퀀스는 화살표 키를 누를 때 터미널이 쉘로 보내는 것입니다. Up할 수있다 \eOA
(탈출, O
, A
) 또는 \e[A
터미널에 따라, 유사에 Down.
기본적으로 bash는 명령 기록을 검색하기 위해 다른 키 바인딩을 제공합니다. Ctrl+ R를 누른 다음 일부 문자를 입력하여 행의 아무 곳이나이 하위 문자열을 포함하는 명령을 검색 할 수 있습니다 . 뒤로가 아니라 앞으로 가려면 Ctrl+ S를 누릅니다 . 검색은 증 분식입니다 (예 : 유형별). Alt+ P와 Alt+ N는 비 증분 검색을 제공합니다.
bash 및 tcsh 대신 zsh로 전환하면 다른 쉘에는없는 깔끔한 기능이 있습니다 . Zsh는 기본적으로 bash와 마찬가지로 Ctrl+ R와
Ctrl+ S를 갖습니다 . tcsh에서 Up와 Down같이 하고 얻으려면 다음 줄을 넣으십시오 ~/.zshrc
.
bindkey '\eOA' history-beginning-search-backward
bindkey '\e[A' history-beginning-search-backward
bindkey '\eOB' history-beginning-search-forward
bindkey '\e[B' history-beginning-search-forward
모든 곳에서 동일한 쉘을 사용하려면 포트가 설치되어있는 경우 FreeBSD에서도 bash 또는 zsh를 사용할 수 있습니다 (시스템 관리자에게 문의하십시오).
tcsh
대부분의 Linux 배포판에서 사용할 수 있습니다. tcsh
패키지를 설치 한 다음 실행 chsh -s /bin/tcsh
하여 기본 쉘로 만드십시오.
다른 답변으로 해결할 수 있지만 더 많은 정보가 필요하면 https://github.com/zsh-users/zsh-history-substring-search 를 참조하십시오.
Prezto ( https://github.com/sorin-ionescu/prezto )도 zsh 제품으로 가득합니다.