쉘 명령 기록에 인쇄할 수 없는 문자가 실수로 침입하는 것을 방지하고 복구하는 방법은 무엇입니까?

쉘 명령 기록에 인쇄할 수 없는 문자가 실수로 침입하는 것을 방지하고 복구하는 방법은 무엇입니까?
$ history
...
  242  yum whatprovides */bin/xdotool
  243  yum provides */bin/xdotool
  244  yum provides xdotool
  245  yum whatprovides xdotool
  246  yum whatprovides xdotool

프롬프트에 따르면:

up

[root@localhost Downloads]# yum whatprovides xdotool

up

[root@localhost Downloads]# yum whatprovidesxdotool

up

[root@localhost Downloads]# yumtprovidesxdotool

up

[root@localhost Downloads]# yumtprovides*/bin/xdotool

up

[root@localhost Downloads]# yumwhattprovides*/bin/xdotool

첫 번째 호출된 명령에는 (유니코드 상자 문자)로 표시되는 인쇄할 수 없는 문자가 있는데 , 이는 내 터미널에 표시되지 않고 문자 공간을 차지하지 않습니다. 내 터미널에는 다음이 표시됩니다.

yum whatprovides xdotool

그게 아니야 :

yum whatprovides ☐xdotool

사용 cat -A:

$ history | cat -A
...
 246  yum whatprovides M-BM-^Vxdotool $

저는 Windows 10에서 Cygwin을 실행하고 mintty있으며 셸을 통해 Fedora 29에 연결되어 있습니다.

저는 시스템 기본값을 사용하고 있습니다.

$ echo $PS1
[\u@\h \W]\$

나는 이것이 다음과 관련이 있다고 생각합니다.

https://unix.stackexchange.com/a/31643/81989

PS1에 있을 때 bash는 기록을 스크롤할 때 올바르게 다시 그릴 수 있도록 인쇄된 문자 수를 계산합니다. 이것이 bash에 [ 및 ] 특수 문자가 있는 이유입니다. 이는 bash에 포함된 문자를 인쇄할 수 없다는 것을 알려주고 필요한 경우 프롬프트를 다시 그리는 방법을 bash가 알아내는 데 도움이 됩니다.

내 기록에 있는 인쇄할 수 없는 문자로 인해 오류가 발생했다고 생각합니다.

나는 이런 일이 어떻게, 왜 일어나는지 이해하고 싶지만 다음 사항도 알고 싶습니다.

  • 어떤 옵션을 사용할 수 있나요? 기록을 지우지 않고 복구할 수 있나요?
  • 앞으로 이런 일이 발생하지 않도록 명령 기록에서 이러한 문자를 삭제하도록 Bash를 구성할 수 있습니까?
  • 문제의 캐릭터가 누구인지 알 수 있는 방법이 있나요?

그런데, 인쇄할 수 없는 문자를 명령 기록에 보관하면 어떤 이점이 있나요? 이 문제에 직면할 때마다 항상 번거로운 일입니다.

관련 정보