바이너리를 캡처한 후 해시 기호(#)는 파운드 기호(£)가 됩니다.

바이너리를 캡처한 후 해시 기호(#)는 파운드 기호(£)가 됩니다.

이것이 내 bash 프롬프트의 모습입니다.

오래된 bash 프롬프트

그런 다음 나는 그다지 똑똑하지 않은 일을 했습니다 cat /bin/bash. 이제 내 bash 프롬프트는 파운드 기호(#) 대신 파운드 기호(£)를 사용하여 다음과 같습니다. 파일 내의 해시 기호에도 영향을 미칩니다. 여기를 참조하세요.

파운드 로그인 파일

이것을 복원하는 방법을 아시나요?

편집하다:이 질문은 "Bash 프롬프트를 어떻게 변경하나요?"라고 묻는 것이 아니라 "Bash 프롬프트가 저절로 변경되었습니다. 어떻게 복원할 수 있나요?"라고 묻습니다.

충분히.bashrc관심있는 분들을 위해.

답변1

터미널은 다양한 문자 시퀀스를 제어 명령으로 받아들이고 실행합니다. 예를 들어 모든 커서 이동은 이를 사용하여 수행됩니다. 일부 코드는 색상을 설정하거나 터미널에 대체 문자 집합을 사용하도록 지시하는 등 영구적인 변경을 수행합니다. 실행 파일 및 기타 바이너리에는 이러한 명령을 나타내는 바이트가 포함될 가능성이 높으므로 바이너리를 터미널에 덤프하면 불쾌한 부작용이 발생할 수 있습니다. 예를 들어 참조하십시오.여기일부 제어 코드의 경우.

역사적 배경은 초기에 터미널이 꽤 컸다는 것입니다.화면과 키보드가 있는 멍청한 장치, 직렬 포트를 통해 실제 컴퓨터에 연결됩니다. 그 전에는 키보드가 있는 프린터였습니다. 명령 바이트에서 데이터 바이트를 분리하는 프로토콜이 많지 않으므로 명령은 터미널에 "인라인"으로 전송됩니다. (아니면 이스케이프 코드와 제어 문자가 프로토콜입니다.) 시스템이 오늘날 설계되었다면 데이터와 명령이 더 명확하게 구분될 것이라고 생각할 수도 있습니다.

터미널 창을 닫거나 에뮬레이터를 종료하는 대신 다음 명령을 사용할 수 있습니다.reset주문하다, 유사한 명령을 보내 터미널을 다시 일반 기본값으로 재설정합니다.

해시가 변경되는 원인이 정확히 무엇인지 모르겠습니다. (그러나 @Random832는 그렇습니다.그들의 대답을 봐.) 저는 모든 문자를 선 그리기 문자 모양으로 변경하는 "대체 문자 집합"에 더 익숙합니다. 이런 일이 발생해도 키보드 입력은 대개 바뀌지 않기 때문에 resetEnter문자가 쓰레기로 나타나거나 전혀 나타나지 않더라도 여전히 쓰기가 작동합니다. (프롬프트가 여러 줄로 바뀌는 것에 비해 효과는 미미합니다.)

답변2

기록을 위해 이런 일이 발생하는 이유와 터미널을 닫지 않고 문제를 해결하는 방법에 대한 답변( reset실패한 경우):

많은 단말기에서 기능으로 지원됨VT220그들은 터미널을 시뮬레이션하고 있습니다.국가 대체 문자 세트기반으로ISO 646그리고ISO 2022. 특히, 어떤 이유로 다른 문자 세트가 지원되지 않더라도 파운드 통화 기호가 ASCII 숫자 기호와 동일한 위치에 있는 영국 문자 세트를 지원하는 것이 일반적입니다.

따라서 바이너리 파일을 터미널에 인쇄하면 우연하게도 시퀀스 ESC ( A(또는 아마도 ESC ) A^N)가 터미널에 출력됩니다. 이 작업은 일반 상태로 설정하는 시퀀스를 인쇄하여 수동으로 취소할 수 있습니다.

printf '\e(B\e)0\x0f'

답변3

터미널을 닫고 새 터미널을 엽니다.

답변4

stty sanereset이 문제 도 해결된 것 같습니다.

관련 정보