![Bash 쉘은 캐리지 리턴 시 새 줄을 시작하지 않으며 입력된 명령을 표시하지 않습니다.](https://linux55.com/image/145753/Bash%20%EC%89%98%EC%9D%80%20%EC%BA%90%EB%A6%AC%EC%A7%80%20%EB%A6%AC%ED%84%B4%20%EC%8B%9C%20%EC%83%88%20%EC%A4%84%EC%9D%84%20%EC%8B%9C%EC%9E%91%ED%95%98%EC%A7%80%20%EC%95%8A%EC%9C%BC%EB%A9%B0%20%EC%9E%85%EB%A0%A5%EB%90%9C%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%ED%91%9C%EC%8B%9C%ED%95%98%EC%A7%80%20%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
lxterminal 창에서 실행되는 대화형 bash 셸에서 내가 무엇을 망쳤는지 알 수 없습니다.
Return 키를 누르면 새 줄이 시작되지 않지만 Ctrl-C는 시작됩니다.
$ ^C
$ $ $ $ $ ^C
$ ^C
$ $ $ $ $ $ $
명령을 입력할 때 Return 키를 누르면 명령이 실행되지만 입력한 명령이 표시되지 않습니다.
sudo lsof ... | less
그 전에는 몇 가지 명령 (또는 ) 을 실행했는데 sudo netstat ... | less
출력이 없는 것 같아서 ctrl-c 및/또는 q를 순서에 관계없이 여러 번 눌렀습니다. 마침내 종료했을 때 less
bash에 문제가 발생했습니다.
실수로 쉘의 표준 출력을 다른 곳으로 리디렉션했습니까?
쉘을 닫지 않고 문제를 해결할 수 있는 방법이 있습니까?
답변1
귀하의 터미널이 "재미있는" 모드에 멈춰 있는 것 같습니다. /usr/bin/reset
일반적으로 ncurses
라이브러리와 함께 제공되는 명령을 사용하여 재설정할 수 있습니다 .
답변2
reset
(다른 답변으로 요청)이 작동하지 않으면 다음을 시도하십시오 .
stty sane
어쩌면 뒷면이 아닐까
tput rs1
다음과 같은 별칭이 정의되어 있습니다. (아마도 stackoverflow 어딘가에서 찾은 것 같습니다.)
alias fixtty='reset; stty sane; tput rs1; clear; echo -e "\033c"'
답변3
다른 답변에서 알 수 있듯이 가장 쉬운 수정은 실행하는 것입니다 reset
.
이유는? 이는 일반적 cat
으로 바이너리 파일이나 데이터를 터미널에 출력할 때 발생합니다.
텍스트는 단지 텍스트일 뿐이며 터미널에서 특별히 처리되지는 않지만 텍스트가 아닌 일부 특수 문자가 있으며 커서 이동, 화면 지우기, 색상 변경, 에코 출력 중지 등과 같은 작업을 수행하는 데 사용됩니다.
(텍스트 대신) 바이너리 데이터를 출력할 때 터미널은 이러한 특수 제어 문자를 보고 문자가 발생할 때 이를 해석하려고 시도합니다. 화면이 지워지거나 깜박이거나 점프하는 것을 볼 수 있습니다. 이는 이러한 제어 문자가 존중되기 때문입니다. head /dev/urandom
무슨 뜻인지 알아보기 위해 새 터미널에서 실행하여 실험 해 볼 수 있습니다 .
대부분의 경우 터미널이 이상하게 작동하는 경우 간단히 reset
실행하면 문제가 해결됩니다. 이는 터미널을 기본 기본 모드로 설정하는 데 필요한 모든 특수 문자를 간단히 표시합니다 stop echoing input
. start echoing input
. 이진 데이터에는 전자가 무작위로 포함되어 있으므로 입력한 내용을 볼 수 없으며 reset
후자(다른 것 중에서도)가 포함되어 문제가 해결됩니다.