利用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--
利用paramiko的demo_simple.py进行日志记录时遇到的特殊字符的更多相关文章
- python中利用logging包进行日志记录时的logging.level设置选择
之前在用python自带的logging包进行日志输出的时候发现有些logging语句没有输出,感到比较奇怪就去查了一下logging文档.然后发现其在设置和引用时的logging level会影响最 ...
- EF利用重写SaveChanges()方法实现 审计日志记录
先上一段最近项目中的代码,此代码可以放到自己项目中的dbContext中 public override Task<int> SaveChangesAsync() { List<Au ...
- RMS Server打开或关闭日志记录
原文: https://technet.microsoft.com/zh-cn/library/cc732758 在 Active Directory Rights Management Servic ...
- IIS 之 启用日志记录
如何为网站启用日志记录或 在 Microsoft Internet Information Services (IIS) 6.0 中,在 IIS 5.0 中,并在 IIS 4.0 中的FTP 站点.可 ...
- 利用AOP与ToStringBuilder简化日志记录
刚学spring的时候书上就强调spring的核心就是ioc和aop blablabla...... IOC到处都能看到...AOP么刚开始接触的时候使用在声明式事务上面..当时书上还提到一个用到ao ...
- C# 利用Log4Net进行日志记录
概述 本文主要简单说明如何使用Log4Net进行日志记录,在程序开发过程中记录日志的优点: 它可以提供应用程序运行时的精确环境,可供开发人员尽快找到应用程序中的Bug: 一旦在程序中加入了Log 输出 ...
- [置顶] 利用Global.asax的Application_Error实现错误记录,错误日志
利用Global.asax的Application_Error实现错误记录 错误日志 void Application_Error(object sender, EventArgs e) { // 在 ...
- wcf利用IDispatchMessageInspector实现接口监控日志记录和并发限流
一般对于提供出来的接口,虽然知道在哪些业务场景下才会被调用,但是不知道什么时候被调用.调用的频率.接口性能,当出现问题的时候也不容易重现请求:为了追踪这些内容就需要把每次接口的调用信息给完整的记录下来 ...
- Python开发之日志记录模块:logging
1 引言 最近在开发一个应用软件,为方便调试和后期维护,在代码中添加了日志,用的是Python内置的logging模块,看了许多博主的博文,颇有所得.不得不说,有许多博主大牛总结得确实很好.似乎我再写 ...
随机推荐
- SqueezeNet:AlexNet-level Accuracy with 50x fewer parameters and less than 0.5Mb model size
- Fire modules consisting of a 'squeeze' layer with 1*1 filters feeding an 'expand' layer with 1*1 a ...
- 新的云主机 python 创建虚拟环境
1.为什么要搭建虚拟环境? 问题:如果在一台电脑上, 想开发多个不同的项目, 需要用到同一个包的不同版本, 如果使用上面的命令, 在同一个目录下安装或者更新, 新版本会覆盖以前的版本, 其它的项目就无 ...
- Linux虚拟机安装 nginx (nginx1.9.9)
1.安装基础环境包(如果已安装,可更新) yum -y :自动选择y yum -y install openssl* yum -y install libjpeg libjpeg-devel libp ...
- Unity性能优化专题---腾讯牛人分享经验
这里从三个纬度来分享下内存的优化经验:代码层面.贴图层面.框架设计层面. 一.代码层面. 1.foreach. Mono下的foreach使用需谨慎.频繁调用容易触及堆上限,导致GC过早触发,出现卡顿 ...
- winform datagridview数据显示不全
如果是内容是汉字,列的宽度设置不够时会自动换行,如果是数字和字母,是不会自动换行的,要把列宽设得足够,整个表格显示不全时,下面会有横向滚动条,如果看不见可能是高度超出了母控件的高度,设得低点就看见了
- sass的基本语法与使用
一.简介 SASS是一种CSS的开发工具,提供了许多便利的写法,大大节省了设计者的时间,使得CSS的开发,变得简单和可维护.以上都是百度的,哈哈: 其实个人认为sass就是一套提高编写css效率的规则 ...
- 线性可分SVM完全推导过程
- 简单的IDEA破解到2099年
原文链接:https://www.cnblogs.com/duende99/p/10038640.html 破解方式有2种,第一种比较方便 第一种比较方便1.使用注册码破解:http://idea.l ...
- jQuery EasyUI Datagrid组件默认视图分析
在Datagrid基础DOM结构的一文中,我对Datagrid组件的骨架做了很详细的描述.有了骨架还并不完整,还得有血有肉有衣服穿才行.强大的Datagrid组件允许我们自己定义如何在基础骨架上长出健 ...
- promise的一个简单易懂实例
Promise: <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...