|  
 
 
当konsole在其显示的文本流中看到一个ESC字符时, 它会非常仔细地查看后面几个字符.如果后面的前三个字符是[2j, 该序列命令konsole执行清屏操作. 
我有疑问的是为什么不能直接在konsole中按下ESC+[2j这4个字符.我现在知道需要通过另外某些途径才行.比如在一个C文件中,或者是按键绑定中,或者是linux的某些配置文件中.甚至不一定是ESC,连\r这种转义序列也是. 但这些我都说不清为什么.谁能具体解释下?  
其实linux terminal是支持的,不过输入这些special control char比较麻烦而已 不怎么用konsole,用putty给楼主举个例子,我的term是linux 
$infocmp #       Reconstructed via infocmp from file: /usr/share/terminfo/l/linux linux|linux console,         am, bce, ccc, eo, mir, msgr, xenl, xon, ...         clear=\E[H\E[J, cnorm=\E[?25h\E[?0c, cr=^M, 
所以在这个term里面,clear screen的sequence 是 "escape + [ + H + escape + [ + J" , \E 表示 escape键 
如果我想在shell里面输入这个sequence来达到clear screen的效果,有几种办法 a) 直接执行clear,这个util会输出这串sequence到当前term      如果检查clear的输出结果就会看到一样的sequence      $clear |od -tx1      0000000 1b 5b 48 1b 5b 4a      0000006 b) 用echo的 -e 模式来输入      /bin/echo -e "\x1b\x5b\x48\x1b\x5b\x4a"      注意用/bin/下面的echo而不是shell builtin的echo c)  楼主所要求的raw 输入, 是用ctl-v来实现的, 键盘序列为       ctrl-V + escape + [ + H + ctrl-V + escape + [ + J + enter       会看到类似这样的显示        $^[[H^[[J 
 |