Linux 纯CLI终端中文乱码

124 篇文章 9 订阅
本文档详细介绍了在ArchLinux系统中如何解决命令行环境下中文显示为方块的问题,以及如何安装和配置zhcon实现中文输入。通过安装zhcon和kmscon,并设置中文字体,实现了命令行界面的中文显示。同时,还提供了zhcon的快捷键说明和配置文件修改方法,以适应不同的输入法需求。虽然成功解决了中文显示,但中文输入法的切换问题仍有待解决。
摘要由CSDN通过智能技术生成

前言

在纯命令行环境下中文显示方块,在图形化界面中其实并不乱码,ssh中也不乱码。这个怎么解决呢?在网上搜索了半天,大部分都说是没有安装中文字体。

在这里插入图片描述

终于找到解决办法了:

https://bbs.huaweicloud.com/blogs/238855

archlinux实战zhcon

https://aur.archlinux.org/packages/zhcon/

git clone https://aur.archlinux.org/zhcon.git
cd zhcon/
# 安装
makepkg -si

这样就安装完成啦。

在纯命令行模式输入下面命令运行zhcon:

zhcon --utf8

在这里插入图片描述
这下中文可以正常显示啦!没有乱码我的目标就已经达到了。

那么中文输入怎么处理的呢?

zhcon的热键:

快捷键说明
CTRL+ALT+H帮助;
CTRL+D退出。

输入法热键

快捷键说明
CTRL+SPACE打开/关闭输入法;
ALT+SPACE打开/关闭
CJK方式;CJK方式;
CTRL+2五笔;/ 全拼;

编码切换热键

快捷键说明
CTRL+F1使用GB2312编码了;
CTRL+F2使用GBK编码;
CTRL+F3使用BIG5编码;
CTRL+F4使用JIS编码;
CTRL+F5使用KSCM编码;
CTRL+F7切换输入法状态栏风格(光标跟随或底部固定)。
CTRL+F9设置内码的识别方式: 按一次:内码手动识别; 按二次:自动识别GB与BIG5码; 按三次:自动识别GB与BIG5码,并用简体中文来显示; 按四次:自动识别GB与BIG5码,并用繁体中文来显示;
CTRL+F10调出输入法系统菜单;
CTRL+.切换中英文标点 ;
CTRL+,切换中文全角 /半角;
SHIFT+PGUP上卷半屏历史记录;
SHIFT+PGDN下卷半屏历史记录;
SHIFT+上方向箭上卷一行历史记录;
SHIFT+下方向箭下卷一行历史记录。

中文输入法

CTRL+SPACE 打开或者关闭中文输入法。
可以这样打中文,好帅
在这里插入图片描述
但是我试好几次无法切换到五笔输入法。

修改默认输入法变成五笔

无法切换可能是快捷键冲突导致的,我把来把五笔设置成默认输入法,曲线救国。

vi /etc/zhcon.conf //编辑zhcon配置文件
将想用的五笔输入法行拷贝到全拼输入法前面即可。当然,也可采用加#号屏蔽不需要的,这样不会出错。

如果显示中文乱码,可以在vim 中执行:edit ++enc=gb18030 就可以解决乱码的问题了。

#change input method here
#the first ime is the default ime when press CTRL_SPACE
#only the first nine imes are avaiable to zhcon
#you can add more ime from Chinput's config file
#format: ime = imename,module,table,encode,type
#imename := <input method's name>
#module := <module file name>
#table := <table file name>
#encode := gb2312 | gbk | big5
ime = 五笔,,input/wb.mb,gb2312,native
ime = 全拼,,input/winpy.mb,gb2312,native
ime = 双拼,,input/winsp.mb,gb2312,native
ime = wz1,,input/big5-ary30.mb,big5,native
ime = wz2,,input/big5-cj.mb,big5,native
ime = wz3,,input/big5-phone.mb,big5,native
ime = wz4,,input/big5-liu5.mb,big5,native
ime = 全拼2,,input/py.mb,gb2312,native
ime = 双拼2,,input/py.mb,gb2312,native
ime = 大众,,input/dzm.mb,gb2312,native
ime = 英中,,input/ed.mb,gb2312,native
ime = 简拼,,input/jp.mb,gb2312,native
ime = 普通,,input/pt.mb,gb2312,native
ime = 五笔二维,,input/wbew.mb,gb2312,native
ime = 五笔划,,input/wbh.mb,gb2312,native
ime = 繁体仓颉,,input/cjf.mb,gb2312,native
ime = 简体仓颉,,input/cjj.mb,gb2312,native

在这里插入图片描述

archlinux实战kmscon

上面的方法可以成功解决了我的问题,无意中又百度到了kmscon这个方法。我也来实战一下,对比一下哪个更好用吧!

KMSCON (简体中文)

安装

# 更新系统
pacman -Syyu
# 安装kmscon
pacman -S kmscon

在 tty1 上一般有特殊的 systemd 配置。出于保守的策略,你可以继续在 tty1 上使用传统的 getty 而只在其他虚拟终端上运行 kmscon ,或者你可以用 kmscon 替换 getty。

要在 tty1 上启用 kmscon:

systemctl disable getty@tty1.service
systemctl enable kmsconvt@tty1.service

现在千万不要重新启动系统,不要重启! 否则会显示一堆方框,不要问我怎么知道的。。。(因为中文字体还没有安装)

安装中文字体

pacman -S ttf-dejavu
pacman -S wqy-microhei

中日韩文字支持

Kmscon 通过默认的字体引擎 pango 支持渲染中日韩文字。但是, 必须为 fontconfig 设置全局配置,来将等宽字体映射到合适的中日韩字体上。我们为中文用户提供如下配置模板。此模板可以满足中文字体渲染要求:
vim /etc/fonts/conf.d/99-kmscon.conf

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match>
        <test name="family"><string>monospace</string></test>
        <edit name="family" mode="prepend" binding="strong">
                <string>DejaVu Sans Mono</string>
                <string>WenQuanYi Micro Hei Mono</string>
        </edit>
</match>
</fontconfig>
mkdir -p /etc/kmscon

vim /etc/kmscon/kmscon.conf
写入以下内容

font-name=DejaVu Sans Mono, WenQuanYi Micro Hei Mono

重启以后,发现root用户无法直接登录了,可以先登录普通账号在su root 。
在这里插入图片描述
如果需要root登录,vim /etc/securetty 最后一行加入pts/0
在这里插入图片描述

自定义字体

我在使用vim和ranger的时候都会使用Hack Nerd Font 这里有很多精美的字体图标,让终端看起来更舒服。
Hack Nerd Font

那么如何使用这个字体呢?
https://download.csdn.net/download/lxyoucan/15407613
把这个字体下载并复制到/usr/share/fonts 并重命名HackNerdFont.ttf

fonts pwd
/usr/share/fonts
➜  fonts ls
HackNerdFont.ttf  TTF  wenquanyi

然后更新 fontconfig 的字体缓存:

fc-cache -vf

这里在查一下字体列表,发现已经有我们手动安装的字体了。

fc-list

执行结果(部分)如下:

/usr/share/fonts/TTF/DejaVuSans-ExtraLight.ttf: DejaVu Sans,DejaVu Sans Light:style=ExtraLight
/usr/share/fonts/HackNerdFont.ttf: Hack Nerd Font:style=Regular
/usr/share/fonts/TTF/DejaVuSans-Oblique.ttf: DejaVu Sans:style=Oblique

至此说明我们的字体安装成功了。
vim /etc/fonts/conf.d/99-kmscon.conf
vim /etc/kmscon/kmscon.conf
把我们新增的字体(Hack Nerd Font)增加上去就可以了。

这下字体可以正常显示了,如下:
在这里插入图片描述

评价

  • archlinux软件库直接就可以安装更让人放心
  • 支持自定义字体,时髦的字体让人身心愉悦
  • 中文输入的问题暂时不知道如何解决

参考

https://www.howtoing.com/disable-root-login-in-linux

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值