Bash에서 Clear 명령이 Ctrl-L처럼 작동하도록 할 수 있나요?

Bash에서 Clear 명령이 Ctrl-L처럼 작동하도록 할 수 있나요?

clear그것은 bash와 Ctrl상당히 L다른 것 같습니다 . clear이전 터미널 정보를 모두 완전히 제거하므로(위로 스크롤할 수 없음) Ctrl- L커서가 페이지 상단에 오도록 화면을 스크롤하면 계속 위로 스크롤하여 이전 정보를 볼 수 있습니다. 나는 Ctrl- L시스템을 훨씬 선호한다. 이전 터미널 정보를 모두 지우는 대신 -을 clear수행하도록 재정의하는 방법이 있습니까 ? 이것은 큰 문제는 아니지만, 제가 선호 하는 기능을 가리키는 별칭을 지정할 수 있는 방법이 있는지 궁금합니다 .CtrlLclearCtrlL

참고로 저는 PowerShell에도 bash에 대한 바인딩이 있고 동일한 Ctrl방식 L으로 수행된다는 사실을 발견했습니다 . PowerShell 디자이너는 bash에서 많은 것을 가져온 것 같지만 콘솔에는 이 기능이 없습니다.CtrlLcmd.exe

답변1

이전 터미널 정보를 모두 지우는 대신 Ctrl-L을 수행하도록 Clear를 재정의하는 방법이 있습니까?

alias clear='tput -x clear'

예, Ctrl-Lbash에서는( set -o emacs모드에 있는 동안) 정확히 동일한 작업을 수행합니다.

또는 대부분의 터미널 에뮬레이터에서 작동해야 하는 이스케이프를 하드와이어할 수 있으며 , 이스케이프가 있거나 설치되어 있다고 alias clear='printf "\033[H\033[2J"'가정하지 않습니다 .ncursesbash

참고:clearbusybox의 애플릿은 스크롤백 버퍼를 지우지 않으므로 대부분의 임베디드 Linux 시스템처럼 일부 busybox 기반 시스템을 사용하는 경우 특별한 작업을 수행할 필요가 없습니다.

답변2

clear다음을 발췌한 터미널 명령입니다 man clear.

설명 clear 가능하면 스크롤백 버퍼를 포함하여 화면을 지웁니다(확장된 "E3" 기능이 정의된 경우). clear환경 변수 TERM에 의해 제공된 터미널 유형에 대한 환경을 살펴본 다음 terminfo 데이터베이스에서 화면을 지우는 방법을 결정합니다. clear표준 출력에 씁니다. 표준 출력을 파일로 리디렉션할 수 있으며(이렇게 하면 화면이 실제로 지워지는 것을 방지할 수 있음) 나중에 cat 파일을 화면으로 보내 해당 시점에서 지울 수 있습니다.

Ctrl+는 l다음과 같은 키 바인딩입니다.readlineclear-screen명령( man 3 readline)입니다.

화면을 지운 다음 현재 줄을 다시 그리고 현재 줄은 화면 상단에 둡니다. 인수를 사용하면 화면을 지우지 않고 현재 줄을 새로 고칩니다.


clearreadline 명령에 별칭을 지정하는 방법을 찾을 수 없으며 clear-screen전혀 불가능할 수도 있습니다.

관련 정보