윈도우 우분투에서 배쉬 : 모든 텍스트를 지우고, 그것 모두


7

최근 Mac에서 Windows 10 PC로 전환하여 Microsoft의 새로운 Linux 하위 시스템 ( "Windows의 우분투에서 배쉬"라고도 함)을 실험하고 있습니다. 매일 그것을 사용하면서 겪는 가장 큰 짜증은 커다란 텍스트 벽을 비우는 것입니다. 다른 사람들은 화면에 텍스트가 어지럽게 삽니다. 그러나 그것은 나를 미치게 만듭니다. 한 번에 하나씩 큰 덤프를 남기는 명령 만 처리 할 수 ​​있습니다. 즉, 마지막 명령의 모든 출력이 시작되는 곳을 보려면 맨 위로 스크롤 할 수있는 것을 선호합니다. 나는 그것을 지우고 다음 명령으로 넘어 간다. 마지막으로 실행 된 명령의 출력이 시작되는 위치를 찾기 위해 여러 명령 출력 덤프를 검색하지 않아도됩니다. 그래, 그게 어렵지 않다는 것을 안다. 나는 즉시 모든 것을 지울 수있는 Ctrl + K를 입력 할 수있는 Mac OS X Terminal app을 사용하는 것을 망쳐 놓았다.

Windows Bash / Ubuntu 응용 프로그램에서. 텍스트 지우기에 가장 가까운 것은 Ctrl + L이지만 현재 표시된 텍스트 화면 만 지우고 전체 스크롤 백을 지우지는 않습니다. "재설정"명령 만 사용하면 작동하지 않습니다. 상단으로 스크롤하고 Ctrl + L을 누른 다음 "재설정"을 입력하여 모든 텍스트를 제거해야합니다. 그건 충분히 짜증나지만, 그 위에, "리셋"명령은 항상 내 기본 설정보다 창을 좁게 만들고, 80 열 너비로 설정합니다. 응용 프로그램 아이콘을 클릭 한 다음 "속성"을 클릭하여 설정 한 내 기본 설정은 너비가 145 열입니다. 나는 심지어 "Defaults"로 들어가서 145로 설정하려고 시도했지만 "reset"은 여전히 ​​80이됩니다. 우분투 서브 시스템에 어딘가에 구성되어 있어야합니다. 너비가 너무 좁아.

가장 많이 투표 한 답변 이리 "재설정 및 지우기"바로 가기를 매핑 할 수 있기 때문에 그놈 터미널을 사용하는 것이 좋습니다. 그러나 질문자는 Windows Ubuntu 하위 시스템이 아닌 완전한 Ubuntu를 사용하고 있었으므로 약간 회의적입니다. 그게 후자에서 작동할까요? 그게 가능한지 알아야 할 수도 있습니다. 두 번째 대답은 "cls"별명을 다음과 같이 만들 것을 제안합니다.

alias cls="echo -ne '\033c'"

그러나 슬프게도 이것은 효과가 없었습니다. 별칭의 내용을 별도로 실행하려고 시도했지만 아무 것도하지 않았습니다. "echo -ne"을 "printf"로 바꿔야합니다.

나의 마지막 희망은 그 페이지에서 세 번째 대답 인 "버퍼를 0 줄로 설정"입니다. 나는 이것을 변경해야하는 우분투 서브 시스템의 설정이거나 아마 홈 디렉토리에 배치해야하는 설정 파일 일 것이라고 추측하고있다. (나는 그들이 그들이 의미하는 것을 정확히 설명했으면 좋겠다.) 어쨌든 Windows 응용 프로그램의 "등록 정보"로 들어가서 버퍼 설정을 어지럽히는 것이 도움이되지 않았습니다.

어떤 터미널 프로그램이 사용되는지에 관해서는, $ TERM을 echo하면 "xterm"이 나옵니다. 오, 우분투 버전은 14.04입니다. (나는 다음번 주요 Windows 10 업데이트를 통해 새로운 Ubuntu로 업그레이드 할 수 있다고 들었지만 Windows Insider "미리보기"설치로의 도약을 좋아하지 않습니다.)



너 찾고 있니? 내 대답이 작동하지 않는다면, 내 해결책이 효과가 있는지 알면 좋을 것입니다.
DanHolli

@ DanHolli 죄송합니다. 나는 당신의 솔루션을 시도한 적이 없으며, 무한 루프로 보이는 배치 파일을 만드는 것에 신경을 썼습니다.
William Beaumont

그것은 무한 루프이지만 여전히 창에서 Alt + f4와 x를 사용하여 닫을 수 있습니다
DanHolli

답변:


5

내가 발견 한 가장 안정적이고 이식 가능한 명령 1 :

printf '\033c\e[3J'

분명히, 매번 입력하는 것은 너무 길고 복잡합니다. 해결책은 별칭을 정의하는 방법 따라서 훨씬 쉬운 이름을 사용하여 실행할 수 있습니다. 내 제안은 cls이 명령은 Windows의 cmd 셸에서이 명령의 이름입니다.
설정 cls 별칭으로 다음 행을 입력하십시오.

alias cls="printf '\033c\e[3J'"

이렇게하면 현재 쉘에서 별명을 사용할 수 있습니다. 새 터미널을 열 때마다 언제든지 처분 할 수 있도록하려는 경우 해당 줄을 새 터미널에 추가하십시오. .bashrc 파일을 홈 디렉토리에 저장하십시오.


1. 나는 이전에 사용을 제안했다. clear && echo -en "\e[3J",에서 설명한대로 스택 오버플로 ,하지만 일부 사용자에게는 작동하지 않으므로 답변을 업데이트했습니다.


그것은 2018 년 10 월이고 저것은 저를 위해 작동하지 않습니다 (또는 나는 무언가를 이해하지 못합니다, 저는 Ubuntu와 함께 WSL의 "bash"에 있습니다. 스크롤 백 삭제됨). 이거 다시 깨진거야?
Sebastien Diot

1
@SebastienDiot 이상한, 그것은 여전히 ​​나를 위해 일하고있다. 어쨌든, 그 사이에 나는이 명령이 내가 원하는대로 보편적이지 않다는 것을 발견했다. Bitvise SSH 클라이언트를 사용하여 데비안 컴퓨터에 연결하면 작동하지 않는다. 다른 한편으로 나는 발견했다. printf '\033c\e[3J'echo -en '\033c\033[3J' 어디서나 작동하도록 테스트했습니다. 그것들을 시도해보고 나에게 피드백을 줄 수 있습니까? 그들이 작동하면 내 대답을 업데이트 할 수 있습니다. 고맙습니다!
Fabio Turati

에코 버전은 나를 위해 작동하지 않았지만 printf 버전은 효과가있었습니다. 감사!
Sebastien Diot

2

Windows의 기본 Ubuntu 터미널에 대한 대답이 없습니다. DavidPostill의 링크를 기반으로, dev 팀이이 문제점을 알고 있으므로 향후 릴리스에서 수정 될 것으로 가정합니다. 그동안 WSL을 위해 MinTTY를 사용하기로했습니다 ( https://github.com/mintty/wsltty ). "재설정"명령은 해당 터미널에서 완벽하게 작동하며 창 크기 만 남겨두고 모든 텍스트 출력을 완전히 지 웁니다.


0

입력 할 때 배치 파일을 만들 수 있습니다. exit 배시에서

@echo off
powershell while (1) {bash ~; cls}

파일을 a로 저장하십시오. .bat 파일을 열고 실행하여 종료하거나 창을 닫습니다. Alt + F4

나는 또한 .bat 파일을 .exe Google 드라이브에서 파일을 다운로드 할 수 있습니다. 이리 .

나는 그것을 약 4 번 테스트했으며, 완벽하게 작동합니다.

다운로드가 작동하지 않으면 알려주세요.

시작 메뉴의 링크를이 배트 또는 EXE 파일로 변경하려면 C:\Users\usernamehere\AppData\Roaming\Microsoft\Windows\Start Menu\Programs


나는 이것을 시도하지 않았다. WSL에서 MinTTY를 사용하기로 전환했다. github.com/mintty/wsltty ) 대신.
William Beaumont

시도해 볼 수 있겠습니까? Powershell에서 더 많이 배워야했습니다. 그리고 필요에 따라 잘 작동한다면 upvote
DanHolli
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.