
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.
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. startx
Ein weiterer Desktop wird angezeigt.
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.
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/tty1
und 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
- Abonnieren(Ubuntu-Paket)
- fbterm(Ubuntu-Paket) und seine Forks wieAbonnieren(Ubuntu-Paket)
Weiterführende Literatur
Antwort2
Um sich mit dem normalen Namen 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 &