명령 기록에서 명령을 자동 완성하는 방법은 무엇입니까? [복사]

명령 기록에서 명령을 자동 완성하는 방법은 무엇입니까? [복사]

bash에 기록 명령을 놓고 자동으로 경쟁하는 키 조합이 있습니까? 예를 들어, ipython 및 matlab에서는 몇 개의 문자를 입력한 후 위쪽 화살표를 눌러 이를 수행합니다.

답변1

첫째, tabbash를 클릭하는 것이 기록에 있든 없든 PATH의 모든 실행 파일을 자동 완성하므로 더 좋습니다. 즉, 기록에서 명령을 가져오는 방법에는 여러 가지가 있습니다.

  1. 해당 번호를 사용하세요. 원하는 명령이 3개 전 명령이라는 것을 알고 있다면 다음을 실행할 수 있습니다.

     !-3
    

그러면 이전에 실행한 세 가지 명령이 다시 실행됩니다.

  1. 검색해 보세요. Ctrlr텍스트를 입력 하고 입력을 시작하세요. 텍스트와 일치하는 역사상 첫 번째 명령이 표시되고 클릭하면 enter실행됩니다.

  2. (위쪽 화살표)를 누르세요 . 그러면 마지막 명령이 표시되고 다시 누르면 명령 기록이 입력됩니다. 원하는 것을 찾으면 을 클릭하십시오 enter.

  3. 파일에 다음 줄을 추가합니다 ~/.inputrc(파일이 없으면 생성).

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

파일을 즉시 로드하려면 다음을 실행합니다 bind -f ~/.inputrc(원천). 이제 이전에 실행한 명령 중 하나의 처음 몇 자를 입력하고 을 클릭합니다 . 이 문자로 시작하는 역사상 첫 번째 명령이 표시됩니다. 나머지 내용을 보려면 다시 클릭하고 , enter원하는 내용을 찾으면 클릭하세요.

  1. history명령을 사용하십시오 . @Isaac이 설명했듯이 이는 기록 파일에 저장된 모든 명령을 나열합니다.

답변2

명령을 사용하여 기록 시퀀스에서 명령 위치를 확인할 수 있습니다 history. 그런 다음 실행될 수 있습니다 !<number_in_the_sequence>. 이게 도움이 되길 바란다.

답변3

history특정 명령의 출력을 사용하고 파이프 할 수도 있습니다 .

예를 들어, cd하루 종일 파일 시스템에서 작업하는 경우 어떤 디렉터리가 처리되고 있는지 알려주세요.

history | grep cd

그런 다음 명령을 복사하여 붙여넣거나 !n(n은 기록 파일의 줄 번호) 다시 실행할 수 있습니다.

관련 정보