고양이 / dev / urandom-깨진 터미널을 했습니까?


31

호기심에서 쉘 문자 세트가 무언가를하지 못할 때 cat /dev/urandom그것을 고칠 수있는 방법이 있습니까?


6
물론 ... 그렇게하지 마십시오! 또한 명령이 유효하지 않은 문자를 생성 할 수 있다고 생각되면을 사용하십시오 cat -A.
jnylen

2
또한, 나는 항상 cat캐릭터 세트를 어떻게 깨뜨릴 수 있는지 궁금했습니다 .
crasic

cat / bin / ls는 종종 이것을 수정합니다 (왜 그런지 모르겠습니다)
skarface

2
@crasic : 바이너리를 터미널로 보내고, 각 터미널은 특수한 caracters를 수신하여 글꼴 / 색상 등을 변경하는 방법이 있습니다. linusakesson.net/programming/tty (일명 "TTY demystified)"를 참조하십시오 . TERM 설정에 따라 다르게 반응합니다 (물론 바이트 수와 순서에 따라 다름)
Olivier Dulac

@ skarface : / bin / ls의 바이너리에 디스플레이를 고정시키는 바이트 시퀀스가 ​​끝났을 것입니다. OS, 바이너리 (즉, 어떤 버전, optino를 컴파일했는지 등) 및 터미널의 TERM 설정에 따라 달라집니다. 따라서 대신 "stty sane"을 사용하는 것이 좋습니다 ^^
Olivier Dulac

답변:


50

다음 중 하나를 시도하십시오.

stty sane

또는

reset

둘 다 작동하지 않거나 터미널이 너무 엉망이어서 명령을 입력조차 할 수 없다면 터미널을 닫고 새 터미널을 시작하는 것이 가장 좋습니다.

참고 stty sanePOSIX에 의해 정의되는 반면 reset없습니다. 즉, 일부 시스템에는 reset전체 시스템 재설정과 같이 다른 시스템이 없거나 완전히 다른 작업이 수행 될 수 있습니다. 아직없는 시스템이 없습니다 reset.

자세한 배경 정보는 "Linux 키보드 및 콘솔 하우투"장 "터미널 재설정"을 참조하십시오 .


당신이 처음 이었기 때문에 나는 당신에게 정답을주었습니다. 다른 사람에게 죄송합니다.
Pedro Montoto García

일반적으로, 임의의 바이트를 터미널에 쓰는 것은 고정하기 위해 stty sane이 필요한 상황에 놓이지 않을 것입니다. 그것은 프로그램 충돌로 인한 것 같습니다.
Random832

stty sane안전하고 적절한 방법입니다 (노인의 답변 아래 의견에 언급 된 이유로 "재설정"에 지쳤습니다)
Olivier Dulac

1
@OlivierDulac 경험을 공유해 주셔서 감사합니다. resetPOSIX에서 정의하지 않은 것을 연구하고 배웠습니다 .
lesmana

1
@Iain 나는 @OlivierDulac이 FUD를 퍼 뜨리고 있다고 생각하지 않습니다. reset"안전하지 않은" 참조 는 POSIX에 의해 정의되지 않은 사실입니다. @OlivierDulac이 FUD를 퍼 뜨리고있는 FUD 퍼짐을 중단하십시오.
lesmana

20

reset 명령을 사용해보십시오 .


4
매뉴얼 페이지를 링크하여 좋은 RTFM을 암시 적으로 권장합니다. 당신은 오늘 나의 영웅입니다. 감사합니다.
Luke404

이것은 많은 유닉스에서 작동합니다 ... 그러나 경고의 단어 :주의하십시오 : 일부 시스템 (예 : 다른 OS 또는 Linux의 다른 배포판)에서는 시스템 재설정을 시작할 수 있습니다 (예 : 일부 버전의 solaris). 따라서 시스템을 재설정하는 것, 즉 재부팅을 강제로 수행하는 것 (적절한 종료없이) ... (이는 다른 명령에도 적용됩니다. 예를 들어 'tar'와 같은 일부 접두어는 "/"접두사를 제거하지 않으므로 중요한 파일 등을 덮어 쓸 수 있습니다. 항상 사용하려는 명령이 시스템에서 어떻게 작동하는지 알고 있어야합니다. 사용).
올리비에 Dulac에게

1
@OlivierDulac; OP는 그의 질문에 리눅스 태그를 달았으므로 리눅스 중심의 답변을 얻었지만 문제없이 Solaris를 포함한 다른 유닉스 시스템에서 작동 할 것입니다. 나는 15 년간 솔라리스와 함께 일했다! SPARC Open Boot Prom reset 명령과 userland reset (1) 명령을 혼동하고 있습니다. ok 프롬프트에서 재설정을 실행하면 손상된 터미널에서 복구되지 않을 수 있습니다.
user9517은 GoFundMonica

@lain : 아, 이것은 실제로 이것 일 수 있습니다 (Open Boot prom). 그러나 여전히 일부 환경에서는 "재설정"이 호스트 재설정과 연결되어 있음을 의미하므로 사람들이 (리눅스에서 "대부분"인 경우에도) "안전한" "stty sane"명령을 배우거나 사용하는 것을 선호합니다. 그것은 "재설정"만큼 모호하지 않습니다.) 이것이 독자들에게 이것에 대해 경고하는 이유입니다.
Olivier Dulac

@OlivierDulac Solaris, CentOS, Ubuntu, OpenBSD는 모두 tset으로 재설정됩니다. 잘못 기억하고있는 것 이외의 잘못된 정보에 대한 증거를 제공하십시오. OBP는 호스트 OS가 아니므로 계산에 포함되지 않습니다.
user9517은 GoFundMonica

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.