탭을 통해 특정 명령에 대한 명령줄 기록을 찾아볼 수 있습니까?

탭을 통해 특정 명령에 대한 명령줄 기록을 찾아볼 수 있습니까?

예를 들어, 이전에 ssh 명령에 전달한 모든 매개변수(즉, ssh를 호출할 때 매개변수로 전달한 모든 서버 주소)를 볼 수 있나요?

이는 "history" 명령과 유사하지만 정확히 동일하지는 않습니다.

이 명령 기록을 찾아볼 수 있다면 좋겠지만 너무 많은 것을 요구하는 것 같습니다. 예를 들어, ssh를 입력한 후 Tab 키를 누르면 이전에 실행한 명령을 순환할 수 있습니다.

답변1

정확히 요청하신 내용은 아니지만 기록을 검색하실 수 있습니다.

예를 들어, ^R이후에 를 사용한 다음 ssh계속해서 명령을 반복합니다 ^R.

(이것은 역방향 검색입니다. 정방향 검색은 기본값이지만 ^S불행하게도 ^Q일반적인 터미널의 XOFF(실행 취소 포함)와 충돌하므로 유용하게 사용하려면 다시 매핑해야 할 수도 있습니다.)

답변2

이것은 가능하다. Ctrl-R과 일부 역사적 확장을 살펴보고 싶습니다.

에서 man bash:

reverse-search-history (C-r)
    Search backward starting at the current  line  and  moving 'up'
    through  the  history  as  necessary.   This  is  an incremental
    search.

History expansions introduce words from the history list into the input
stream,  making  it  easy to repeat commands, insert the arguments to a
previous command into the current input line, or fix errors in previous
commands quickly.

역방향 검색 기록에 대한 추가 설명:

Ctrl-R을 누르고 문자열 입력을 시작합니다. 각 키를 누를 때마다 업데이트되는 문자열이 포함된 기록의 마지막 줄을 어디서나 볼 수 있습니다. 새 문자를 입력하지 않고 이전 줄을 보려면 Ctrl-R을 여러 번 누릅니다. Enter 키를 눌러 명령을 수락 및 실행하고, 명령을 왼쪽 및 오른쪽으로 편집하고, 찾은 줄부터 검색 문자열을 제한하지 않고 기록을 위아래로 탐색하고, Ctrl-C를 눌러 검색을 중단합니다.

답변3

이는 또한 유용합니다:

history-search-backward
      Search backward through the history for the string of characters between the start
      of the current line and the point.  This is a non-incremental search.

기본적으로 바인딩되지 않을 수 있지만 hs-forward를 사용하여 페이지 위로/페이지 아래로 바인딩할 수 있습니다. 명령줄의 시작 부분을 작성하고 pgup/pgdown을 누르면 해당 명령줄에서 시작하여 명령줄을 스크롤할 수 있습니다. 한 단계 더 나아가 위쪽/아래쪽 화살표 키에도 바인딩했습니다.

또는 :/etc/inputrc$HOME/.inputrc

# pgup, pgdown, up, down
"\e[5~" history-search-backward
"\e[6~" history-search-forward
"\e[A" history-search-backward
"\e[B" history-search-forward

관련 정보