Este artículo muestra principalmente la idea general y el proceso de modificar la configuración del sistema Linux a través del proceso de modificación de la configuración del sistema. Si no tiene suficiente paciencia para leerlo, omita las secciones 1 a 4 del artículo y vaya directamente a la sección 5 para una configuración rápida.
Primero, introduzca variables relevantes
Sabemos que la mayoría de los sistemas Linux no tienen versiones en chino o inglés. Tomemos como ejemplo FC4 Linux. Cuando se lanzó el sistema, era igual en todo el mundo. Si el sistema está en chino o en inglés depende completamente del paquete de idioma que elija. Personas de diferentes países eligen sus propios paquetes de idiomas al instalarlos y usarlos. Los idiomas de la aplicación no están codificados. Llama al idioma relevante según la configuración del sistema. Por lo tanto, los usuarios de diferentes países del mundo pueden usarlo en su interfaz de idioma nativo sin modificaciones. Esto se llama internacionalización (i18n para abreviar). Esta es también la tendencia de desarrollo del software del futuro.
Entonces, si instalo diferentes paquetes de idiomas y diferentes fuentes en el sistema, ¿cómo determina el sistema la interfaz de idioma que quiero y llama a las fuentes relevantes? ¿Qué archivos y variables en el sistema los controlan?
En los sistemas Linux de las series redHat y FC, el archivo que registra el idioma predeterminado del sistema es /etc/sysconfig/i18n. Si el sistema chino está instalado de forma predeterminada, el contenido de i18n es el siguiente:
Código:
LANG="zh_CN. UTF-8 " sys font = " latarcyrheb-sun 16 " SUPPORTED = " zh _ CN. UTF-8:zh_CN:zh "
Entre ellas, la variable LANG es la abreviatura de idioma. Los usuarios con un poco de conocimiento de inglés pueden ver de un vistazo que esta variable determina el idioma predeterminado del sistema, que es el idioma predeterminado del menú del sistema, el idioma de la barra de herramientas del programa, el idioma predeterminado del método de entrada, etc. SYSFONT es la abreviatura de fuente del sistema, que determina qué fuente utiliza el sistema de forma predeterminada. La variable SOPORTE determina los idiomas admitidos por el sistema, es decir, los idiomas que el sistema puede mostrar. Es importante tener en cuenta que, dado que las computadoras se originaron en países de habla inglesa, no importa cómo configure estas variables, el inglés siempre será compatible de forma predeterminada y las fuentes en inglés siempre se incluirán independientemente de las fuentes utilizadas.
La variable LANG entre estas variables se utiliza tanto en modo de caracteres como en interfaz gráfica. Se leerá y entrará en vigor después de iniciar sesión en el sistema. Creo que muchas personas a menudo encuentran mensajes de error confusos al ingresar comandos de Linux en la interfaz de caracteres. Debe instalar software chino en modo de caracteres como zhcon o cce para mostrar los mensajes de error chinos normalmente. No quiero que muestre caracteres chinos confusos y no quiero usar zhcon específicamente para ver un mensaje de error simple. ¿Qué debo hacer? Una solución sencilla de tiempo cero es establecer la variable LANG:
Código:
[root@gucuiwen ~]# LANG="en_US.UTF-8"
Es decir, el idioma del sistema se establece temporalmente en inglés, o más simplemente, puede hacer esto directamente:
Código:
[root@gucuiwen ~]# LANG= " "
Es decir, la variable LANG se borra porque el inglés es compatible en todos los casos.
Después de borrar la variable LANG, el sistema utilizará el inglés de forma predeterminada. Después de esta configuración, los mensajes de error que se muestran en modo de caracteres están todos en inglés. Pero esta configuración es temporal y solo cambia temporalmente la variable bash LANG. No tiene ningún efecto cuando cierras la sesión y la vuelves a iniciar o cuando cambias a otra terminal de personaje.
A estas alturas, los lectores deberían haber pensado que este problema se puede resolver para siempre simplemente configurando la variable LANG en el archivo i18n en "en_US.UTF-8" en inglés. El archivo modificado es el siguiente:
Código:
#LANG="en_US.UTF-8" sys font=" latarcyrheb-sun 16" SUPPORTED=" zh_CN.UTF- 8 :zh_CN:zh "
No borre simplemente la variable LANG, porque esta variable no solo se usa en el modo de caracteres, sino también en la interfaz gráfica. No habrá ningún problema simplemente borrándolo en el modo de caracteres, pero en la interfaz gráfica hará que los caracteres chinos no se muestren normalmente. En la versión anterior de la serie Red Hat, también había una variable llamada IDIOMA en el archivo i18n, que controlaba específicamente la configuración de idioma en la interfaz gráfica. Ahora estas dos variables se han combinado en una sola en la serie FC.
Después de modificar esta variable y reiniciar la interfaz gráfica, podrás ver que la interfaz está completamente en inglés. Sin embargo, al presionar Ctrl+ESPACIO no se puede abrir el método de entrada chino, y el método de entrada chino no se puede agregar al menú de métodos de entrada. Simplemente modificamos la variable LANG para cambiar la configuración de idioma del sistema. Por supuesto, este paso también se puede modificar a través de las herramientas de la interfaz gráfica sin modificar el archivo de configuración usted mismo.
En segundo lugar, en cuanto al nivel operativo
Este problema parece no tener nada que ver con el tema de este artículo, sino porque cada vez más usuarios novatos de Linux encuentran problemas con la interfaz gráfica de Linux. Estos problemas también están relacionados con el proceso de configuración del método de entrada chino, así que me gustaría mencionarlo por cierto.
Una vez completada la instalación actual de Linux, se ejecuta en el quinto nivel de ejecución del sistema de forma predeterminada. En el sistema UNIX estilo SYSTEM V, el sistema se divide en diferentes niveles de ejecución. A diferencia de la rama BSD de UNIX, hay 7 niveles de uso común: 0~6:
0 off
<. p >1 Usuario único2 Multiusuario sin red
3 Red multiusuario
4 Reservado, los usuarios pueden definirlo ellos mismos.
5 Interfaz gráfica multiusuario
6 Reinicie el sistema
Porque el sistema Linux actual se ejecuta en el quinto nivel después de la instalación, es decir, ingrese directamente después el sistema inicia la interfaz gráfica, en lugar de usar startx o xinit para iniciar la interfaz gráfica después de iniciar sesión en modo de caracteres. Esto parece muy conveniente. ¿Pero cuáles son las desventajas? Una vez que cambia algunas configuraciones y ocurre un problema, el sistema seguirá deambulando entre gráficos y personajes y los principiantes no saben cómo solucionarlo, lo cual es muy problemático. Y para las personas que están aprendiendo Linux, no es propicio para comprender y aprender algunas de las cosas subyacentes de Linux. Los usuarios antiguos que han usado Linux durante mucho tiempo saben que la conexión de ejecución predeterminada de Linux anterior, como redhat6.0, es 3, e incluso el RedHat9.0 posterior puede elegir el inicio de sesión de caracteres predeterminado o el inicio de sesión gráfico durante la instalación. Sin embargo, la serie FC actual y la mayoría de las otras versiones ayudan directamente a los usuarios a elegir una interfaz gráfica directa para iniciar sesión, independientemente de si lo desean o no. Aunque Linux es cada vez más fácil para la mayoría de los principiantes, hay mucha diversión que los principiantes no pueden experimentar.
Quizás no lo creas, pero existen muchos problemas al iniciar sesión directamente en el sistema. Por lo tanto, como administrador de sistemas Linux y Solaris con 6 años de experiencia en el uso de Linux, recomiendo encarecidamente que, una vez completada la instalación del sistema, establezca el nivel de ejecución predeterminado del sistema en el nivel 3 y luego ingrese manualmente el comando startx después de iniciar sesión. en la interfaz gráfica del personaje.
Se puede modificar de las siguientes maneras:
Utilice un editor de texto para modificar el archivo /etc/inittab y reemplace
el código:
id:5 :init Valor predeterminado:
Esta línea se modifica de la siguiente manera
Código:
id:3:initValor predeterminado:
Reiniciar el El sistema después de guardar. De forma predeterminada, se iniciará en la interfaz de caracteres. La diferencia entre los diferentes niveles de ejecución radica en los servicios que inicia el sistema de forma predeterminada. Por ejemplo, cuando se ejecuta el nivel 3, el servicio de interfaz gráfica X no se inicia de forma predeterminada, y cuando se ejecuta el nivel 5, se inicia de forma predeterminada. Básicamente no hay diferencia, y mucho menos la cuestión de la fortaleza y debilidad funcional, entre los diferentes niveles. Los usuarios pueden definir ellos mismos completamente diferentes niveles de servicios predeterminados. En cualquier nivel de ejecución, los usuarios pueden usar el comando init para cambiar a otros niveles de ejecución.
En tercer lugar, recurra al método de entrada chino:
La razón por la que se gasta tanta tinta en el nivel de operación del sistema es porque la comprensión del sistema comienza de abajo hacia arriba.
Primero, cambie el nivel de ejecución predeterminado al nivel 3. Por supuesto, si realmente no desea cambiarlo, use temporalmente el comando init 3 para cambiar al nivel 3.
De esta manera, puede usar startx para iniciar la interfaz gráfica y luego usar ctrl+alt+retroceso para salir de la interfaz gráfica. Tenga en cuenta que dije "salir" de la interfaz gráfica, no presionar CTRL+ALT+F2 para cambiar a una terminal de caracteres.
Bueno, todo comienza con startx. Cuando necesita configurar algo o configurar un servicio en su sistema Linux, lo más importante es comprender cómo comienza todo. Si sabes cómo es, debes saber por qué es así. Si tiene tiempo para leer los scripts que se ejecutan cuando se inicia el sistema en el directorio /etc/rc.d, comprenderá completamente para qué se utilizan los distintos archivos de configuración en /etc, cómo modificarlos y cuáles son sus efectos. después de modificaciones, etc. Juega con el sistema y cámbialo como quieras. Esto es lo que siempre he enfatizado. Si sabes qué es, debes saber por qué. Debe profundizar en el sistema, leer scripts, aprender a usar comandos y modificar manualmente los archivos de configuración del sistema. Sólo así podrá tener un conocimiento profundo del sistema. El uso de herramientas de interfaz gráfica durante todo el día no le ayudará a obtener una comprensión completa y profunda del sistema. Diferentes sistemas Linux proporcionan diferentes programas de configuración de interfaz gráfica, pero los comandos y archivos de configuración son los mismos y las cosas subyacentes son más comunes. Por lo tanto, primero debe aprender a configurar y modificar manualmente los archivos de configuración del sistema y luego utilizar herramientas de interfaz gráfica para modificarlos una vez que esté familiarizado con ellos para reducir su carga de trabajo.
Lo anterior mencioné mis ideas para resolver el problema. Comencé con esta idea:
El método de entrada chino se usa bajo una interfaz gráfica y es un programa que se ejecuta bajo una interfaz gráfica. Todo lo que hay en la interfaz gráfica se inicia y ejecuta mediante el programa startx. Ésta es la raíz del problema.
Encuentre la ubicación de startx:
Código:
[root@gucuiwen ~]#Which startx/usr/x 11r 6/bin/startx p >
Compruebe si startx es un script o un archivo binario:
Código:
[root @ gucuiwen ~]# file/usr/x 11r 6/bin/startx /usr/x 11r 6/bin/startx: El texto del script de shell Bourne es ejecutable
Descubrí que startx es un script de shell, así que lo abrí para analizarlo y leerlo para ver si podía encontrar algunas pistas sobre el proceso de inicio del método de entrada y las variables relacionadas:
Código:
[root @ gucui Wen ~]# VI/usr/x 11r 6/bin/startx
Descubrí que este script se estaba ejecutando. Información sobre otros scripts y archivos de configuración llamados durante el período:
Código:
userclientrc=$HOME/. xinitrc usererverrc=$HOME/.
xserverrc sysclientrc =/etc/x 11/xinit/xinitrc sysserverc =/etc/x 11/xinit/xserverrc
Y sepa que el propósito de startx es encontrar el sistema de escritorio disponible, el sistema de servidor X y el usuario. self en el sistema. Defina los parámetros y finalmente llame a xinit para inicializar la interfaz gráfica X. No encontré el código directamente relacionado con el inicio del método de entrada en el script startx, por lo que puedo determinar que el código relacionado con el método de entrada está en el script llamado por startx. Entonces llegué al directorio
/etc/X11/xinit/, leí y analicé los scripts en este directorio. Algunos de estos scripts son llamados directamente por startx y otros son llamados por scripts llamados por startx. Hay múltiples niveles de relaciones anidadas y puede resultar realmente confuso si no se tiene un poco de paciencia. Finalmente, encontré el código relacionado con el método de entrada en el script xinput.sh en el directorio /etc/x 11/xinit/xinitrc.d:
Código:
lang _ region = $(echo $ tmlang | sed-e ' s/".*/') Lang _ region =" zh _ cn "#Este comportamiento es $ home/. xinput . d/$ { Lang _ region } " $ home /f. predeterminado "/etc/x 11/xinit/xinput . d/$ { lang _ región } "/etc/x 11/xinit/xinput d/default do[-r $ f]& & fuente $ f & amp& amp Descanso completado
A través del análisis del script, sé que cuando se inicia la interfaz gráfica, el script determina si habilitar el método de entrada y qué método de entrada de idioma habilitar según la variable lang. El problema es que antes de cambiar la variable LANG a inglés, el sistema obtiene la variable LANG chino, por lo que sabe que el método de entrada chino debe habilitarse durante el proceso de inicio de la interfaz gráfica. Sin embargo, después de cambiar la variable LANG a inglés, el sistema sabía que estaba en inglés, por lo que dejó de iniciar el método de entrada chino y configuró y exportó variables relacionadas, lo que hizo que el método de entrada chino fuera inutilizable. Por lo tanto, siempre que "engañe" al sistema en este script y haga que el script del método de entrada "piense" que el sistema es chino, ¿no ejecutará el método de entrada chino y exportará las variables relevantes? Entonces, al analizar el script, encontré en xinput.sh:
Código:
lang _ region = $(echo $tmlang | sed-e ' s/"..* /') seguido de lang_region="zh_CN ".
Simplemente cambie lang_region = $(echo $tmlang | sed-e ' s/"..*/') a lang_region="zh_CN ". .
Añade una línea extra para facilitar su posterior corrección. Simplemente elimine la fila agregada.
Por supuesto, /etc/x 11/xinit/xinput . d/$ { lang _ region } en el bucle for debe cambiarse a.
/etc/x 11/xinit/xinput d/zh _ cn también está disponible.
Por supuesto, hay otros cambios, siempre que comprenda la sintaxis de los scripts de shell y comprenda el significado de los scripts. Después de esta modificación, incluso si el sistema está en inglés, el script xinput.sh leerá el archivo /etc/x 11/xinit/xinput d/zh_cn y exportará su contenido, establecerá variables de entrada como XMODIFERS y ejecutará iiimx. programa de método de entrada.
Entonces, ¿por qué no ejecutar el programa del método de entrada iiimx directamente después de iniciar la interfaz gráfica? Después de experimentar sabrás que esto es imposible. Debido a que el programa del método de entrada es un software que debe ejecutarse junto con la aplicación de entrada, es necesario exportar muchas variables durante el proceso de ejecución.
La ejecución directa de iiimx solo ejecuta el programa principal sin variables relevantes y no puede cooperar con la aplicación para completar el trabajo de entrada.
Después de completar la modificación, guarde el archivo del script. Ingrese el comando startx para iniciar la interfaz gráfica. Puede utilizar la interfaz del sistema en inglés y el método de entrada en chino. Sin embargo, cabe señalar que dado que el sistema está en inglés y el método de entrada predeterminado es el inglés, las aplicaciones iniciadas a través del menú GNOME o KDE no pueden presionar Ctrl+ESPACIO para cambiar al chino cuando ingresa chino por primera vez. Debe hacer clic en el icono del método de entrada en la barra de tareas con el mouse para cambiar. Después del primer cambio, puede usar las teclas de método abreviado Ctrl+ESPACIO para cambiar entre los métodos de entrada en chino e inglés.
Cuarto, algunas preguntas de seguimiento
Algunos programas, como Open Office, no pueden ingresar chino incluso si se inician a través del menú gnome o KDE. Esto se debe a que el entorno de todo el sistema de escritorio es inglés y el software "hereda" las variables relevantes del entorno inglés. Todos estos software están "muertos", es decir, no permiten la entrada de chinos. En este punto, puede abrir una terminal GNOME y configurar temporalmente la variable LANG en zh_CN. UTF-8:
[root@gucuiwen ~]# LANG="zh_CN.UTF-8"
Luego, en esta terminal gnome, use el comando para abrir open office: p >
[root @gucuiwen ~]# oowriter &
De esta forma Open Office "hereda" la variable LANG del terminal gnome. Después del inicio, la barra de herramientas y el menú están todos en chino y se puede ingresar en chino. Por extensión, cualquier software puede utilizar este método para abrir el software de interfaz en chino y el software de interfaz en inglés según sea necesario. Para ejecutar el software en la interfaz en inglés, simplemente ábralo desde el menú de GNOME o KDE para ejecutar el software en la interfaz china, corrija la variable LANG en la terminal y ejecútela a través del comando en la terminal con la variable LANG modificada. Por supuesto, si has instalado fuentes en otros idiomas, también puedes ejecutar el programa con la interfaz en otros idiomas. Como japonés:
[root@gucuiwen ~]# LANG="ja_JP.UTF-8"
[root @ gucui Wen ~]# gedit
El editor gedit que abrí con los dos comandos anteriores tiene una interfaz japonesa completa, pero puede ingresar chino e inglés y mostrar japonés. Para lograr el propósito de un sistema, se necesitan múltiples idiomas y múltiples textos.
Por supuesto, el requisito previo es instalar fuentes japonesas y configuraciones regionales japonesas; de lo contrario, todos los lugares con palabras se mostrarán como una serie de signos de interrogación. En resumen, primero debemos comprender los principios y luego jugar como queramos y disfrutar de la diversión de usar Linux sin restricciones.
5. Pasos de configuración rápida:
1 Modifique el archivo /etc/sysconf/i18n y cámbielo
LANG="zh_CN.UTF-8"
Revisado a:
LANG="en_US.UTF-8"
2 Modificar el archivo /etc/x 11/xinit/xinitrc . xinput .sh, agregue una línea:
lang _ region = $(echo $ tmlang | sed-e ' s/"..*//')
Revisado a:
lang_region="zh_CN "
3. Reinicie la interfaz gráfica, puede usar la interfaz en inglés y mostrar e ingresar chino correctamente
-
El siguiente es. Suplemento personal:
Cuando se utiliza ssh para iniciar sesión en LINUX, el terminal ssh a veces aparece confuso, incluso si configura LANG=en_US. He probado el cliente de SecureRT. Shell seguro de OpenSSH y SSH. Este problema ha ocurrido. A veces es bueno cambiar la configuración del cliente, pero a veces el comando solo se puede ejecutar una vez después de cambiar la configuración del cliente y luego se vuelve confuso. Por casualidad, lo vi en línea. Alguien dijo que simplemente cambie el valor de la variable LANG a "c".
Pero realmente malvado. Simplemente trátelo como LANG=C, no es necesario configurar el cliente y todos los problemas se resolverán. ¡Es tan desconcertante! Pero todavía no sé qué significa esa "C". ¿Por qué es tan poderoso?
Es necesario resolver más problemas de Linux. Consulte /chapter-00.html para obtener más detalles.
Espero adoptar