最近在学习Linux安全并给磁盘LUKS加密时,发现在telinit 1模式下,原本正常的中文字符均变成了方块乱码(如下图),这使得我们很难晓得命令的执行结果究竟是对还是错,进一步为后续工作增加了一定的困难,磨刀不误砍柴工,那就先解决这个小问题。
学习过的辩证法告诉我们,解决问题需从正反两方面去考虑,因此,我们很容易的想到两个解决问题的方向:
1. 是将 Linux 执行消息均改成英文;
2. 而另一种则是将方块改回中文。
但博主在这里仅为读者提供了后一者的解决方式。在大量的查阅资料和手操实践过后,很遗憾的发现,均没能找到解决的方法,就在一筹莫展的时刻,感谢幸运女神的光顾,无疑的发现zhcon这个软件,zhcon是工作在Linux控制台下的高效双字节中/日/韩(CJK)虚拟终端,就像DOS环境中的UCDOS一样,为控制台(console)环境提供完整的双字节语言环境。
于是乎,动手!我最开始是选择Debian系的Kali Linux测试的。
# sudo vim /etc/default/locale
LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh"
# apt install -y zhcon
# reboot
# init 3 或者 telinit 3 或者 telinit 1 等皆可
# zhcon --utf8
下载:
[root@localhost xyl]# wget http://sourceforge.net/projects/zhcon/files/zhcon/0.2.6/zhcon-0.2.5.tar.gz
[root@localhost xyl]# wget http://sourceforge.net/projects/zhcon/files/zhcon/0.2.6/zhcon-0.2.5-to-0.2.6.diff.gz
解压:
[root@localhost xyl]# tar zxvf zhcon-0.2.5.tar.gz
打补丁:
[root@localhost xyl]# cd zhcon-0.2.5
[xyl@localhost zhcon-0.2.5]# zcat ../zhcon-0.2.5-to-0.2.6.diff.gz | patch -p1
# 因为目前权威能找到的最新编译版zhcon是0.2.5版本,而zhcon-0.2.5-to-0.2.6.diff.gz是zhcon的一个升级包,所以我需要升级打补丁。
或者这样打补丁也可:
解压gz文件得到diff补丁文件:
[root@localhost xyl]# gzip -d zhcon-0.2.5-to-0.2.6.diff.gz
将解压好后的zhcon-0.2.5-to-0.2.6.diff补丁文件,打补丁到zhcon-0.2.5的源代码中去:
[root@localhost xyl]# patch -p0 < zhcon-0.2.5-to-0.2.6.diff
开始编译安装:
[root@localhost xyl]# ./zhcon-0.2.5/configure --prefix=/usr/local/zhcon
[root@localhost xyl]# make && make install
启动zhcon:
[root@localhost xyl]# /usr/local/zhcon/bin/zhcon --utf8
# 使用Ctrl+2来打开或关闭智能拼音输入法。
我们可以在官网下载安装: 官网下载链接
当然,热心的博主也提供了自己的网盘:博主网盘链接
提取码:cip3
[root@localhost xyl]# rpm -ivh zhcon-0.2.6-18-omv4000.x86_64.rpm
安装好zhcon后,在纯命令界面中启动zhcon即可:
# init3 或者 telint 1
# zhcon
CTRL+ALT+H 帮助;
CTRL+D 退出。
输入法热键:
CTRL+SPACE 打开/关闭输入法;
ALT+SPACE 打开/关闭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+下方向箭 下卷一行历史记录。