이전에 사용한 명령에 대한 명령 줄 기록을 어떻게 검색합니까? 기록을 필터링하는 방법이 있습니까? “ssh”로 시작한

기록을 보는 것 외에 내 기록을 필터링하는 방법이 있습니까?

“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.


답변

이것을 당신의 것으로 넣으십시오 ~/.bashrc:

별칭 hgrep = ‘연혁 | grep –color = auto ‘

예: