실제 터미널 화면 지우기
clear
터미널 에서 명령을 사용하면 화면이 지워 졌다고 생각하게됩니다. 마우스를 사용하여 스크롤해도 이전 명령의 출력을 볼 수 있습니다. 이것은 쓰나미로 쓰러 질 때 삶을 어렵게 만듭니다.
인터넷에서 찾을 수있는 다양한 솔루션 (이스케이프 코드 등)은 clear 명령이 이미 수행 한 것의 변형 일뿐입니다.
그렇다면 리눅스에서 실제로 터미널의 내용을 지우려면 어떻게해야합니까?
다음 명령을 사용하여 단순히 새 줄을 추가하는 대신 명확한 화면을 만드십시오 ...
printf "\033c"
예, bash 프롬프트의 'printf'입니다.
그래도 별명을 정의하고 싶을 것입니다 ...
alias cls='printf "\033c"'
설명
\033 == \x1B == 27 == ESC
따라서 이것은 <ESC>c
터미널을 재설정하기위한 VT100 이스케이프 코드가됩니다. 다음 은 터미널 이스케이프 코드에 대한 추가 정보입니다.
편집하다
다른 몇 가지 방법이 있습니다 ...
printf "\ec" #\e is ESC in bash
echo -en "\ec" #thanks @Jonathon Reinhart.
# -e Enable interpretation of of backslash escapes
# -n Do not output a new line
KDE
위의 내용은 KDE 콘솔 (Konsole)에서 작동하지 않지만 희망이 있습니다! 다음 명령 시퀀스를 사용하여 화면과 스크롤 백 버퍼를 지 웁니다.
clear && echo -en "\e[3J"
또는 KDE에서 다음 별칭을 사용하십시오.
alias cls='clear && echo -en "\e[3J"'
여기서 스크롤 백 지우기 명령을 받았습니다 .
시도하십시오 reset
. 터미널 화면이 지워지지 만 화살표 나 키 바인딩을 통해 이전 명령에 액세스 할 수 있습니다.
tput reset
그 트릭을 할 것입니다!
내가 읽은 답변 중 PuTTY에서는 효과가 없으므로이 기사 에 대한 의견을 찾았습니다 .
연결 설정에서 "창-> 동작"아래에 "시스템 메뉴가 ALT에만 나타남"설정이 있습니다. 그런 다음 Ctrl + L, ALT, l (소문자 L)은 화면을 스크롤 한 다음 스크롤 백 버퍼를 지 웁니다.
(우분투 서버에 연결하고 있기 때문에 OP와 관련이 있지만 서버가 실행중인 것과 관계없이 분명히 관련이 있습니다.)
다음 링크는 해당 별칭을 영구적으로 만드는 방법을 설명하므로 계속 입력하지 않아도됩니다.
https://askubuntu.com/questions/17536/how-do-i-create-a-permanent-bash-alias
해당 링크에 자세한 단계가 있습니다.
- vim ~ / .bashrc 또는 gedit ~ / .bashrc 또는 원하는 텍스트 편집기
- 파일의 맨 아래에 별명 cls = 'printf "\ 033c"'를 넣으십시오.
- 저장 및 종료
- . ~ / .bashrc (그리고.와 ~ 사이에 공백이 있어야합니다)
- 이제 모든 것이 작동하는지 확인하십시오!
나는이 정보를 전달하는 것에 대해 아무런 신용도하지 않습니다.
내가 가장 좋아하는 인간 친화적 명령은 다음과 같습니다.
reset
xterm 및 VT100에서 테스트되었습니다. 또한 비정상적인 프로그램 종료 후 도움이됩니다. 명령 버퍼를 유지하므로 위쪽 화살표는 이전 명령을 순환합니다.
건배 : D
KDE 및 Ubuntu 12.04 LTS 및 "Konsole"터미널을 사용하면 게시 된 답변 중 아무 것도 작동하지 않습니다. 그러나 기본 키보드 단축키 CTRL + Shift + X를 누르면 작동합니다! 출처:
https://bugs.kde.org/show_bug.cgi?id=288913
새 줄을 인쇄하는 솔루션이 많이 지원되지 않는다는 것을 알고 있지만 다른 모든 방법이 실패하면 왜 그렇지 않습니까? 특히 누군가 다른 사람이 화면을 볼 수 있지만 키로그를 볼 수없는 환경에서 작동하는 경우. 잠재적 솔루션 중 하나는 다음과 같은 별칭입니다.
alias c="printf '\r\n%.0s' {1..50}"
그런 다음 화면의 현재 내용을 "지우려면"(또는 숨기려면) c+Enter
터미널에 입력 하십시오.
그냥 것을 추가 tmux
스크롤 버퍼로 취소하지 않는 clear
, reset
또는 printf
. 당신은해야합니다 :clear-history
. 링크를 참조 하십시오 .
echo -e "\e[3J"
이것은 리눅스 머신에서 작동합니다
이 앱을 컴파일하십시오.
#include <iostream>
#include <cstring>
int main()
{
char str[1000];
memset(str, '\n', 999);
str[999] = 0;
std::cout << str << std::endl;
return 0;
}
참고 URL : https://stackoverflow.com/questions/5367068/clear-a-terminal-screen-for-real
'Programming' 카테고리의 다른 글
자식에서 병합을 미리 볼 수 있습니까? (0) | 2020.02.28 |
---|---|
자바 : notify () 대 notifyAll () 다시 (0) | 2020.02.28 |
기존 Docker 컨테이너에 포트 매핑을 어떻게 할당합니까? (0) | 2020.02.28 |
Android Studio에서 모듈을 삭제하는 방법 (0) | 2020.02.28 |
Bash의 경로 문자열에서 파일 접미사와 경로 부분을 어떻게 제거합니까? (0) | 2020.02.28 |