명령 기록에서 특정 명령을 실행하지 않고 호출하는 방법


13

예를 들어, bash에서는로 !xyz시작하여 입력 한 마지막 명령을 실행할 수 있습니다 xyz.

입력 한 마지막 명령 xyz을 실행하지 않고 어떻게 시작할 수 있습니까?
예를 들어 실행 전에 매개 변수를 변경할 수 있습니다 ....

답변:


20

다음과 같이 수행 할 수 있습니다. 명령 프롬프트에서 Ctrl+ r를 누른 다음 원하는 경우 호출하려는 명령을 입력하십시오 xyz. 명령을 실행하지 않고 완전한 명령을 표시합니다.


1
!Ctrl-r을 여러 번 눌러 일치하는 히스토리로 더 순환 할 수 있으므로 표기법 보다 유용합니다 . 적절한 장소에 도착하면 Enter 키를 사용하지 않고 Ctrl-o를 사용하여 많은 이익을 얻으십시오.
kubanczyk

12

시도하십시오 !xyz:p; 명령을 실행하지 않고 기록을 맨 위까지 불러옵니다. 예를 들어 위쪽 화살표는 대화식 편집을 위해 즉시 명령에 액세스 할 수 있습니다.

여담으로, 내가 성급한 때문에, 생각할 손상 뭔가를 발굴 할 수있는 정규 표현식으로 명령을 리콜 할 때이 일의 연습을 !r, 가장 최근의 기억하도록 rsync ...명령을 뽑아 다시 하고 실행rm * 스택에 푸시했던 그 rsync보다 최근에.


고마워, 좋은 습관이야 나는 rm -rf ./*한동안 그렇게 감사하지 않은 것과 같은 일을했습니다 . 참고로 !xyz:p작업 해 주셔서 감사하지만 ctrl-r 솔루션보다 몇 가지 추가 키 입력이 필요했습니다.
Mtl Dev

@MtlDev 예; ^ R 솔루션은 EMACSey 사람들에게 가장 적합한 반면! -path는 vi나와 같은 olator에 가장 적합 합니다.
MadHatter

1
  1. 다음 명령을 실행하십시오. 마지막으로 실행 된 명령을 에코합니다. 명령을 복사하고 편집 할 수 있습니다. 이 명령은 데비안에서 테스트되었습니다.

    역사 | 꼬리 -2 | grep -v 기록 | 컷 -d ''-f4-

  2. 또는 Ctrl + R을 누른 상태에서 마지막 명령의 시작 문자를 입력하십시오. 입력을 기반으로 이전에 실행 한 명령이 나열됩니다. 원하는 명령이 표시되면 오른쪽 화살표를 눌러 해당 명령을 선택하십시오.


1
첫 번째 명령은 너무 부드럽습니다! 나는 모든 ^ __ ^
Grajdeanu Alex를

1

역 히스토리 검색에 실패한 경우 다음 중 하나를 수행하십시오.

$ history | grep WHAT_YOU_LOOK_FOR

또는:

$ grep WHAT_YOU_LOOK_FOR ~/.bash_history
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.