[중복] 이전에 명령을 저장하고 이후에 복원하려면 ctrl+c를 누르세요.

[중복] 이전에 명령을 저장하고 이후에 복원하려면 ctrl+c를 누르세요.

때로는 명령 프롬프트에 긴 명령을 입력한 다음 실제로 Enter 키를 누르고 명령을 실행하기 전에 확인해야 할 사항이 있다는 것을 알게 됩니다. 를 누르고 ctrl+c새 명령을 실행한 다음 취소된 명령을 다시 입력하고 실행합니다.

취소하고 싶은 명령을 "저장" ctrl+c하고 "뭔가 확인" 명령을 완료한 후 다시 시작하는 방법이 있나요?

SSH를 통해 원격 서버에 있기 때문에 다른 터미널을 열고 싶지 않습니다.

대포 사격:

$ git commit -am 'FOO-123: fix issue with dorks around bars'^C
$ git status
# On branch foo
modified: foo.php
$ git commit -am 'FOO-123: fix issue with dorks around bars'
1 file changed, 46 deletions(-)
$ 

답변1

Unix에서는 명령줄 편집기를 사용하여 이와 같은 작업을 수행할 수 있습니다. 나는 일반적으로 set -o emacs명령줄에서 다음 Emacs 키를 직접 사용할 수 있도록 다음 명령을 실행합니다 .

  1. 명령줄을 보여주세요
  2. Ctrl-A- 명령줄의 시작 부분으로 이동
  3. Ctrl-K- 전체 명령줄을 내부 버퍼로 잘라냅니다.
  4. ...여기서 필요한 모든 작업을 수행하세요...
  5. Ctrl-Y- 버퍼의 명령을 명령줄에 붙여넣기

set -o vi단축키를 사용하여 vi이 작업을 수행 할 수도 있습니다 .

답변2

내가 항상 하는 일은 #명령 앞에 주석 표시를 넣는 것입니다. 나중에 기록에서 이를 기억하고 주석 표시를 제거한 다음 명령을 실행할 수 있습니다.

답변3

ctrl-c를 누르는 대신 줄의 시작 부분으로 이동하고 다음을 수행합니다.

$ history -s "git commit -am 'FOO-123: fix issue with dorks around bars'"

Enter 키를 누릅니다. 실행되지는 않지만 이제 기록의 마지막 줄입니다. 이것이 bash에만 해당되는지 확실하지 않습니다.

답변4

Goldilocks의 제안과 유사하게 줄의 시작 부분으로 이동하고(Emacs 동작은 Ctrl-A입니다) 앞에 "#"을 추가합니다. 이렇게 하면 명령을 실행하는 대신 주석으로 변환됩니다. 명령을 호출하는 데 사용하는 모든 트릭(예: Ctrl-R 또는 기록)을 사용하여 명령을 호출할 수 있으며, 그런 다음 시작 부분으로 이동하여 #을 제거할 수 있습니다.

관련 정보