解決Linux 純命令界面下中文是方塊亂碼的問題
最近在學習Linux安全並給磁盤LUKS加密時,發現在telinit 1模式下,原本正常的中文字符均變成了方塊亂碼(如下圖),這使得我們很難曉得命令的執行結果究竟是對還是錯,進一步爲後續工作增加了一定的困難,磨刀不誤砍柴工,那就先解決這個小問題。
( 在純命令界面下,中文變成方塊亂碼:)
( 在圖像界面中卻)
學習過的辯證法告訴我們,解決問題需從正反兩方面去考慮,因此,我們很容易的想到兩個解決問題的方向:
1. 是將 Linux 執行消息均改成英文;
2. 而另一種則是將方塊改回中文。
但博主在這裏僅爲讀者提供了後一者的解決方式。在大量的查閱資料和手操實踐過後,很遺憾的發現,均沒能找到解決的方法,就在一籌莫展的時刻,感謝幸運女神的光顧,無疑的發現zhcon這個軟件,zhcon是工作在Linux控制檯下的高效雙字節中/日/韓(CJK)虛擬終端,就像DOS環境中的UCDOS一樣,爲控制檯(console)環境提供完整的雙字節語言環境。
於是乎,動手!我最開始是選擇Debian系的Kali Linux測試的。
1. 先查看語言配置文件,是否將語言改爲中文UTF8
# sudo vim /etc/default/locale
修改內容如下:
LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh"
2. 安裝zhcon:
# apt install -y zhcon
重啓:
# reboot
重啓之後進入tty純命令模式,然後開啓zhcon:
# init 3 或者 telinit 3 或者 telinit 1 等皆可
運行zhcon:
# zhcon --utf8
恭喜,你的執行消息中,中文不在是方塊亂碼了。
如果,你的是紅帽系列的Linux,例在Centos Linux上yum是沒有zhcon的包的,我們只能手動安裝了。
1. 編譯安裝zhcon:
下載:
[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來打開或關閉智能拼音輸入法。
2. rpm包安裝zhcon:
我們可以在官網下載安裝: 官網下載鏈接
當然,熱心的博主也提供了自己的網盤:博主網盤鏈接
提取碼:cip3
[root@localhost xyl]# rpm -ivh zhcon-0.2.6-18-omv4000.x86_64.rpm
安裝好zhcon後,在純命令界面中啓動zhcon即可:
# init3 或者 telint 1
# zhcon
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+下方向箭 下卷一行歷史記錄。