Programming

실제 터미널 화면 지우기

procodes 2020. 2. 28. 19:38
반응형

실제 터미널 화면 지우기


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

해당 링크에 자세한 단계가 있습니다.

  1. vim ~ / .bashrc 또는 gedit ~ / .bashrc 또는 원하는 텍스트 편집기
  2. 파일의 맨 아래에 별명 cls = 'printf "\ 033c"'를 넣으십시오.
  3. 저장 및 종료
  4. . ~ / .bashrc (그리고.와 ~ 사이에 공백이 있어야합니다)
  5. 이제 모든 것이 작동하는지 확인하십시오!

나는이 정보를 전달하는 것에 대해 아무런 신용도하지 않습니다.


내가 가장 좋아하는 인간 친화적 명령은 다음과 같습니다.

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



반응형