터미널에서 Ctrl + L


41

실수 로 터미널에 ctrl+ L를 입력 했는데 터미널 창이 한 화면 크기만큼 뛰었습니다. "편집"-> "키보드 단축키"에서 키보드 단축키를보고 해당 단축키를 찾지 못했습니다.

ctrl+ L는 무엇을 하고 어디에 정의되어 있습니까?

답변:


58

ctrl+ L터미널 화면을 지우십시오.

명령에 해당하는 바로 가기 키 clear -x입니다. 심판

의 속성 bash이므로 gnome-terminal의 키보드 단축키 에서 찾을 수 없습니다 . 보낸 사람 man bash:

clear-screen (C-l)
          Clear the screen leaving the current line  at  the  top  of  the
          screen.   With  an  argument,  refresh  the current line without
          clearing the screen.

Bash Keyboard Shortcuts 의 상세 목록을 참조하십시오 .


아, 그 설명입니다.
Parto

3
그래도 배쉬가 아닙니다. Ctrl-L은 용지 공급 문자입니다. 흔하지는 않지만 소스 페이지에서 코드의 "페이지"를 분리하는 ^ L이 표시되는 경우가 있습니다. 프린터가 제어 문자로 해석 할 때 더 의미가 있습니다.
Joshua Taylor

@JoshuaTaylor 당신이 맞습니다. 페이지 나누기
souravc

1
^ L은 ascii 테이블의 용지 공급 문자이지만 적절하게 처리하는 프로그램 (이 컨텍스트에서 bash 또는 터미널 에뮬레이터)에 의해 수신되지 않으면 아무 것도 수행하지 않습니다.
Alexis

1
다음과 같이 인수 를 추가하지 않으면 clear명령 clear이 수행 하는 동안 터미널 기록이 지워지지 않으므로 기본 명령과 동일 하지 않습니다 . -xclear -x
jirislav

18

사용중인 쉘이이를 가로 채지 않는 경우 터미널에 "양식"문자를 입력하고있는 것입니다. 터미널 응용 프로그램이 어떤 식 으로든 키 입력을 가로 채거나 사용하지 않으면 Ctrl+ Letter는 문자 빼기 64 (1)의 ASCII 코드로 변환됩니다. 65는 'A'의 ASCII 코드이고, 'L'은 12 번째 문자-> 코드 76입니다. 쉘이 코드의 작업을 모르는 경우 인쇄합니다.

FF 문자를 인쇄하면 라인 프린터에서 새 페이지가 생성되고 터미널에서 화면이 깨끗해졌습니다 (예, 300 보드에서 VT-52를 사용했습니다 ).

그래서 Ctrl+ LFF 12입니다. 같은 방식으로, Ctrl+는 I탭용이며, Ctrl+ G종 반지 --- 경우 터미널이나 쉘처럼, 그것은 가로 챌 않는 Ctrl+ C예를 들어.

다른 대답에서 공지 사항 : 배쉬가 보인다 절편을 CTRL- L그리고 작업을 수행 clear. bash작성자가 키를 ASCII 코드가 이전 터미널에서했던 것과 거의 동일하게 명령과 연관 시켰다는 것을 잘 알고 있습니다!

반면에, 내에서 zsh조합 CTRL- I로 작동 TAB하고 CTRL- HA와 Backspace(2)를.

오래된 멋진 ASCII ... (문자 L은 4 열, 12 행에 ASCII 코드 4 * 16 + 12 = 76이 있음에 유의하십시오).

위키 미디어 공용 이미지

원본 이미지 여기 에서, ASCII에 위키 피 디아 기사 .


각주 :

(1) Ctrl실제로 비트 7을 지우는 데 사용됩니다.

(2) 이것은 "단어를 제거하지 못했습니다"의 출처입니다.


1
좋은. 그런데이 차트를 어떻게 사용합니까? 문자 L이 12 행과 4 열에 있음을 알 수 있습니다. 그런 다음 124에서 32를 빼거나 ASCII 코드를 어떻게 계산합니까?
Parto

@AvatarParto ups는 65 대신 32를 썼습니다. 답변이 수정되었습니다. 테이블은 이진이므로 코드는 열 * 16 + 행입니다.
Rmano

1
취소 선을 사용할 수없는 경우 리터럴 ^Hs 또는 ^Ws를 삽입하는 것이 좋습니다. :)
Shining

8

Control-Lbash (실제로 는 명령 줄에서 대화 형 편집을 처리 하는 readline라이브러리)에 의해 인터셉트되고 해석됩니다 . clear-screen@souravc이 작성한 것처럼 함수에 바인딩됩니다 .

의 의미에 대한 참고 사항 Control-L: ASCII 문자 표에서 용지 공급으로 정의되어 있지만 일부 프로그램에서 적절하게 해석하지 않는 한 아무 의미가 없습니다. 파일에 ^ L을 저장하고로 파일을 인쇄하여 확인할 수 있기 때문에 터미널은 용지 공급을 볼 때 화면을 지우지 않습니다 cat. 경우 bash/readline을보고 ^L, 그것을 실행하는 clear-screen기능. 이것은 터미널 에뮬레이터가 이해하는 일련의 문자를 보내며 (termcap 또는 terminfo에 설명 된대로) 화면을 지우는 효과가 있습니다.

아주 오래된 프린터에서는 ^L용지가 다음 장에 인쇄되기 시작하여 이름이 "양식 급지"입니다. 그러나 최신 터미널과 터미널 에뮬레이터는 제어 명령이 (이스케이프)로 시작하는 다중 문자 "이스케이프 코드"인 새로운 ANSI 표준을 따릅니다 ^[. bash는을 보았을 때 ^L아마도 두 개의 명령 시퀀스를 보내고있을 것입니다.이 명령 ESC [ H ESC [ J은 화면의 왼쪽 상단으로 이동하여 그 아래의 모든 것을 지 웁니다 (전체 화면).


실제로, 시퀀스 ESC [ ESC [ J는 명령 히스토리를 지우지 만 CTRL + L 시퀀스는 그렇지 않습니다. 터미널로 전송되는 순서는 오히려 ESC [ H ESC [ 2 J, 다음 명령으로 직접 시도하십시오 printf "\033[H\033[2J".
jirislav

0

모든 사람들이 이미 Ctrl+ L와 무엇을 잘 설명 했지만 아무도 명령을 "역방향으로"바꾸는 방법을 설명하지 않았으므로 여기에 몇 가지 명령을 입력하여 수행 한 작업으로 돌아갈 수 있습니다.

history

입력 한 마지막 20 개의 명령을 제공합니다.

tail --lines=20 /var/log/dpkg.log

수행중인 패키지 설치의 마지막 20 줄 출력을 제공합니다

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