Dos에서는 처음 몇 문자를 입력하여 명령 기록을 필터링하고 적절한 문자를 빠르게 찾을 수 있습니다. 하지만 Linux에서 동일한 작업을 수행하는 방법은 무엇입니까?
예를 들어 로컬 서버를 테스트할 때:
cd
sudo /etc/init.d/vsftpd start
wget ...
ls
emacs ...
sudo /etc/init.d/vsftpd restart
sudo /etc/init.d/vsftpd stop
...
sudo
Dos에서는 화살표 키를 사용하여 이 명령으로 시작하는 세 가지 명령을 쉽게 입력하고 전환할 수 있습니다 . 하지만 Linux에서는 아래 명령이 우리가 할 수 있는 최선의 명령입니까?
historty | grep sudo
나는 그것을 좋아하지 않습니다. 역사가 쉽게 엉망이 될 수 있고 마우스 동작도 필요하기 때문입니다.
답변1
다음을 입력하세요 ~/.inputrc
.
"\e[A": history-search-backward
"\e[B": history-search-forward
그런 다음 를 입력한 후 는 sudo
로 Up시작하는 명령을 검색합니다 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입력하면 다음이 실행됩니다.!sudo
Enter마지막로 시작하는 명령 sudo
.
답변4
와 같은 첫 글자를 입력한 후 또는 를 sudo
누르세요 .Ctrl↑↓