如何在bash控制台中输入中文?

如何在bash控制台中输入中文?

我的系统是lubuntu,所有中文都可以正确显示,在gedit、leaf、firefox上都可以正确输入,但是
在bash控制台上却无法输入,如何解决?

locale
LANG=zh_CN.UTF-8
LANGUAGE=
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=

这是我的 /etc/bash.bashrc 文件。

[ -z "$PS1" ] && return
shopt -s checkwinsize
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
if [ -x /usr/lib/command-not-found -o -x /usr/share/command-not-found/command-not-found ]; then
    function command_not_found_handle {
            # check because c-n-f could've been removed in the meantime
                if [ -x /usr/lib/command-not-found ]; then
           /usr/lib/command-not-found -- "$1"
                   return $?
                elif [ -x /usr/share/command-not-found/command-not-found ]; then
           /usr/share/command-not-found/command-not-found -- "$1"
                   return $?
        else
           printf "%s: command not found\n" "$1" >&2
           return 127
        fi
    }
fi

这是我的 /root/.bashrc 文件。

export PYTHONPATH=%PYTHONPATH%:/usr/local/python3.4/lib/python3.4/site-packages
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"

这是我的常规 bashrc 配置文件。

if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi
export PYTHONPATH=%PYTHONPATH%:/usr/local/python3.4/lib/python3.4/site-packages

我可以将中文复制到剪贴板并粘贴到终端控制台,中文可以从我的粘贴中显示出来。
我的终端是 lxterminal。
输入法是 fcitx。
中文可以在 XTerm 中输入。
现在使用 root 用户名登录,这是我的桌面。 在此处输入图片描述

按ctrl+alt+F1,输入root和密码,登录到纯文本界面,输入命令startx,出现另一个桌面。 在此处输入图片描述

在其终端上可以输入中文。问题:
为什么同一个用户有两个桌面图片root
为什么在下一个终端上可以输入中文?
现在按ctrl+alt+F7,回到上一个桌面,
在此处输入图片描述
在其终端上无法输入汉字。

答案1

Linux 内核内置了一个终端仿真程序。它内部建立在帧缓冲区和输入事件设备上,并以一系列内核虚拟终端设备/dev/tty1等。严格来说,这不是一定你的安慰,这可能是一个串行终端设备。但我们先跳过这个问题,因为回答这个问题需要知道串行链路另一端的终端硬件是什么。

Linux 内核内置的终端仿真程序不支持输入法。

因此,要拥有具有输入法的非 X11 终端,您需要运行用户空间虚拟终端使用帧缓冲区和输入事件设备。它们将内核终端仿真器与这些设备断开连接,而它们自己正在使用这些设备。

支持输入法的用户空间虚拟终端仿真器包括

进一步阅读

答案2

在此处输入图片描述 使用正常名称登录。

在此处输入图片描述 以 root 身份登录。

删除/etc/profile、/etc/bash.bashrc、/root/.bashrc、~/.bashrc中的三行。

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"

vim /etc/X11/Xsession.d/25xchinput

export LAGN=zh_CN.utf8
export LC_CTYPE=zh_CN.utf8
export XMODIFIERS=@im=fcitx
fcitx & 

相关内容