터미널에서 현재 줄을 지우거나 삭제하려면 어떻게합니까?


795

터미널을 사용하고 명령 줄 텍스트를 입력하는 경우 해당 줄을 지우거나 삭제할 수있는 단축키 또는 방법이 있습니까?

예를 들어, 현재 행 / 명령이 실제로 다음과 같은 경우 :

> git log --graph --all --blah..uh oh i want to cancel and clear this line <cursor is here now>

위로부터 다음으로 이동하는 단축키 또는 명령이 있습니까?

>

?

일반적으로 나는 키를 누르고, 현재 라인이 역사상 가장 새로운 라인이라면, 그것을 지울 것입니다. 그러나 키 를 통해 명령 기록을 검토하고 해당 명령을 편집하거나 사용하기 시작 하면 기록 에서 다음 최신 명령으로 프롬프트가 변경되므로 여러 번 누르지 않으면 여기에서 작동하지 않습니다 .




답변:


1492

Ctrl+ U를 사용 하여 시작 부분을 지울 수 있습니다 .

Ctrl+ W를 사용 하여 단어 만 삭제할 수 있습니다 .

Ctrl+ C를 사용 하여 취소 할 수도 있습니다 .

기록을 유지하려면 Alt+ Shift+ #를 사용하여 주석으로 만들 수 있습니다 .


Bash Emacs 편집 모드 치트 시트


231
Ctrl-U에 의해 삭제 된 행도 Ctrl-Y를 사용하여 호출 할 수 있습니다.
keks

65
응? 감사합니다 keks & kev, ⌃ + U는 커서 전에 모두 삭제, ⌃ + K는 커서 뒤에 모두 삭제, ⌃ + A는 줄의 시작 부분으로 이동합니다. 따라서 기술적으로 ⌃ + C는이 질문에 대한 최상의 솔루션입니다
Binarian

3
Alt-Shift- #이 작동하지 않습니까? 다른 사람들은 그렇게 생각했습니다. Alt-Shift- #은 터미널에> 문자를 인쇄합니다.
tgkprog

49
나에게 <kbd>...</kbd>키를 표시하도록 태그를 가르치는 것에 찬성했습니다 .
Samveen

11
@ LưuVĩnhPhúc ESC은 bash의 자체 수정 자 키입니다. 그것은 역사 탐색 (취소 등의 일을 위해 사용되는 CTRL+을 r), 또는 커서 (뒤에 마지막 두 단어를 교환 ESC+ t).
noobish

578

모든 답변을 요약하면 다음과 같습니다.

  • 선 정리 : Ctrl+ U를 사용 하여 시작 부분을 정리할 수 있습니다 .
  • 줄 을 정리하십시오 : Ctrl+ E Ctrl+ U터미널에서 현재 줄을 닦아
  • 줄 을 정리하십시오 : Ctrl+ A Ctrl+ K터미널에서 현재 줄을 닦아
  • 현재 명령 / 줄을 취소하십시오 : Ctrl+ C.
  • 삭제 된 명령을 다시 호출하십시오. Ctrl+ Y(then Alt+ Y)
  • 줄의 시작으로 이동 : Ctrl+A
  • 줄 끝으로 이동 : Ctrl+E
  • 명령의 중간에있는 경우 예를 들어 앞으로 단어를 제거하십시오. Ctrl+K
  • 단어가 시작될 때까지 왼쪽의 문자를 제거하십시오. Ctrl+W
  • 전체 명령 프롬프트를 지우려면 Ctrl+L
  • 라인 시작과 현재 커서 위치 사이를 전환합니다. Ctrl+XX

6
ctrl-k는 커서와 줄 끝 사이의 모든 것을 삭제합니다.
피터 버그

6
다음 단어를 제거하십시오 :Alt + D
cnlevy

1
Alt+ D :( 나는 그것을 포함하지 않은 이유는 그게 작동하지 않습니다
J4cK

1
CTRL + L화면을 지우지 만 현재 명령 행에 입력 된 내용은 유지합니다.
Aziraphale

1
Ctrl + Alt + >입력 기록의 끝으로 이동하여 기록 검색을 취소하려는 경우에 적합합니다.
astasiak

165

완전한 바로 가기 목록이 있습니다.

  1. Ctrl+ a 커서를 줄의 시작으로 이동
  2. Ctrl+ e 커서를 줄의 끝으로 이동
  3. Ctrl+ b 한 문자 뒤로 이동
  4. Alt+ b 한 단어 뒤로 이동
  5. Ctrl+ f 한 문자 앞으로 이동
  6. Alt+ f 한 단어 앞으로 이동
  7. Ctrl+ d 현재 캐릭터 삭제
  8. Ctrl+ w 마지막 단어를 잘라
  9. Ctrl+ k 커서 다음에 모든 것을 자릅니다
  10. Alt+ d 커서 다음에 단어 잘라 내기
  11. Alt+ w 커서 앞의 단어 잘라 내기
  12. Ctrl+ y 마지막으로 삭제 한 명령 붙여 넣기
  13. Ctrl+ _ 실행 취소
  14. Ctrl+ u 커서 전에 모든 것을 잘라
  15. Ctrl+ xx첫 번째 위치와 현재 위치 간 전환
  16. Ctrl+ l 터미널 지우기
  17. Ctrl+ c 명령 취소
  18. Ctrl+ r 기록의 검색 명령-검색어를 입력하십시오.
  19. Ctrl+ j 현재 기록 항목에서 검색을 종료
  20. Ctrl+ g 검색 취소 및 원래 줄 복원
  21. Ctrl+ n 역사에서 다음 명령
  22. Ctrl+ p 역사에서 이전 명령

5
죄송합니다. 그러나 모든 유용한 바로 가기 키를 제공했습니다. 7,8,9,10,11,14,16,17은 요구 사항에 따라 사용할 수있는 지우기 / 삭제 바로 가기 키입니다.
tharunkumar

2
CTRL+ L(16.)는 현재 명령 행의 내용을 유지 한다는 점에 유의해야합니다 .
Aziraphale

Windows에서는 줄의 시작 부분으로 이동하려면 Ctrl + Shift + A를 사용해야합니다.
Gandalf458

3
그것은이 없습니다 Ctrl+를 h: 커서 전에 문자를 삭제
peflorencio

22

Ctrl+ A, Ctrl+ K터미널의 현재 줄을 지 웁니다. 그런 다음 필요한 경우 Ctrl+ 로 호출 할 수 있습니다 Y.


16

당신이 VI 모드를 사용하는 경우 나, 히트 Esc다음cc

방금 삭제, 무엇을 다시 얻기 위해 Esc다음 p:)


5
로 vi 모드를 활성화 할 수 있습니다 echo 'set editing-mode vi' >> ~/.inputrc. 또한 파이썬 인터프리터 프롬프트와 일부 SQL 클라이언트 같은 장소에서 작동
dwurf

11

나는 당신이 그것을 좋아하는지 확실하지 않지만 Ctrl+ A(줄을 시작하기 위해)와 Ctrl+ K(줄을 삭제하기 위해)를 사용합니다. 나는 이맥스 에서이 명령에 익숙했고 실수로 알아 냈습니다.



6
  • Ctrl+ u: 이동 링 버퍼에 라인의 시작까지
  • Ctrl+ k: 이동 링 버퍼에 라인의 끝에까지
  • Ctrl+ w: 커서에서 왼쪽 으로 문자와 (여러) 단어를 링 버퍼로 이동

  • Ctrl+ y: 링 버퍼에서 마지막 항목을 삽입 한 다음 Alt+ y를 사용 하여 링 버퍼를 통해 회전 할 수 있습니다 . 링 버퍼에서 "이전"입력을 계속하려면 여러 번 누릅니다.


4

CTRL+ R를 입력하고 히스토리에서 이전 명령을 검색하십시오. 전체 라인을 표시합니다.
CTRL+ R다시 순환합니다.



2

목록에 추가하십시오.

Emacs 모드에서을 Esc누른 다음을 R누르면 전체 행이 삭제됩니다.

왜 그런지 모르겠습니다. 삭제 행에 사용되지 않지만 동일한 효과가 발생합니다. 누군가 알고 있다면 감사합니다. :)

Bash에서는 작동하지만 Fish에서는 작동하지 않습니다.


1
그것은이다 revert-line"이 라인에 만든 취소 모든 변경 사항"의 readline 명령. 기본적으로 M-rAlt-R 또는 Esc R 일 수있는 (Meta-R)에 바인딩 되어 있습니다. 즉, 실제로 비어있는 경우에만 줄을 삭제하지는 않습니다. 명령 기록에서 뒤로 스크롤하여 명령을 변경하면을 발행 revert-line하면 원래 명령으로 다시 변경되고 행을 삭제하지 않습니다.
Benjamin W.

2

커서가 어디에 있든지 전체 줄을 삭제하려면 kill-whole-line명령을 사용할 수 있지만 기본적으로 바인딩되어 있지 않습니다. 예를 들어 Ctrl+ Alt+ K를 삽입 하여 바인딩 할 수 있습니다

"\e\C-k": kill-whole-line

Readline init 파일에 (일반적으로 ~/.inputrc).

다양한 말 :

  • 실수로 다른 용도로 사용중인 키 시퀀스를 실수로 다시 할당하지 않으려면로 모든 바인딩을 확인할 수 있습니다 bind -P. 제안 된 바인딩 확인

    bind -P | grep '\\e\\C-k'
  • Readline init 파일 이름은 쉘 변수에서 가져옵니다 INPUTRC. 설정되지 않은 경우 기본값은 ~/.inputrc또는 (존재하지 않는 경우) /etc/inputrc입니다. 당신이 경우 통지 ~/.inputrc, /etc/inputrc무시됩니다.
  • Readline init 파일을 다시로드하려면 Ctrl+ X Ctrl+를 사용할 수 있습니다 R.
  • 관련 매뉴얼 섹션에 대한 링크 :

2

전체 라인을 청소하려면 (2 가지 방법) :

  • Home, Ctrl+K
  • End, Ctrl+U

0

Alt+ #현재 줄을 주석으로 처리합니다. 필요한 경우 역사에서 사용할 수 있습니다.

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