专门的术语叫做ANSI Escape sequences(ANSI Escape codes),题目并不恰当,与其说是屏幕输出控制,不如说是通过bash在兼容VT100的终端上进行输出。

主要有以下类别:

Esc[Value;...;Valuem -- 控制输出效果
Esc[Line;ColumnH
Esc[Line;Columnf -- 更改光标位置

以上控制符主要通过echo进行输出,其中Esc不是三个字母,而是ASCII的ESC字符'\033'或者'\E',需要进行转义。

因为echo分为系统程序和bash的builtin等等,实现略有差异。有的echo需要使用-e参数,有的echo不支持'\E'转义,需要用户自行判别。

此外其他可以向终端输出的程序,理论上也可以使用这些控制符,例如C语言的printf,python的print等等,不再赘述。

1. 控制输出效果

Esc[Value;...;Valuem

Value控制各种效果,例如前景色、背景色、粗体等等,可以在单个 Esc[Value;...;Valuem 中组合多个Value,也可以连续使用多个 Esc[Value;...;Valuem 进行。同类别的Value,后者覆盖前者。

一个例外是 Esc[0m,Value=0并且不与其他设置相组合,此时不仅仅覆盖同组的设置,还会清除之前的所有设置。Value列表如下:

Value 含义
关闭所有效果
0 关闭所有效果
1 粗体
2 暗色
4 下划线
5 (闪烁)*
7 反相
8 隐藏(隐藏)

注:很多终端下闪烁无效

Value 含义 Value 含义
30 前景色黑色 40 背景色黑色
31 前景色红色 41 背景色红色
32 前景色绿色 42 背景色绿色
33 前景色黄色 43 背景色黄色
34 前景色蓝色 44 背景色蓝色
35 前景色品红 45 背景色品红
36 前景色青色 46 背景色青色
37 (前景色白色) 47 背景色白色

 

2. 控制光标位置

Esc[Line;ColumnH
Esc[Line;Columnf

更改光标的位置,行与列均从0开始。Line或者Column留空表示0

[Linux]屏幕输出控制的更多相关文章

  1. Linux记录屏幕输出log

    应用场景: 请专家通过Console处理问题时,保留console输出无疑是非常有意义的.一来可留着作为维护日志,二来可供事后学习. 最简洁的方式是通过系统自带的script命令去记录. $ scri ...

  2. Linux命令执行的屏幕输出内容重定向到日志文件

    摘要: 作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 快速mark一下这个命令细节,免得以后使用又忘记了 大家都知道可以用echo来输出内容到 ...

  3. Linux下输出 excel文件

    Linux下输出 excel文件 今日提供给产品需求,需excel文件,故总结要点如下: 1.默认间隔是space_20 2.修改为TAB \t _09 awk '  BEGIN { OFS=&quo ...

  4. C语言入门5-键盘的输入和屏幕输出

    C程序中的键盘输入和屏幕输出都是通过  调用输入/输出函数  实现的. 一.数据的格式化    屏幕输出 函数printf()的一般格式  (有两种) (1)第一种: printf(格式控制字符串): ...

  5. 花里胡哨,如何在Linux终端输出带有颜色的字体,将带颜色的字体赋值给变量

    背景 ​ 在日常操作Linux的情况下,总会遇到一些需求,比如说,把输出的内容用不同颜色标注出来,以达到醒目.提示的目的,那么如何在Linux终端输出带有颜色的字体呢? Linux终端输出字符颜色 ​ ...

  6. C语言程序设计(四) 键盘输入和屏幕输出

    第四章 键盘输入和屏幕输出 转义字符 \n 换行,光标移到下一行的起始位置 \r 回车(不换行),光标移到当前行的起始位置 \0 空字符 \t 水平制表 \v 垂直制表 \b 退格 \f 走纸换页 \ ...

  7. Linux远程访问及控制

    Linux远程访问及控制 目录 Linux远程访问及控制 一.SSH远程管理 1. SSH远程管理概述 2. OpenSSH概述 3. 配置OpenSSH服务端 4. sshd服务的验证方式 5. 使 ...

  8. cout输出控制——位数和精度控制

    刷到一道需要控制输出精度和位数的题目 刚开始以为单纯使用 iomanip 函数库里的 setprecision 就可以,但 OJ 给我判了答案错误,后来一想这样输出并不能限制位数只能限制有效位数. 比 ...

  9. unity中Debug输出控制

    1 需求: (1)选择在界面.console中输出,并且能够设置保存到文档 (2)控制debug是否输出,可以在debug模式下输出,release模式下不输出 2 参考: 谢谢雨松同学的博客:htt ...

随机推荐

  1. linux内核源码中两个重要的宏

    转载:http://www.cnblogs.com/skywang12345/p/3562146.html 倘若你查看过Linux Kernel的源码,那么你对 offsetof 和 containe ...

  2. [ Python - 5 ] 通过random模块生成随机字符串

    import random checkcode = '' for i in range(4): if i == random.randint(0,3): current = chr(random.ra ...

  3. js面向对象编程(一):封装(转载)

    一. 生成对象的原始模式 假定我们把猫看成一个对象,它有"名字"和"颜色"两个属性. var Cat = { name : '', color : '' } 现 ...

  4. background-clip,origin属性

    background-clip是新增属性之一,其作用是确定背景的裁剪区域. background-clip语法: background-clip:margin-box | padding-box | ...

  5. python unittest 快速入门

    import unittest def add(x, y): return x + y class TestLearning(unittest.TestCase): def setUp(self): ...

  6. 【计算机网络】http状态码

    100-199 用于指定客户端应相应的某些动作. 200-299 用于表示请求成功. 300-399 用于已经移动的文件并且常被包含在定位头信息中指定新的地址信息. 400-499 用于指出客户端的错 ...

  7. eclipse中的project 和classpath文件的具体作用

    项目->右键 Properties-> java Build Path -> source: xxx/data xxx/src 体现在 .classpath文件中: .classpa ...

  8. springboot hystrix turbine 聚合监控

    1.新建Module  eureka-monitor-client 2.父级pom中添加module 3.编写eureka-monitor-client 中的pom <?xml version= ...

  9. Android Studio查看类中所有方法和属性

    ctrl+f3效果: alt+7效果: 注意区别:虽然所有方法都有,但是顺序自己一看效果便知.一个是根据类中的顺序,另一个是根据a-z的开头字母顺序. 百度查了一下快捷键是ctrl+f12.但是自己试 ...

  10. 【转】学一点Git--20分钟git快速上手

    看到一篇不错的Git的简单入门教程,转过来给自己留个底. 原文地址:http://www.cnblogs.com/shuidao/p/3535299.html 在Git如日中天的今天,不懂git都不好 ...