Obeta

使用Fbterm解决Ubuntu中TTY中文乱码的问题

每个使用Ubuntu的国人都会遇到过的问题--中文乱码,但是大部分时候都是语言设置问题,直接修改环境变量里的语言就好.而对于TTY中的中文乱码,则需要使用到fbterm.

Fbterm (Frame buffer terminal emulator) is standalone replacement of Linux kernel terminal that can function outside of Xorg. Keep in mind that its development has stopped. --- wekipedia

安装

  1. Debian/Ubuntu
sudo apt install fbterm
  1. Arch

安装fbterm-git

安装完成后如果你需要在非 root 用户中使用 fbterm,你需要执行以下命令将非 root 用户添加到 video 用户组中:

sudo gpasswd -a YOUR_USERNAME video

sudo chmod u+s /usr/bin/fbterm

使用

安装完成后登录 TTY,输入fbterm即可.

若想登录直接进入 fbterm,可以在.bashrc或者你其它的 shell 软件配置比如 zsh 的.zshrc中添加以下命令:

[[ $(tty) == \/dev\/tty[0-6]* ]] && fbterm && echo && exit

当 shell 是在 TTY 打开时,会自动启动fbterm,且输入 exit 的时候会直接退出登录.

配置

配置文件在~/.fbtermrc.可以使用 vi 打开查看一下有没有你感兴趣的相关配置.

其中有font-names=font-size=两个选项,你可以在=后面添加值设置字体族和字体大小:

font-names=Liberation Mono,Noto Sans Mono CJK SC Bold,Droid Sans Fallback # 设置系统已经存在的值,顺序可以修改,跟css中字体匹配规则类似
font-size=14

还可以设置输入法,不过不太需要,毕竟少了图形页面的东西,中文输入相当于被腰斩了.

修改完成后需要在 TTY 中重新登录,若配置未生效,可能是由于~/.fbtermrc文件权限较高,可以通过以下命令修改其权限:

sudo chmod 775 ~/.fbtermrc

注意

fbterm 只能在 TTY 中运行,如果你不知道什么是 TTY,那么你应该是用不上这个 fbterm.

你可以试试使用快捷键ctrl+alt+f1(类 ubuntu 系统中使用),然后你就会眼前一黑...输入用户名和密码就能登录上去.想回去就使用ctrl+alt+f7.

引用

个人随笔记录,内容不保证完全正确,若需要转载,请注明作者和出处.