명령 기록에서 명령을 자동 완성하려면 어떻게 해야 합니까?

명령 기록에서 명령을 자동 완성하려면 어떻게 해야 합니까?

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은 기록 파일의 줄 번호) 다시 실행할 수 있습니다.

관련 정보