
cat
실행 파일을 사용하여 명령을 실행 하려고 합니다 .
cat /bin/ls
이제 이 터미널(Linux 콘솔)에서는 어떤 단어도 읽을 수 없습니다. 어떻게 해결할 수 있나요?
답변1
예를 들어 Unix/Linux 터미널(Bash)에서는 파일을 보기 위해 또는 more
명령 을 자주 사용하게 됩니다. 이 작업을 수행하고 파일을 보려고 하지 않으면(예 : ) 다음과 같은 출력이 표시됩니다.less
cat
/bin/ls
여기서 무슨 일이 일어나고 있는지는 방금 프로그램 파일을 보려고 했다는 것입니다. 위에서 언급했듯이 실행 파일은 표준 뷰어로 보기에 적합하지 않습니다.
방법 #1 - 재설정
이 문제를 해결하려면 다음을 수행할 수 있습니다.
- Ctrl + C를 여러 번 누릅니다( Ctrl+ C).
- 명령을 입력
reset
하고 Enter를 누르십시오
그러면 일반적으로 터미널이 보다 일반적인 모드로 돌아갑니다. 한 가지 더 말씀드리고 싶은 점은 위 단계를 수행할 때 터미널에 해당 내용을 입력하지 않게 된다는 것입니다. 그러니 반드시 정확하게 입력하시기 바랍니다.
방법 #2 - 제정신
@sendmoreinfo의 의견에서 제안한 대로 위 명령이 작동하지 않으면 다음 명령을 사용하는 것이 더 나을 수 있습니다.
$ stty sane
$ tput rs1
파일 유형 결정
그런데 파일을 발견했는데 그 파일이 터미널을 망쳤는지 확실하지 않은 경우, file
파일 유형을 보고하는 명령을 사용하여 파일을 확인할 수 있습니다.
예를 들어 /bin/ls
파일에는 다음 출력이 표시됩니다.
$ file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, stripped
답변2
나는 한 번 일반적인 트릭 reset
이나 트릭 중 어느 것도 stty sane
작동하지 않는 상황에 직면했습니다( print
예기치 않은 Python 바이트 배열 호출 후). 나는 성공했다방법 2는 이 유용한 블로그에 나열되어 있습니다..
그 이후로 저는 가장 유용한 별칭 중 하나를 만들었습니다.
alias fix='echo -e "\033c"'
답변3
이전에는 어떤 답변도 효과가 없었습니다. 그러나 이것은 .bashrc에 다음을 추가하여 문제를 해결한 것으로 보입니다.
alias fix='reset; stty sane; tput rs1; clear; echo -e "\033c"'
그런 다음 문제가 발생하면 이를 입력하십시오(보이지 않더라도!).
(ctl-c, ctl-c, ctl-c)
fix
이전 커미터들에게 많은 감사를 드립니다. 또한, 참고로 이러한 실행 파일(또는 키 저장소 등)을 표시할 때 터미널이 불안정해지는 이유는 이러한 파일에 제어 코드인 바이너리 시퀀스가 포함되는 경우가 많기 때문입니다. 제어 코드는 그래픽 문자 집합으로 전환하거나 전경색과 배경색을 동일한 내용으로 설정하는 등 임의의 작업을 수행할 수 있습니다.
답변4
tmux
사용자는 이러한 모든 명령을 자신의 셸로 보낼 수 있지만 재설정은 창으로 올라가지 않습니다 tmux
.
새 tmux 창을 만듭니다.
ctrl-B c
tmux list-panes
깨진 것으로 생각되는 창의 번호(일반적으로 )를 기록해 둡니다 0
. 그렇게 부르자PPP
차단된 창 번호가 있는 tmux 창을 선택합니다. XXX
창 번호와 반드시 동일할 필요는 없습니다.
ctrl-B XXX
tmux send-key -R -t PPP
그러면 이 질문에 대한 다른 답변의 모든 명령이 표시됩니다. 이 명령은 셸에 들어가지만 작동하지 않습니다! 블라인드가 tmux send-key -R -t PPP
작동할 수도 있지만 테스트할 수는 없습니다.