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 で入力できます。
ルート ユーザー名でログインすると、デスクトップが表示されます。 ここに画像の説明を入力してください

ctrl+alt+F1 を押して、ルートとそのパスワードを入力し、純粋なテキスト インターフェイスにログインしてコマンドを入力すると、startx別のデスクトップが表示されます。 ここに画像の説明を入力してください

中国語の文字は、その lxterminal で入力できます。質問:
同じユーザーのデスクトップ写真が 2 つあるのはなぜですかroot?
次の lxterminal で中国語の文字を入力できるのはなぜですか?
ctrl+alt+F7 を押すと、前のデスクトップに戻ります。
ここに画像の説明を入力してください
lxterminal では中国語の文字を入力できません。

答え1

Linuxカーネルには端末エミュレータプログラムが組み込まれています。これはフレームバッファと入力イベントデバイス上に内部的に構築されており、アプリケーションモードのシステムに対して一連のカーネル仮想端末デバイス/dev/tty1など。厳密に言えば、これは必然的にあなたのコンソールこれはシリアル端末デバイスである可能性があります。ただし、その質問に答えるには、シリアルリンクのもう一方の端にある端末ハードウェアが何であるかを知る必要があるため、ここでは省略します。

Linux カーネルに組み込まれている端末エミュレータ プログラムは入力メソッドをサポートしていません。

したがって、入力メソッドを備えた非X11端末を使用するには、ユーザー空間仮想端末フレーム バッファと入力イベント デバイスを使用するアプリケーションです。これらのアプリケーションは、それらを使用している間は、カーネル内端末エミュレータをそれらのデバイスから切断します。

入力メソッドをサポートするユーザー空間仮想端末エミュレーターには、

参考文献

答え2

ここに画像の説明を入力してください 通常の名前でログインします。

ここに画像の説明を入力してください rootでログインします。

/etc/profile、/etc/bash.bashrc、/root/.bashrc、~/.bashrc の 3 行を削除します。

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 & 

関連情報