专门的术语叫做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. 远程编写+调试服务器上的Python程序

    原帖参见(需自备梯子):https://webcache.googleusercontent.com/search?q=cache:1htdR2EXj5wJ:https://www.digitaloc ...

  2. 1.flume概述

    我们的web服务器等等每天会产生大量的日志,我们要把这些日志收集起来,移动到hadoop平台上进行分析. 那么如何移动这些数据呢?一种方法是通过shell cp到hadoop集群上,然后通过hdfs ...

  3. python 多进程multiprocessing 模块

    multiprocessing 常用方法: cpu_count():统计cpu核数 multiprocessing.cpu_count() active_children() 获取所有子进程 mult ...

  4. [ Python -1 ] 简易购物车程序

    练习: 1. 要求用户输入总资产,例如:2000 2. 显示商品列表,让用户根据序号选择商品,加入购物车 3. 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功. goods = [{' ...

  5. 【 HAProxy 】学习笔记

    一.haproxy的功能: HAProxy vs LVS        HAProxy支持tcp和http两种代理模式,而lvs仅支持tcp代理模式        HAProxy相比LVS的使用要简单 ...

  6. BAT 前端开发面经 —— 吐血总结

    更好阅读,请移步这里 聊之前 最近暑期实习招聘已经开始,个人目前参加了阿里的内推及腾讯和百度的实习生招聘,在此总结一下 一是备忘.总结提升,二是希望给大家一些参考 其他面试及基础相关可以参考其他博文: ...

  7. 《Java编程思想》笔记 第十章 内部类

    1.创建内部类对象 创建内部类对象(相当于new内部类对象) 外围类对象.new 内部类( ). 创建内部类对象一种方法是 外围类有一个方法返回内部类对象. 没有外围类对象就不能创建内部类对象,因为内 ...

  8. Selenium2+python自动化22-发送各种类型附件邮件【转载】

    前言 最近一些小伙伴,在搞邮箱的事情,小编于是去折腾了一下!总结了一些干货,与大家分享一下!速来,抱大腿,我要开车了! 基本思路就是,使用MIMEMultipart来标示这个邮件是多个部分组成的,然后 ...

  9. 非负权值有向图上的单源最短路径算法之Dijkstra算法

    问题的提法是:给定一个没有负权值的有向图和其中一个点src作为源点(source),求从点src到其余个点的最短路径及路径长度.求解该问题的算法一般为Dijkstra算法. 假设图顶点个数为n,则针对 ...

  10. AC日记——Crane poj 2991

    POJ - 2991 思路: 向量旋转: 代码: #include <cmath> #include <cstdio> #include <cstring> #in ...