最近在做iOS上的SSH终端项目,主要是在手机上远程连接Unix系统,并进行一些简单的指令操作,类似于SecureCRT;今天想总结一下这个项目中遇到的新东西----ANSI escape code。

  摘抄https://en.wikipedia.org/wiki/ANSI_escape_code一句话简单概括:In computingANSI escape codes (or escape sequences) are a method using in-band signaling to control theformatting, color, and other output options on video text terminals. To encode this formatting information, certain sequences of bytes are embedded into the text, which the terminal looks for and interprets as commands, not ascharacter codes.简单的说,一般我们接触比较多得指令终端(terminal),比如:Linux、Mac和Unix上的指令终端,多是采用ANSI控制码控制显示文本的格式和进行一些控制操作。

  终端传过来的数据是包含ANSI控制码的,需要对其进行解码才能将文本的颜色和字体等格式显示出来。于是在github上寻找一番,果然找到了,这里不得不赞一下开源精神的伟大,谢谢那些为开源而奉献的coders。这里需要注意的一点是有些开源项目或许时间久远,作者没有更新,或许是和你的需求不一致,不能直接简单粗暴的直接使用时,需要我们改一些东西,我觉得这是学习的好机会,可以把源码阅读一遍,然后做一些符合自己需求的修改。

  总结两点:第一,这篇文章主要介绍了处理终端的文本格式你需要了解的是ANSI escape code,github上相关解码的开源项目;第二,感想,写博客必备结尾,嘿嘿~这种项目之前做的比较少,一般做的都是iOS主流的一些功能,幸亏大学的时候接触了点Linux开发的东西,要不连基本的Linux终端指令都不知道是什么,那就有点困难了。但是,困难越多,要学习的东西也越多,不仅积累了知识,同时在处理问题的思路上也会不断的成熟,能力自然会得到提升,虽然过程很受虐,但是感觉倍儿爽;PS:博客第一次写,水平有限,上面的内容若有偏颇,欢迎指正

ANSI escape code的更多相关文章

  1. ANSI转义代码(ANSI escape code)

    ANSI escape code - Wikipedia linux 输出绿色的✓TRUE,红色的✗FALSE : echo -e "\x1B[1;32m✓TRUE \x1B[0mXXX&q ...

  2. 让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制

    各种操作系统的控制台都支持 ANSI 转义序列(ANSI Escape Code).使用转义序列,可以对控制台进行很多额外的定制,例如修改颜色.修改标题栏,将文字添加下划线等. 当然,.NET 已经帮 ...

  3. GO语言的开源库

    Indexes and search engines These sites provide indexes and search engines for Go packages: godoc.org ...

  4. shell之echo与printf和颜色

    在用户的bashrc中添加一行export来修改提示符.

  5. Spring Boot 启动加载数据 CommandLineRunner

    实际应用中,我们会有在项目服务启动的时候就去加载一些数据或做一些事情这样的需求. 为了解决这样的问题,Spring Boot 为我们提供了一个方法,通过实现接口 CommandLineRunner 来 ...

  6. Go语言(golang)开源项目大全

    转http://www.open-open.com/lib/view/open1396063913278.html内容目录Astronomy构建工具缓存云计算命令行选项解析器命令行工具压缩配置文件解析 ...

  7. [转]Go语言(golang)开源项目大全

    内容目录 Astronomy 构建工具 缓存 云计算 命令行选项解析器 命令行工具 压缩 配置文件解析器 控制台用户界面 加密 数据处理 数据结构 数据库和存储 开发工具 分布式/网格计算 文档 编辑 ...

  8. Linux - 简明Shell编程12 - 定制输出(ColorOutput)

    脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 #!/bin/bash echo -e "\ ...

  9. Spring Boot 2.0 教程 - 深入SpringAplication

    原文连接:https://www.codemore.top/cates/Backend/post/2018-05-20/spring-boot-SpringApplication 可以通过Spring ...

随机推荐

  1. 理解Java机制最受欢迎的8幅图

    原文链接:  Top 8 Diagrams for Understanding Java 翻译人员: 铁锚 翻译时间: 2013年10月29日 世间总是一图胜过千万言! 下面的8幅图来自于 Progr ...

  2. 《STL源码剖析》环境配置

    首先,去侯捷网站下载相关文档:http://jjhou.boolan.com/jjwbooks-tass.htm. 这本书采用的是Cygnus C++ 2.91 for windows.下载地址:ht ...

  3. 由 char()函数返回的 ASCII字符集中的功能/控制字符

    如果在excel下的单元格写入公式:=“国际经济与贸易”&CHAR(10)&"401班"&CHAR(10)&"A组".则出现: ...

  4. aix ipcs使用说明

    ipcs: -q   Writes information about active message queues -o             Writes the following usage ...

  5. 「Poetize9」升降梯口

    3056: 升降梯口 Time Limit: 2 Sec  Memory Limit: 128 MBSubmit: 43  Solved: 42[Submit][Status] Description ...

  6. SQL Server判断对象是否存在 (if exists (select * from sysobjects )(转)

    1 判断数据库是否存在Sql代码 if exists (select * from sys.databases where name = ’数据库名’)    drop database [数据库名] ...

  7. 部署lvs-rrd监控LVS

    1.安装rrdtool .tar.gz cd rrdtool- ./configure -prefix=/usr/local/rrdtool make make instal 安装完毕后将rrdtoo ...

  8. 数据结构(线段树):SPOJ GSS3 - Can you answer these queries III

    GSS3 - Can you answer these queries III You are given a sequence A of N (N <= 50000) integers bet ...

  9. 数论(毕达哥拉斯定理):POJ 1305 Fermat vs. Pythagoras

    Fermat vs. Pythagoras Time Limit: 2000MS   Memory Limit: 10000K Total Submissions: 1493   Accepted: ...

  10. DFS hdu 1016

    http://acm.hdu.edu.cn/showproblem.php?pid=1016 #include <iostream> using namespace std; int a[ ...