如何更改Linux终端颜色和字体

如何更改Linux终端颜色和字体,第1张

要修改终端里的字体,通常有两种方法:

一、当你面对有图形功能的linux系统时,就比较方便了,直接打开终端,右击终端的空白处(或者空黑处),然后就会出现类似windows中的一系列的改字体的选项,相信接下来的 *** 作大家打击都能很轻松的搞定。

二、那么如果没有图形功能呢?就可以采用如下的指令修改方法,该方法笔者比这多为借鉴的其他大神的 *** 作,笔者也在学习,算是和大家的一同学习和分享。

1.通过console-tools设置控制台字体

1.1.选用并测试合适的字体和字库文件:

复制代码 代码如下:

# ls /usr/share/consolefonts/

1.2.测试选用喜爱的字库文件:

复制代码 代码如下:

# consolechars -f /usr/share/consolefonts/lat9w-16.psf.gz

# consolechars -f /usr/share/consolefonts/lat2-16.psf.gz

1.3.保存控制台默认字体配置:

复制代码 代码如下:

# vi /etc/console-tools/config

将合适的字库文件设置为默认,如果选择lat2-16.psf.gz 字库文件,可将SCREEN_FONT设成:

SCREEN_FONT=lat2-16

1.改变整个控制台的颜色

用 system("color 0A")

其中color后面的0是背景色代号,A是前景色代号。各颜色代码如下:

0=黑色

1=蓝色

2=绿色

3=湖蓝色

4=红色

5=紫色

6=黄色

7=白色

8=灰色

9=淡蓝色

A=淡绿色

B=淡浅绿色

C=淡红色

D=淡紫色

E=淡黄色

F=亮白色

2.改变下一个输出或者输入字体和背景的颜色

采用SetConsoleTextAttribute函数,如

White on Black:

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |

FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE)

Red on Black:

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |

FOREGROUND_RED)

Green on Black:

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |

FOREGROUND_GREEN)

Yellow on Black:

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |

FOREGROUND_RED | FOREGROUND_GREEN)

Blue on Black:

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |

FOREGROUND_BLUE)

Magenta on Black:

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |

FOREGROUND_RED | FOREGROUND_BLUE)

Cyan on Black:

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |

FOREGROUND_GREEN | FOREGROUND_BLUE)

Black on Gray:

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY |

BACKGROUND_INTENSITY)

Black on White:

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY |

FOREGROUND_INTENSITY | BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE)

Red on White:

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY |

FOREGROUND_INTENSITY | BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE |

FOREGROUND_RED)

等等。

需要引入头文件:

windows.h

函数原型:

BOOL SetConsoleTextAttribute( HANDLE hConsoleOutput, WORD wAttributes )

wAttributes 的取值含义对应如下:

Attribute Meaning

FOREGROUND_BLUE Text color contains blue.

FOREGROUND_GREEN Text color contains green.

FOREGROUND_RED Text color contains red.

FOREGROUND_INTENSITY Text color is intensified.

BACKGROUND_BLUE Background color contains blue.

BACKGROUND_GREEN Background color contains green.

BACKGROUND_RED Background color contains red.

BACKGROUND_INTENSITY Background color is intensified.

COMMON_LVB_LEADING_BYTE Leading byte.

COMMON_LVB_TRAILING_BYTE Trailing byte.

COMMON_LVB_GRID_HORIZONTAL Top horizontal.

COMMON_LVB_GRID_LVERTICAL Left vertical.

COMMON_LVB_GRID_RVERTICAL Right vertical.

COMMON_LVB_REVERSE_VIDEO Reverse foreground and background attributes.

COMMON_LVB_UNDERSCORE Underscore

用curses库能实现, 很简单, 稍微提一下:

start_color() /* 开启彩显模式 */

attron(COLOR_PAIR(1))/* 开启一个颜色对 */

init_pair(1, COLOR_RED, COLOR_WRITE) /* 初始化这个颜色对, 前景色为红, 背景色为白 */

... /* 中间是你要打印的字符 */

attroff(COLOR_PAIR(1))/* 关闭该颜色对 */


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8965754.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-23
下一篇2023-04-23

发表评论

登录后才能评论

评论列表(0条)

    保存