利用paramiko的demo_simple.py进行日志记录时遇到的特殊字符

特殊字符列表:

回车  "\r"  "\x13"

响铃  "\x07"

换行  "\n"  "\x10"  "\r\n"  "\x13\x10"

Tab  "\t"  "\x09"

删除  键盘产生事件:"\x08"  ,也有时候删除键事件是: “\x7f”  服务端返回:”\x08\x1b[K“

跟终端设置有关:

>>> print("abc\x08\x1b[Khaha")
abhaha

以下还有待研究,移动次数其实不产生实际效果,主要是移动后输入或删除了数据等。

以下都是先输入了一串字符后:

左移一次:  键盘产生三次事件:"\x1b" “["  "D"  , 服务器端返回"\x08"

右移一次:  键盘产生事件:"\x1b"   “["  "C"  , 服务器端返回"\x08"

左移移一次, 键盘产生:“\x1b"  "["   "D"  ,服务器返回 “\x08",    再右移依次  键盘产生   "\x1b" ”["  "C"   服务器返回返回 “\x1b[C ”  , ,  再回车,服务器返回 ”\r\n“

左移一次, 键盘产生: "\x1b" "[" "D',服务器返回”\x08"; 再左移一次,键盘产生:"\x1b" "["  "D",服务器返回 “\x08”; 再右移一次,键盘产生: "\x1b"  "[" "C",服务器返回 “\x1b[C”  ;  再右移一次,

键盘产生 "\x1b"  "[" "C",服务器返回 “\x1b[C”  ; 再输入 a ,键盘产生  “a”,服务器返回:“a”  ; 再回车,键盘产生:“\r",服务器返回:“\r\n xxxxxx"

 

 

实际情况:

先输入:ifconfg ,然后 左移一次有输入"i"  键盘产生事件:"\x1b[Di"    服务端返回:”\x08ig\x08"

>>> print("ifconfg\x08ig\x08")
ifconfig

先输入ifconfg,然后左移两次,再右移一次,输入i,  键盘产生事件:"\x1b[D\x1b[D\x1b[Ci"    服务器端返回\x08\x08\1b[Cig\x08

>>> print("ifconfg\x08\x08\x1b[Cig\x08")
ifconfig

左移两次然后输入a,这时会覆盖f,但是g还在: 

 

>>> print("ifconfg\x08\x08a\x08")
ifconag

 

比如输入ls,服务器端返回输入显示不全,显示--More--时,服务器端返回的是:   \r\n--More--

posted @ 2016-07-05 19:18  电神  阅读(1178)  评论(0编辑  收藏  举报