Bash字符转换

时间:2016-02-29 21:48:45

标签: linux bash character-encoding

这是我终端的最新消息。

                                                          E┬$?: N⎺ ⎽┤c▒ °☃┌e ⎺⎼ d☃⎼ec├⎺⎼≤
┴▒±⎼▒┼├@└e⎽⎺⎽:·/de┴e┌⎺⎻└e┼├/⎽⎻┌☃├├e⎼$ └▒┼ └▒⎼▒├▒⎺┼
N⎺ └▒┼┤▒┌ e┼├⎼≤ °⎺⎼ └▒⎼▒├▒⎺┼
See '└▒┼ 7 ┤┼d⎺c┤└e┼├ed' °⎺⎼ ▒e┌⎻ ┬▒e┼ └▒┼┤▒┌ ⎻▒±e⎽ ▒⎼e ┼⎺├ ▒┴▒☃┌▒b┌e↓
┴▒±⎼▒┼├@└e⎽⎺⎽:·/de┴e┌⎺⎻└e┼├/⎽⎻┌☃├├e⎼$ ⎻☃┼± ±⎺±⎺┌e↓c⎺└
PING ±⎺±⎺┌e↓c⎺└ (216↓58↓217↓36) 56(84) b≤├e⎽ ⎺° d▒├▒↓
64 b≤├e⎽ °⎼⎺└ de┼▮3⎽1▮↑☃┼↑°36↓1e1▮▮↓┼e├ (216↓58↓217↓36): ☃c└⎻_⎽e─=1 ├├┌=63 ├☃└e=29↓▮ └⎽
64 b≤├e⎽ °⎼⎺└ de┼▮3⎽1▮↑☃┼↑°36↓1e1▮▮↓┼e├ (216↓58↓217↓36): ☃c└⎻_⎽e─=2 ├├┌=63 ├☃└e=32↓4 └⎽
64 b≤├e⎽ °⎼⎺└ de┼▮3⎽1▮↑☃┼↑°36↓1e1▮▮↓┼e├ (216↓58↓217↓36): ☃c└⎻_⎽e─=3 ├├┌=63 ├☃└e=27↓4 └⎽
64 b≤├e⎽ °⎼⎺└ de┼▮3⎽1▮↑☃┼↑°36↓1e1▮▮↓┼e├ (216↓58↓217↓36): ☃c└⎻_⎽e─=4 ├├┌=63 ├☃└e=25↓9 └⎽
^C
↑↑↑ ±⎺±⎺┌e↓c⎺└ ⎻☃┼± ⎽├▒├☃⎽├☃c⎽ ↑↑↑
4 ⎻▒c┐e├⎽ ├⎼▒┼⎽└☃├├ed← 4 ⎼ece☃┴ed← ▮% ⎻▒c┐e├ ┌⎺⎽⎽← ├☃└e 32▮3└⎽
⎼├├ └☃┼/▒┴±/└▒│/└de┴ = 25↓927/28↓721/32↓426/2↓415 └⎽
┴▒±⎼▒┼├@└e⎽⎺⎽:·/de┴e┌⎺⎻└e┼├/⎽⎻┌☃├├e⎼$ E┴e⎼≤├▒☃┼± ☃⎽ ☃┼ ▒ ┼e┬ ┌▒┼±┤▒±e
E┴e⎼≤├▒☃┼±: c⎺└└▒┼d ┼⎺├ °⎺┤┼d
┴▒±⎼▒┼├@└e⎽⎺⎽:·/de┴e┌⎺⎻└e┼├/⎽⎻┌☃├├e⎼$ ┌⎽
▒⎻⎻↓┘⎽  c⎺┼°☃±  D⎺c┐e⎼°☃┌e  d⎺c┐e⎼☃≥e↓⎽▒  ┼⎺de_└⎺d┤┌e⎽  ⎻▒c┐▒±e↓┘⎽⎺┼  Re▒d└e↓└d  README↓└d
┴▒±⎼▒┼├@└e⎽⎺⎽:·/de┴e┌⎺⎻└e┼├/⎽⎻┌☃├├e⎼$

现在,我知道cat二进制文件会导致终端发生各种疯狂的事情。但我以前从未问过这件事。我试图找出究竟会导致这种角色转换的原因。

一切似乎都能正常运作。我无法读取输出,但ping命令产生的行为与我期望的一样。 ls具有相同的颜色编码。自定义脚本具有相同的输出(刚刚转换)。

什么字符序列会导致这种一致的转换?

输入reset让我恢复理智。

我得到了character transformation via console codes吗?如果是这样,我可以用这个恶作剧吗? (alias ls=ls #+some character transformation)。注意:我不希望这可能会ls变成rm -rf或其他任何恶意内容。

1 个答案:

答案 0 :(得分:2)

这是由输入终端的smacsenter_alt_charset_modeterminfo序列引起的。它可以使用rmacsexit_alt_charset_mode)terminfo序列切换回来。

echo "$(tput rmacs)"