Wie gebe ich chinesische Zeichen in der Bash-Konsole ein?

Wie gebe ich chinesische Zeichen in der Bash-Konsole ein?

Mein System ist Lubuntu, alle chinesischen Zeichen werden korrekt angezeigt und können in Gedit, Leaf und Firefox korrekt eingegeben werden. Die
Eingabe in meiner Bash-Konsole ist nicht möglich. Wie kann ich das beheben?

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=

Hier ist meine /etc/bash.bashrc-Datei.

[ -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

Hier ist meine /root/.bashrc-Datei.

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"

Hier ist meine normale Bashrc-Konfigurationsdatei.

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

Und ich kann chinesische Zeichen in die Zwischenablage kopieren und in die Terminalkonsole einfügen. Die chinesischen Zeichen können dann von meinem Einfügen aus angezeigt werden.
Mein Terminal ist lxterminal.
Die Eingabemethode ist fcitx.
Die chinesischen Zeichen können in XTerm eingegeben werden.
Um mich jetzt mit dem Benutzernamen root anzumelden, hier ist mein Desktop. Bildbeschreibung hier eingeben

Drücken Sie Strg+Alt+F1, geben Sie Root und dessen Passwort ein, melden Sie sich bei der reinen Textoberfläche an und geben Sie den Befehl ein. startxEin weiterer Desktop wird angezeigt. Bildbeschreibung hier eingeben

Das chinesische Zeichen kann in seinem lxterminal eingegeben werden. Fragen:
Warum gibt es zwei Desktop-Fotos für denselben Benutzer root?
Warum kann das chinesische Zeichen im nächsten lxterminal eingegeben werden?
Drücken Sie nun Strg+Alt+F7, um zum vorherigen Desktop zurückzukehren.
Bildbeschreibung hier eingeben
Chinesische Schriftzeichen können in das LX-Terminal nicht eingegeben werden.

Antwort1

Im Linux-Kernel ist ein Terminalemulatorprogramm integriert. Es wird intern über den Frame-Buffer und die Eingabeereignisgeräte gelegt und präsentiert sich Anwendungssystemen als eine Reihe vonvirtuelles Kernel-TerminalGeräte /dev/tty1und so weiter. Genau genommen ist dies nichtNotwendigdeinKonsole, was ein serielles Terminalgerät sein könnte. Aber überspringen wir das, denn um diese Frage zu beantworten, müsste man wissen, welche Terminalhardware sich am anderen Ende der seriellen Verbindung befindet.

Das im Linux-Kernel integrierte Terminalemulatorprogramm unterstützt keine Eingabemethoden.

Um also ein Nicht-X11-Terminal mit Eingabemethoden zu haben, müssen Sie einenvirtuelles Terminal im Benutzerbereichdas den Frame-Buffer und die Eingabeereignisgeräte verwendet. Sie trennen den Terminalemulator im Kernel von diesen Geräten, während sie diese selbst verwenden.

Zu den virtuellen Terminalemulatoren im Benutzerbereich, die Eingabemethoden unterstützen, gehören

Weiterführende Literatur

Antwort2

Bildbeschreibung hier eingeben Um sich mit dem normalen Namen anzumelden.

Bildbeschreibung hier eingeben Um sich mit root anzumelden.

So löschen Sie die drei Zeilen in /etc/profile und /etc/bash.bashrc und /root/.bashrc und ~/.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 & 

verwandte Informationen