本文以安装黑体simhei.ttf为例,简单演示如何在Linux下安装中文字体。

环境信息介绍

[root@thatsit ~]# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)
[root@thatsit ~]# [root@thatsit ~]# uname -r
3.10.0-229.el7.x86_64
[root@thatsit ~]# [root@thatsit ~]# echo $LANG
en_US.UTF-8
[root@thatsit ~]# cat /etc/locale.conf
LANG="zh_CN.UTF-8"
[root@thatsit ~]# [root@thatsit ~]# locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
[root@thatsit ~]#

依赖的命令

操作依赖几个命令,如果系统中不存在需要手动安装下。

  • fc-list:列举可用的字体
  • fc-cache:生成字体信息的缓存

这两个命令包含在fontconfig包里,可以通过下面的命令进行安装。

yum install fontconfig
  • mkfontscale:生成字体索引

这个命令属于xorg-x11-font-utils工具包,可以通过下面的命令进行安装。

yum install mkfontscale

操作步骤

  • 创建一个用于存放中文字体的目录
mkdir /usr/share/fonts/zh_CN

PS: /usr/share/fonts/这个目录会在安装fontconfig包之后自动创建

  • 上传字体simhei.ttf到上述目录中

  • 构建字体索引和缓存

# cd /usr/share/fonts/zh_CN # 需要进到这个目录
mkfontscale
mkfontdir
fc-cache -fv

执行上述命令之后,在目录下可以看到一个fonts.dir和一个fonts.scale文件

[root@thatsit zh_CN]# pwd
/usr/share/fonts/zh_CN
[root@thatsit zh_CN]# ll
total 9532
-rw-r--r-- 1 root root 66 Sep 4 11:39 fonts.dir
-rw-r--r-- 1 root root 66 Sep 4 11:39 fonts.scale
-rwxrw-rw- 1 root root 9751960 Sep 4 11:38 simhei.ttf
[root@thatsit zh_CN]#

文件内容

[root@thatsit zh_CN]# cat fonts.dir
1
simhei.ttf -misc-simhei-medium-r-normal--0-0-0-0-p-0-iso10646-1
[root@thatsit zh_CN]# cat fonts.scale
1
simhei.ttf -misc-simhei-medium-r-normal--0-0-0-0-p-0-iso10646-1
[root@thatsit zh_CN]#
  • 查看字体
# 查看所有可用字体
[root@thatsit zh_CN]# fc-list
/usr/share/fonts/dejavu/DejaVuSansCondensed-Oblique.ttf: DejaVu Sans,DejaVu Sans Condensed:style=Condensed Oblique,Oblique
/usr/share/fonts/dejavu/DejaVuSansCondensed-Bold.ttf: DejaVu Sans,DejaVu Sans Condensed:style=Condensed Bold,Bold
/usr/share/fonts/dejavu/DejaVuSans.ttf: DejaVu Sans:style=Book
/usr/share/fonts/zh_CN/simhei.ttf: SimHei:style=Regular,Normal
/usr/share/fonts/dejavu/DejaVuSans-Bold.ttf: DejaVu Sans:style=Bold
/usr/share/fonts/dejavu/DejaVuSansCondensed.ttf: DejaVu Sans,DejaVu Sans Condensed:style=Condensed,Book
/usr/share/fonts/dejavu/DejaVuSans-ExtraLight.ttf: DejaVu Sans,DejaVu Sans Light:style=ExtraLight
/usr/share/fonts/dejavu/DejaVuSansCondensed-BoldOblique.ttf: DejaVu Sans,DejaVu Sans Condensed:style=Condensed Bold Oblique,Bold Oblique
/usr/share/fonts/dejavu/DejaVuSans-Oblique.ttf: DejaVu Sans:style=Oblique
/usr/share/fonts/dejavu/DejaVuSans-BoldOblique.ttf: DejaVu Sans:style=Bold Oblique
[root@thatsit zh_CN]# # 只查看中文字体,SimHei字体安装成功。
[root@thatsit zh_CN]# fc-list :lang=zh
/usr/share/fonts/zh_CN/simhei.ttf: SimHei:style=Regular,Normal
[root@thatsit zh_CN]#

dir和scale文件生成的详细过程

[root@thatsit zh_CN]# ls
simhei.ttf
[root@thatsit zh_CN]#
[root@thatsit zh_CN]#
[root@thatsit zh_CN]# mkfontscale
[root@thatsit zh_CN]# ls
fonts.scale simhei.ttf
[root@thatsit zh_CN]# mkfontdir
[root@thatsit zh_CN]# ls
fonts.dir fonts.scale simhei.ttf
[root@thatsit zh_CN]# fc-cache -fv
/usr/share/fonts: caching, new cache contents: 0 fonts, 3 dirs
/usr/share/fonts/default: caching, new cache contents: 0 fonts, 2 dirs
/usr/share/fonts/default/Type1: caching, new cache contents: 35 fonts, 0 dirs
/usr/share/fonts/default/ghostscript: caching, new cache contents: 4 fonts, 0 dirs
/usr/share/fonts/dejavu: caching, new cache contents: 13 fonts, 0 dirs
/usr/share/fonts/zh_CN: caching, new cache contents: 1 fonts, 0 dirs
/usr/share/X11/fonts/Type1: caching, new cache contents: 13 fonts, 0 dirs
/usr/share/X11/fonts/TTF: skipping, no such directory
/usr/local/share/fonts: skipping, no such directory
/root/.local/share/fonts: skipping, no such directory
/root/.fonts: skipping, no such directory
/usr/share/fonts/default: skipping, looped directory detected
/usr/share/fonts/dejavu: skipping, looped directory detected
/usr/share/fonts/zh_CN: skipping, looped directory detected
/usr/share/fonts/default/Type1: skipping, looped directory detected
/usr/share/fonts/default/ghostscript: skipping, looped directory detected
/usr/lib/fontconfig/cache: cleaning cache directory
/root/.cache/fontconfig: not cleaning non-existent cache directory
/root/.fontconfig: not cleaning non-existent cache directory
/usr/bin/fc-cache-64: succeeded
[root@thatsit zh_CN]# ls
fonts.dir fonts.scale simhei.ttf
[root@thatsit zh_CN]#

Linux 下安装中文字体的更多相关文章

  1. Linux下安装中文字体

    目录 一.Centos系列 二.Ubuntu系列 一.Centos系列 1.安装字体库 yum -y install fontconfig 2.添加中文字体,建立存储中文字体的文件夹 mkdir /u ...

  2. Linux 下安装中文 ctex 指南

    大家在用 $\LaTeX$ 进行中文排版时相信会遇到不少问题,而$\textbf{ctex}$套装的出现则有效的解决了这一问题,只要安装了$\textbf{ctex}$那么在文中不用进行引用设置就可以 ...

  3. CentOS 7.6环境下安装中文字体库

    JAVA画图时常用到Font 类对象 这样的对象依赖于本地的字段.新装的linux没有安装字段库,和相应的字体. 1.fc-list查看字体库 2.yum -y install fontconfig安 ...

  4. Centos6下安装中文字体

    先安装字体管理软件 [root@localhost ~]# yum install fontconfig 将需要安装的字体放到/usr/share/fonts/chinese/目录下 如果不存在这个目 ...

  5. Linux(Centos)安装中文字体库(文档中文字符不显示)

    yum -y install fontconfig 在/usr/shared/fonts目录下新建一个目录chinese 然后打开windows本地的字体库 将这里面的所有文件上传到centos里我们 ...

  6. Linux下JDK中文字体乱码

    java生成图片的时候用到字体,但是liunx系统没有这些字体需要把C:\Windows\Fonts 上传到/usr/local/jdk1.8.0_171/jre/lib/fonts 重启tomcat ...

  7. Linux下安装中文宋体

    1,#cd /usr/share/fonts/default 2,mkdir -p ./truetype/simsun 3,取得simsun.ttc文件:如果网上下载不到则在windows (c:/w ...

  8. Linux安装中文字体(已验证)

    1.安装字体命令 sudo apt install -y fontconfig 2.查看已安装的字体 (1)查看linux已安装字体 fc-list (2)查看linux已安装中文字体 fc-list ...

  9. 解决Linux下sqlplus中文乱码问题

    错误现象:在windows下用其他工具访问oracle,确认中文正常显示.在Linux下使用sqlplus查询数据表中文内容出现乱码. 分析及解决:因为windows下正常,所以问题应出现在Linux ...

随机推荐

  1. centos7 升级gcc9.1.0版本

    centos7 环境 查缺补漏 yum install gcc gcc-c++ -y yum install bzip2 -y gcc版本下载:https://gcc.gnu.org/mirrors. ...

  2. Java第一次学习总结

    学习内容: 1.java是本学期刚刚接触新的一种编程语言,与大一C语言在语法上有很多相同之处,不同的是在很多问题上,更加简练,更加易于理解. 例如:输出水仙花数,从C语言近五十行代码缩短近十几行,数据 ...

  3. listen( ) accept( )

    服务器端,创建socket,bind绑定套接字后,还需要使用listen()函数让套接字进入被动监听状态,再调用accept()函数,就可以随时响应客户端的请求了 listen() 函数 通过 lis ...

  4. LibUsbDotNet使用方法

    最近在用C#调试USB程序,libusb源码是C语言的,C#用起来不方便,偶然在网上看到了LibUsbDotNet,这是开源的项目,下载后参考Example,用起来非常方便. LibUsbDotNet ...

  5. java 重写和重载的区别

    重写:重写是子类的方法覆盖父类的方法,有两个重要特点 1.子类方法名和参数类型.个数必须和父类一样. 2.如果有返回值,则返回值类型也必须和父类一样. //父类 public class Bird() ...

  6. ES6实现数组去重

    ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Array.from方法可以将 Set 结构转为数组. 扩展运算符内部调用的是数据结构的 Iterator 接 ...

  7. 【Linux 应用编程】进程管理 - 进程间通信IPC之共享内存 mmap

    IPC(InterProcess Communication,进程间通信)是进程中的重要概念.Linux 进程之间常用的通信方式有: 文件:简单,低效,需要代码控制同步 管道:使用简单,默认阻塞 匿名 ...

  8. idea中创建maven格式的文件方法

    其中新建的maven工程有时候不全或者出一些小问题导致新建类,或者其他文件时候找不到新建的快捷方式,下面就说一种快速设置

  9. 网络编程.iocp

    1.(20191212)查到的一些资料:java从 JDK7开始 引入AOI(即 NIO2).然后 实现 IOCP使用的是 AsynchronousChannelGroup.AsynchronousS ...

  10. 《深入浅出WPF》学习总结之控件与布局

    一.控件到底是什么 控件的本质是“数据+算法”——用户输入原始数据,算法处理原始数据并得到结果数据.问题就在于程序如何将结果数据展示给用户.同样一组数据,你可以使用LED阵列显示出来,或者是以命令行模 ...