명령을 빠르게 삭제하려면 어떻게합니까?


168

나는 거의 모든 작업에 터미널을 사용합니다. 다음과 같은 거대한 명령을 입력했다고 가정 해 봅시다.

sudo a-huge-command

backspace키를 계속 누르지 않고 단일 단축키로 전체 명령을 삭제하는 가장 쉬운 방법은 무엇입니까 ?

나는 전문적인 방식으로 Ubuntu를 사용하고자하는 Ubuntu 초보자입니다.


13
bashvi 키를 이해하기 위해 (및 다른 여러 쉘) 설정할 수 있습니다 set -o vi. 그런 다음 할 수있는 esc, dd(또는 기타 편집 / 당신이 VI [m]에서 할 수 있기 때문에 대체).
웨인 베르너

6
Home, '#', Enter
Alistair Buxton

5
이것은 싼 해킹이지만 그만한 가치가 있기 때문에 나는 보통 짧은 명령 (예 ls:)과 백 스페이스에 도달 할 때까지 일반적으로 위쪽 화살표 를 누르십시오. ' 거래.
KennyPeanuts

CTRL <-몇 번 누르면 일반적으로 쿼리의 시작 부분으로 돌아갈 수 있습니다. 이것이 당신의 뜻입니까?
marc-andre benoit

답변:


177

커서 위치에서 명령 행의 시작 부분으로 텍스트를 자르려면 Ctrl+ U를 사용하십시오 . 나중에 원하는 경우 Ctrl+ Y를 사용 하여 잘라낸 텍스트를 붙여 넣습니다.

현재 명령 줄을 삭제하고 새로운 클린 프롬프트를 얻으려면 Ctrl+를 누르십시오 C.

자세한 내용 은 터미널 사용에 대한 Ubuntu 설명서를 확인하십시오.


이 답변은 bash (우분투 기본값)와 tsch 모두에서 작동합니다.
Nick

대시가 우분투 기본값이라고 생각 했습니까?
Chris

15
dash/bin/sh명령 의 기본 인터프리터입니다 . bash기본 로그인 및 TTY 쉘입니다.
darvids0n

9
나는 찾을 Ctrl + C나는 종종 실수로 죽이고 내 진행 및 / 또는 추진력을 잃고, 자신의 메시지와 함께 프로그램에 신호를 보내드립니다 때문에, 나쁜 습관이 될 수 있습니다.
user606723

111

Ctrl+ U당신을 도울 것입니다.

다음은 사용 가능한 나머지 옵션입니다. 여기 에서 잡아

UNIX는 여러 개의 제어 키 명령, 두 번째 키를 눌렀을 때 Ctrl 키를 누른 상태에서 입력하는 명령을 이해합니다.

CTRL+ S-화면을 멈추고 화면의 디스플레이가 계속 진행되지 않도록합니다 (스크롤 없음 키와 동일) (때로는 작동하는 데 시간이 걸립니다)

CTRL+ Q-화면을 고정 해제하고 화면을 계속 표시합니다

CTRL+ C-실행중인 프로그램을 중단

CTRL+ \-CTRL-C와 동일하지만 더 강력 함 (터미널이 응답하지 않을 때 사용됨)

CTRL+ Z-실행중인 프로그램을 일시 중단합니다 (fg 명령을 사용하여 프로그램을 계속 진행합니다 (s $ 참조).

CTRL+ H-입력 한 마지막 문자를 삭제합니다

CTRL+ W-입력 한 마지막 단어를 삭제합니다

CTRL+ U-입력 한 마지막 줄을 삭제합니다

CTRL+ R-기록에서 텍스트를 검색

CTRL+ D-메일 및 쓰기를 포함한 많은 UNIX 프로그램의 텍스트 입력을 종료합니다.

노트 :

CTRL+ W또는 CTRL+를 사용하여 삭제 U하면 (편집) "잘라 내기"(생각) 작업 (삭제 및 버퍼 / 클립 보드에 저장)도 수행됩니다. 버퍼 / 클립 보드에 문자열을 붙여 넣기 (잉크 아웃)하려면 CTRL+를 사용하십시오 Y.


7
실제로 ctrl-r은 히스토리에서 텍스트를 검색합니다.
Eric Carvalho

@EricCarvalho 당신이 맞아요. 답변에서 해당 옵션을 제거합니다.
devav2

2
일반적인 UNIX 제어 코드입니다. 기본 우분투 터미널은 bash 기반이며 이는 다릅니다.
OrangeDog

Ctrl-U는 커서에서 줄의 시작 부분까지 삭제합니다. 나는 종종 역사에서 명령에 대한 인수 바로 앞에 커서를 놓아서 사용합니다. 그런 식으로 같은 인수를 사용하여 새로운 명령을 입력 할 수 있습니다. 파일을 kate 파일로 변경하는 것과 같이 파일이 필요한지 확인한 후 파일을 편집하면 편집이 필요한지 확인할 수 있습니다.
Joe

1
@OrangeDog-이것들은 훌륭합니다. CTR- \을 제외하고 우분투 bash-bash 터미널에서이 모든 것을 사용합니다.
belacqua 2016 년

61

나는 보통 Alt+를 사용하고 Backspace있습니다. 당신이 사용하는 경우 bash, 이것은 당신이 이전 특수 문자 (전까지 삭제하게됩니다 /, ;, , 등). 를 사용하는 경우 zsh슬래시와 세미콜론도 제거됩니다. 때리는 것보다 훨씬 빠릅니다 Backspace.

에서 bash,이 다르다 Ctrl+ w의미에서 Ctrl+ w이전 단어의 알의 삭제 Alt+를 Backspace이전 특수 문자가 발견 될 때까지 삭제합니다. 에서 zsh두 키 조합은 같은 일을


8
Ctrl + W도 마찬가지입니다.
hytromo

rxvt와 같은 터미널에서는 작동하지 않습니다.
sqram

1
@lyrae 저에게는 xterm이 아니지만 rxvt에서 완벽하게 작동합니다. set -o emacs설정된 경우에만 작동합니다 .
Marco

ALT+Backspace뿐만 아니라 사용 CTRL+C합니다. 이것은 모든 리눅스에서 작동합니다. :)
tftd

@ hakermania : 아니오, 다릅니다. Ctrl 키 + W를 단어를 삭제하고 Alt + 백 스페이스 이전 특수 문자 (때까지 삭제 /, ;``등).
jobin

35

다음은 쉘 과 함께 사용할 수있는 키보드 단축키 목록 입니다 bash.

Ctrl + A    Go to the beginning of the line you are currently typing on
Ctrl + E    Go to the end of the line you are currently typing on
Ctrl + L    Clears the Screen, similar to the clear command
Ctrl + U    Clears the line before the cursor position. If you are at the end of the line, clears the entire line.
Ctrl + H    Same as backspace
Ctrl + R    Lets you search through previously used commands
Ctrl + C    Kill whatever you are running or start a new prompt
Ctrl + D    Exit the current shell
Ctrl + Z    Puts whatever you are running into a suspended background process. fg restores it.
Ctrl + W    Delete the word before the cursor
Ctrl + K    Clear the line after the cursor
Ctrl + T    Swap the last two characters before the cursor
Esc + T     Swap the last two words before the cursor
Alt + F     Move cursor forward one word on the current line
Alt + B     Move cursor backward one word on the current line
Tab         Auto-complete files and folder names

당신이하고 싶은 것은 줄의 끝에서 Ctrl+ C또는 Ctrl+ U에 의해 달성됩니다 .


최고의 답변은 Ctrl+C또는 ( Ctrl+E Ctrl+U)
New Alexandria

내가 관심이있는 tcsh에 적용 가능한 목록은 몇 개입니까?
TCSGrad

@ shan23의 "편집기 명령"섹션을 읽거나을 man tcsh사용하십시오 bindkey -l. 매우 다른 것 같습니다.
OrangeDog

bash (또는 다른 쉘) Readline에 vi 바인딩을 사용하는 경우 이들 중 일부가 실패합니다. 이것들은 대부분 tcsh에도 적용됩니다; 이 오래된 데이트 배쉬. bash는 csh / tcsh의 멋진 기록 바로 가기를 많이 포함했습니다.
belacqua 2016 년

25

Alt+ #(즉, Alt+ Shift+ 3)는 현재 명령을 주석 처리하고 다음 줄에서 계속합니다.

예를 들어, 입력하면 t, e, s, t, Alt+ #, 당신은 얻을 것이다 :

you@computer$ #test
you@computer$ 

다시 이전 명령을 얻고 싶은 경우에, 당신은 위쪽 화살표를 누르면 해시 문자를 삭제 ( Up, Home, Delete또는 Up, Ctrl+ A, Delete).

나는 그것이 Bash, Python 및 MySQL에서 작동하기 때문에 GNU Readline 의 기능이라고 생각합니다 .


22

Ctrl+ C-실행중인 명령을 중단하는 것 외에도 명령 줄 입력을 "인터럽트"하는 데 사용될 수도 있습니다.

Ctrl+ 와 달리 U입력 한 내용을 볼 수 있지만 커서가 새 줄로 이동하고 빈 명령 줄 프롬프트가 나타납니다.


4
나는 단순히 근육 기억 때문에 이것을 선호하며 중단 된 명령 줄이 거기에 있기 때문에 중요한 것을 복사 / 붙여 넣을 수 있습니다.
ish

8

Bash readline단축키 Ctrl+ X+ E는 명령 줄에서 작업 할 때 매우 유용합니다. 긴 명령을 입력하는 대신 기본 텍스트 편집기에서 명령을 열기로 결정한 경우 바로 가기 만 사용하면됩니다.

Bash의 readline라이브러리를 사용하며이 특정 바로 가기를이라고합니다 edit-and-execute-command. 당신은 배치하여 기본 편집기를 설정할 수 있습니다 export EDITOR="/usr/bin/vi"에서 ~/.bashrc또는 ~/.bash_aliases.

입력 bind -P현재보고 readline바인딩 및 참조 man readline또는 온라인 우분투 맨 페이지 자세한 내용은.


7

또한 Esc+ Backspace를 사용 하여 특수 문자까지 모든 이전 문자를 삭제합니다. 이것은 Alt+ Backspace입니다. 한 번에 몇 단어 만 삭제하면 편리합니다.


3

대한 vi키 바인딩

with 또는 in 과 vi같은 키 맵을 사용하는 경우 :bashset -o vizshbindkey -v

삽입 모드

기본 / emacs 모드와 동일한 키 입력입니다.

Ctrl+U

줄의 시작 부분에서 현재 위치를 삭제합니다. 따라서 커서가 끝에 있으면 전체 줄을 삭제합니다.

일반 모드

두 번의 키 입력으로 줄을 삭제하는 방법에는 여러 가지가 있습니다.

dd한 줄의 기본 개수로 linewise를 삭제하십시오 .

dd

건 드리는면에서 가장 간단합니다.

다른 방법은 다음과 같습니다.로 줄 시작으로 이동하고 다음으로 줄 ^끝으로 삭제하십시오 D.

^D

둘 다 삽입 모드의 Ctrl+ U또는 변형 블로우 와 같이 왼쪽뿐만 아니라 전체 행을 삭제합니다 .

현재 줄의 끝에 있으므로 오른쪽에있는 것을 삭제할 필요가 없으면 다음과 같이하십시오.

d줄에서 시작하려면 여기 에서 삭제하십시오 ^.

d^

이것들은 모두 삽입 모드에서 사용할 수 있습니다. 일반 모드로 가기 위해서는 보통 탈출이 필요합니다. 예를 들어 삽입 모드에서 전체 줄을 삭제하려면 다음을 사용하십시오.

Escdd

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