Linux的TERM环境变量

程序或者脚本驱动登录到Linux系统之后。执行命令或者脚本,其返回值中往往出现格式异常。原因则在于虚拟终端类型的高级特性,例如:“颜色、高亮、移动光标”等。那么,是否禁掉这些高级特性呢?可以选择dumb类型,设置TERM=dumb。

注意:需要说明一点,dumb对于交互式访问不友好。终端不具备诸如清屏或移动光标等高级功能。TERM=dumb 是一个非常基础的终端类型,它仅支持最基本的文本输出,而不支持ANSI转义序列,这些序列通常用于控制终端的格式、颜色、光标位置等。

TERM 环境变量在Unix和类Unix系统中用于指定终端模拟器的类型。这个变量告诉运行的应用程序你的终端支持哪些特性,如颜色、光标移动、特殊键盘键等。不同的TERM值对应不同的终端类型,它们有不同的能力和兼容性。

以下是一些常见的TERM值及其含义:

  1. ansi

    • 最基础的ANSI兼容终端,支持基本的颜色和文本格式化。
  2. vt100

    • VT100是VT系列终端的一种,是早期的图形终端之一。它支持基本的ANSI转义序列,包括文本颜色和光标控制。
  3. xterm

    • Xterm是X Window System下的一个终端模拟器,比vt100更高级,支持更多特性,如鼠标事件、窗口标题更改等。
  4. xterm-color

    • xterm的一个变体,支持16色输出。
  5. xterm-256color

    • 支持256种颜色的xterm变体,常用于需要更丰富颜色的场景。
  6. screen

    • 用于screen会话的终端类型,screen是一个全屏窗口管理器,可以在单个终端会话中运行多个独立的shell会话。
  7. screen-bce

    • screen的一个变体,支持背景颜色擦除(Background Color Erase)。
  8. linux

    • 用于Linux控制台,通常支持基本的ANSI颜色和一些特殊功能,但可能不支持所有xterm特性。
  9. gnome-terminalkonsoleterminator 等:

    • 这些是特定于桌面环境的终端模拟器,如Gnome Terminal、Konsole和Terminator,它们通常支持广泛的ANSI特性和一些额外的扩展。
  10. dumb

    • 这个值告诉应用程序终端不支持任何花哨的功能,只支持最基本的文本输出。通常用于管道或脚本中,避免颜色代码或控制序列的干扰。

当一个程序读取TERM变量时,它会根据这个值来确定是否发送控制序列,以及发送哪些控制序列。例如,如果你的TERM设置为xterm-256color,那么支持ANSI颜色的应用程序将发送256色的控制序列;如果设置为dumb,则程序不会发送任何控制序列,只发送纯文本。

正确的TERM值对于确保应用程序正确显示至关重要,特别是在使用复杂的终端特性时。如果不确定应该使用哪个TERM值,通常可以将其设置为你的终端模拟器报告的值,这通常可以在终端的首选项或属性设置中找到。

上面列举的TERM类型也不全,可以去到如下链接了解:

https://invisible-island.net/ncurses/terminfo.src.html#tic-dumb

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/50333.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

丹东纵横文化传媒:创新引领,广告服务再升级

近日,丹东市振兴区的丹东纵横文化传媒有限公司再次传来振奋人心的消息,这家以互联网和相关服务为主的新兴企业,在广告设计与传播领域实现了重大突破,进一步巩固了其在行业内的领先地位。 【广告服务全面升级,引领市场新风尚】 据丹东纵横文化传媒有限公司最新发布的信息显示,公…

掌握AJAX技术:从基础到实战

文章目录 **引言****1. 什么是AJAX?****2. AJAX的工作原理**AJAX 示例使用 Fetch API 实现 AJAX **3. 如何在项目中使用AJAX****4. 处理AJAX请求的常见问题****5. AJAX与JSON的结合****6. 使用AJAX框架和库****7. 实战:创建一个动态表单****8. AJAX中的事…

spine to unity-2.利用边缘框实现实时碰撞检测

主要讲spine的边缘框,在unity中,实现实时碰撞检测。其中使用的素材,是我为独立游戏ink制作的动画。独立游戏ink的开发日志,在小红薯持续更新中。spine工具包的安装,下载请参考spine to unity-1spine BoundingBoxFollow…

Doris全方位教程+应用实例

Impala性能稍领先于presto,但是presto在数据源支持上非常丰富,包括hive、图数据库、传统关系型数据库、Redis等 缺点:这两种对hbase支持的都不好,presto 不支持,但是对hdfs、hive兼容性很好,其实这也是顺理成章的&…

mac怎样清理photoshop垃圾的方法 ps清理缓存和垃圾 苹果电脑暂存盘已满怎么清理

很多使用过ps,尤其是Adobe全家桶的小伙伴会发现,这些软件占用缓存很多,而且随着使用时间的增长,缓存也会越多,并不会自动清理。那么mac系统怎么清理ps暂存盘呢?mac又该怎么最高效清理磁盘空间呢&#xff1f…

Linux嵌入书学习—数据结构——栈(seqstak)

一、栈; 定义: 是限定仅在表尾(栈顶)进行插入和删除操作的线性表 栈又称为 后进先出(Last In First Out) 的线性表,简称 LIFO 结构 栈顶(Top) 栈顶是栈中允许进行添加&…

RuoYi基于SpringBoot+Vue前后端分离的Java快速开发框架学习_2_登录

文章目录 一、登录1.生成验证码2.验证码作用1.大体流程2.代码层面(我们都是从前端开始看起) 一、登录 1.生成验证码 基本思路: 后端生成一个表达式,例如34?7,显而易见后面是答案截取出来题干和答案把题干11?变成图片,变成流&a…

[C++进阶]多态的概念、定义与实现

多态,顾名思义,即多种形态。具体来说,就是不同对象执行同一行为而产生不同的结果。 一、多态的概念 多态的概念:通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生…

神经网络与注意力机制的权重学习对比:公式探索

神经网络与注意力机制的权重学习对比:公式探索 注意力机制与神经网络权重学习的核心差异 在探讨神经网络与注意力机制的权重学习时,一个核心差异在于它们如何处理输入数据的权重。神经网络通常通过反向传播算法学习权重,而注意力机制则通过学…

LLMs之Llama 3.1:Llama 3.1的简介、安装和使用方法、案例应用之详细攻略

LLMs之Llama 3.1:Llama 3.1的简介、安装和使用方法、案例应用之详细攻略 导读:2024年7月23日,Meta重磅推出Llama 3.1。本篇文章主要提到了Meta推出的Llama 3.1自然语言生成模型。 背景和痛点 >> 过去开源的大型语言模型在能力和性能上一…

Kylin Cube构建日志分析:洞察大数据构建过程的窗口

Kylin Cube构建日志分析:洞察大数据构建过程的窗口 Apache Kylin是一款为Hadoop优化的开源分布式分析引擎,它通过构建数据立方体(Cube)来实现对大数据的快速查询。在维护和优化Cube的过程中,构建日志分析是一个重要的…

Docker 常用命令详解

目录 Docker 简介安装 DockerDocker 基本命令 镜像命令容器命令网络命令 Docker 高级命令 数据卷Docker Compose 实战案例 部署一个简单的 Web 应用使用 Docker Compose 管理多容器应用 总结 Docker 简介 Docker 是一个开源的容器化平台,提供了简化应用程序开发、…

OCC 创建方管(拉伸操作)

目录 一、OCC 拉伸操作 二、例子 1、使BRepBuilderAPI_MakeFace 2、使用BRepPrimAPI_MakeRevol 3、垂直路径扫掠 一、OCC 拉伸操作 BRepPrimAPI_MakeSweep Class Reference - Open CASCADE Technology Documentation OCC提供几种图形的构建是由基本图形的旋转,拉伸等方…

C++进程遍历的几种方法

在应用层下,进程遍历有多种方式,这里介绍几种常用的方式:进程快照、NtQuerySystemInformation、EnumProcesses函数、WMI等。 在C#中Process类提供了一个GetProcesses()函数,这个函数内部就是调用的NtQuerySystemInformation进行获…

基于STM32瑞士军刀--【FreeRTOS开发】学习笔记(二)|| 堆 / 栈

堆和栈 1. 堆 堆就是空闲的一块内存,可以通过malloc申请一小块内存,用完之后使用再free释放回去。管理堆需要用到链表操作。 比如需要分配100字节,实际所占108字节,因为为了方便后期的free,这一小块需要有个头部记录…

电子加密狗的定义与功能

电子加密狗,也称为加密锁、硬件锁或USB密钥,是一种用于软件保护和授权管理的硬件设备。它通常是一个外部设备,插入到计算机的USB接口上,通过加密算法和技术来确保软件的安全性和防止非法复制、盗版以及未经授权的使用。以下是关于…

软件测试面试准备工作

1、 什么是数据库? 答:数据库是按照某种数据模型组织起来的并存放二级存储器中的数据集合。 2、 什么是关系型数据库? 答:关系型数据库是建立在关系数据库模型基础上的数据库, 借助集合代数等概念和方法处理数据库中的数据。目前主流的关…

AR 眼镜之-蓝牙电话-实现方案

目录 📂 前言 AR 眼镜系统版本 蓝牙电话 来电铃声 1. 🔱 技术方案 1.1 结构框图 1.2 方案介绍 1.3 实现方案 步骤一:屏蔽原生蓝牙电话相关功能 步骤二:自定义蓝牙电话实现 2. 💠 屏蔽原生蓝牙电话相关功能 …

[linux] seqeval安装报错

新建一个新的环境 然后安装: # 不能拷贝别人的环境再安mebert_wash的环境。有冲突。我需要重新安一个空的conda环境,再安装。 # conda create -n wash python3.10 ipykernel python -m pip install --upgrade setuptools python -m pip install --upgr…

【Unity】关于Luban的简单使用

最近看了下Luban导出Excel数据的方式,来记录下 【Unity】关于Luban的简单使用 安装Luban开始使用UnityLubanC# 扩展 安装Luban Luban文档:https://luban.doc.code-philosophy.com/docs/beginner/quickstart 1.安装dotnet sdk 8.0或更高版本sdk 2.githu…