기록을 보는 것 외에 내 기록을 필터링하는 방법이 있습니까?
“ssh”로 시작한 명령을 검색하려고한다고 가정합니까?
답변
를 눌러 Ctrl+ R입력 ssh
. Ctrl+ R는 가장 최근의 명령에서 이전 명령으로 검색을 시작합니다 (역 검색). 로 시작하는 명령이 두 개 이상인 경우 일치하는 항목을 찾을 때까지 +를 반복해서 ssh
누릅니다 .CtrlR
일치하는 것을 찾았 Enter으면를 눌러 명령을 실행하거나 왼쪽 / 오른쪽 커서를 눌러 명령 텍스트를 선택할 수 있습니다.
검색 방향을 반전시키는 Ctrl+의 기본 반전 옵션은 R없지만 여기 에 대한 제안 사항이 있습니다.
답변
당신은 당신의 역사를 검색하려는 경우, 당신은 history | grep ssh
당신이 검색하고자하는 무엇이든 대신 ssh를 대신 사용할 수 있습니다 .
답변
나는 위의 약간의 변형을하고 나를 위해 잘 작동합니다 (당신이 당신의 배쉬 기록을 참조하는 경우)
내 홈 폴더에 이름이 지정된 파일을 만듭니다.
.inputrc
안쪽이 간다
"\e[5~": history-search-backward
"\e[6~": history-search-forward
참고 : 14.04에서는 위의 내용이 더 이상 작동하지 않는 것 같습니다.
"\e[A":history-search-backward
"\e[B":history-search-forward
그런 다음 원하는 이전 명령을 많이 입력하고 page up / page dn 버튼을 사용하면 항상 page up으로 시작하여 기록을 검색합니다.
답변
Ctrl+ R를 누르면 “reverse-i-search”모드가 시작되고 “ssh”를 입력하면 “ssh”가 포함 된 명령에 대한 기록을 검색합니다.
답변
다음은 고전적인 명령을 사용하는 다른 방법입니다 (더 많은 배포판에서 작동 할 가능성이 높음). 명령 기록은 .bash_history
홈 디렉토리 의 파일 에 저장 되므로 다음을 수행 할 수 있습니다.
grep "ssh" ~/.bash_history
-i
대소 문자를 구분하지 않는 검색이 필요한 경우 플래그를 잊지 마십시오 .
답변
인터넷 어딘가에 다음 기능을 발견하여 큰 효과를 발휘했습니다. 이것을 당신의 것으로 넣으십시오 ~/.bashrc
:
hgrep () {
history | egrep --color=auto --recursive "$@" | egrep --color=auto --recursive -v "hgrep $@"
}
이제 쉘을 다시로드하십시오 : exec bash
. 이제 다음과 같이 사용할 수있는 새로운 명령이 있습니다.
hgrep ssh
기록에서 일치하는 명령 목록이 표시됩니다. 명령을 실행하려면 !
명령 번호를 입력하십시오. 예를 들면 다음과 같습니다.
~:$ hgrep scp
207 tn scp foreign-teachers __HOST__:unity.log __HOST__:compiz.log .
421 tn scp scott-laptop __HOST__:Scott\ Severance.asc .
422 tn scp scott-laptop __HOST__:'Scott\ Severance.asc' .
468 tn scott-desktop scp -r Backgrounds/* __HOST__:Pictures/Backgrounds
469 tn scott-laptop scp -r Backgrounds/* __HOST__:Pictures/Backgrounds
470 scp -r Backgrounds/* 192.168.1.2:Pictures/Backgrounds
~:$ !207
훨씬 유연한 검색이 가능하고 한 번에 여러 개의 결과를 볼 수 있기 때문에이 방법은 Ctrl+ 보다 낫습니다 R.