如何在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,出現另一個桌面。 在此輸入影像描述

可以在其lxterminal中輸入漢字。問題:
為什麼同一個使用者有兩張桌面照片root
為什麼在接下來的lxterminal可以輸入漢字?
現在按ctrl+alt+F7,回到之前的桌面,
在此輸入影像描述
lx終端機無法輸入中文。

答案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 & 

相關內容