Linux에서 특정 문자로 시작하는 기록 명령을 다시 로드하는 가장 빠른 방법은 무엇입니까?

Linux에서 특정 문자로 시작하는 기록 명령을 다시 로드하는 가장 빠른 방법은 무엇입니까?

Dos에서는 처음 몇 문자를 입력하여 명령 기록을 필터링하고 적절한 문자를 빠르게 찾을 수 있습니다. 하지만 Linux에서 동일한 작업을 수행하는 방법은 무엇입니까?

예를 들어 로컬 서버를 테스트할 때:

cd 
sudo /etc/init.d/vsftpd start
wget ...
ls
emacs ...
sudo /etc/init.d/vsftpd restart
sudo /etc/init.d/vsftpd stop
...

sudoDos에서는 화살표 키를 사용하여 이 명령으로 시작하는 세 가지 명령을 쉽게 입력하고 전환할 수 있습니다 . 하지만 Linux에서는 아래 명령이 우리가 할 수 있는 최선의 명령입니까?

historty | grep sudo

나는 그것을 좋아하지 않습니다. 역사가 쉽게 엉망이 될 수 있고 마우스 동작도 필요하기 때문입니다.

답변1

다음을 입력하세요 ~/.inputrc.

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

그런 다음 를 입력한 후 는 sudoUp시작하는 명령을 검색합니다 sudo.

(bash를 다시 시작해야 합니다.) (csh에서 작동하는지 확실하지 않습니다.)

답변2

Bash(및 이와 유사한 대부분의 readline 기반 응용 프로그램)에서는 키를 눌러 Ctrl-R기록 검색 기능을 불러올 수 있습니다.

$ date
Tue Feb  1 15:40:06 EET 2011
(reverse-i-search)`d': date

여기를 누르면 Enter다음을 얻을 수 있습니다.

$ date
Tue Feb  1 15:40:06 EET 2011
$ date
Tue Feb  1 15:40:52 EET 2011

편집하다:

기록 관련 Bash 키 입력의 전체 목록을 볼 수 있습니다.여기.

현재 기록 검색 키보드 바인딩 목록을 볼 수 있습니다.

$ bind -P | grep search | grep history
forward-search-history can be found on "\C-s".
history-search-backward can be found on "\e[5~".
history-search-forward can be found on "\e[6~".
non-incremental-forward-search-history can be found on "\en".
non-incremental-forward-search-history-again is not bound to any keys
non-incremental-reverse-search-history can be found on "\ep".
non-incremental-reverse-search-history-again is not bound to any keys
reverse-search-history can be found on "\C-r".

내 경우에는 Page-Up/Down을 사용하여 my에 구성된 대로 이미 입력한 내용으로 시작하는 명령을 검색할 수도 있습니다 /etc/inputrc.

# Page Up/Down cycles through history only for matching entries
"\e[5~": history-search-backward       # Previous
"\e[6~": history-search-forward        # Next

답변3

Ctrl+ 외에도 bash에 +를 R입력하면 다음이 실행됩니다.!sudoEnter마지막로 시작하는 명령 sudo.

답변4

와 같은 첫 글자를 입력한 후 또는 를 sudo누르세요 .Ctrl

관련 정보