Capítulo 10. Particularidades de SUSE LINUX

Tabla de contenidos

10.1. Información sobre paquetes especiales
10.2. Consolas virtuales
10.3. Distribución del teclado
10.4. Configuración en función del idioma y el país

Resumen

Este capítulo le proporciona información sobre algunos paquetes de software así como sobre las consolas virtuales y la disposición del teclado. Al final del capítulo encontrará además una sección relativa a las opciones de personalización en función del idioma y el país (I18N y L10N).

10.1. Información sobre paquetes especiales

10.1.1. El paquete bash y /etc/profile

La siguiente lista muestra todos los archivos init que bash evalúa cuando se usa como shell de login. Bash procesa estos archivos en el orden indicado en la lista.

  1. /etc/profile

  2. ~/.profile

  3. /etc/bash.bashrc

  4. ~/.bashrc

Los usuarios pueden efectuar sus propias entradas en ~/.profile o en ~/.bashrc. Para garantizar que estos archivos sean procesados correctamente, recomendamos reproducir la configuración básica de /etc/skel/.profile o /etc/skel/.bashrc en el directorio del usuario. Por tanto, después de una actualización le aconsejamos adoptar las opciones de configuración de /etc/skel. Para no perder las opciones personalizadas, ejecute los siguiente comandos en la shell:

mv ~/.bashrc ~/.bashrc.old
cp /etc/skel/.bashrc ~/.bashrc
mv ~/.profile ~/.profile.old
cp /etc/skel/.profile ~/.profile

Una vez hecho esto, puede copiar las opciones personalizadas de los archivos *.old.

10.1.2. El paquete cron

Las tablas de cron se encuentran en /var/cron/tabs. El archivo /etc/crontab se configura como tabla válida para todo el sistema. En este archivo hay que introducir, además de la hora, como qué usuario ha de ejecutarse la tarea correspondiente (ver Ejemplo 10.1, “Ejemplo de entrada en /etc/crontab”, en el que figura root como usuario). Las tablas específicas de los paquetes (en /etc/cron.d) tienen el mismo formato. Ver la página del manual man cron.

Ejemplo 10.1. Ejemplo de entrada en /etc/crontab

1-59/5 * * * * root test -x /usr/sbin/atrun && /usr/sbin/atrun

No se puede usar el comando crontab -e para modificar /etc/crontab. Se debe modificar y guardar con un editor.

Algunos paquetes instalan scripts dentro de los directorios /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly y /etc/cron.monthly. De la ejecución de estos se encarga /usr/lib/cron/run-crons, que se inicia cada 15 minutos desde la tabla principal (/etc/contrab). Esto garantiza que los procesos que hayan podido desatenderse se ejecuten en el momento adecuado.

Las tareas diarias de mantenimiento del sistema están divididas en varios scripts en aras de la claridad (paquete aaa_base). Por tanto, en /etc/cron.daily puede encontrar, por ejemplo los componentes backup-rpmdb, clean-tmp o clean-vi.

10.1.3. Archivos de registro: el paquete logrotate

Muchos servicios del sistema (daemons) y el mismo kernel vuelcan periódicamente el estado del sistema y sucesos especiales en archivos de registro (logfiles). Así el administrador puede controlar de forma eficaz el estado del sistema en un momento determinado, detectar errores o funciones erróneas y solucionarlos adecuadamente. Estos archivos de registro se guardan según el FHS en /var/log y aumentan cada día de tamaño. Con ayuda del logrotate se puede controlar el crecimiento de los archivos de registro.

10.1.3.1. Configuración

El archivo de configuración /etc/logrotate.conf define el comportamiento general. Mediante la indicación include se determina principalmente qué archivos se deben evaluar; en SUSE LINUX está previsto que los paquetes individuales instalen archivos en /etc/logrotate.d (por ejemplo syslog o yast).

Ejemplo 10.2. Ejemplo de /etc/logrotate.conf

# see "man logrotate" for details 
# rotate log files weekly weekly 
# keep 4 weeks worth of backlogs rotate 4 
# create new (empty) log files after rotating old ones create 
# uncomment this if you want your log files compressed 
#compress 
# RPM packages drop log rotation information into this directory 
include /etc/logrotate.d 
# no packages own lastlog or wtmp - we'll rotate them here 
#/var/log/wtmp { 
#    monthly 
#    create 0664 root utmp 
#    rotate 1 
#} 
# system-specific logs may be also be configured here.

logrotate se controla con cron; se arranca una vez al día mediante /etc/cron.daily/logrotate.

[Important]Importante

La opción create carga de los archivos /etc/permissions* posibles opciones de configuración efectuadas como administrador. Asegúrese de que no se produzcan conflictos al realizar sus propios ajustes.

10.1.4. Páginas man

Para algunos programas GNU no se siguen manteniendo las páginas man (por ejemplo tar). En su lugar se puede usar como ayuda rápida la extensión --help o los archivos de tipo info. Info (info) es el sistema de hipertexto de GNU cuyo uso se explica con el comando info info. Las páginas info se pueden ver en Emacs con el comando emacs -f info o bien introduciendo info. También puede utilizar tkinfo, xinfo o el acceso a través del sistema de ayuda de SUSE para ver páginas info.

10.1.5. El comando locate

El comando locate para encontrar archivos rápidamente no está incluido en la instalación estándar. Instálelo en caso necesario (find-locate). Al hacerlo, se iniciará un proceso updatedb todas las noches o bien 15 minutos después de encender el ordenador.

10.1.6. El comando ulimit

El comando ulimit (user limits) permite limitar los recursos del sistema o visualizarlos. ulimit es especialmente útil para limitar el uso de la memoria por parte de las aplicaciones. Así es posible evitar que una aplicación se reserve demasiada o toda la memoria, lo que podría provocar el cuelgue del sistema.

ulimit puede ejecutarse con varias opciones. Por ejemplo, las que limitan el gasto de memoria figuran en la Tabla 10.1, “ulimit: Limitar los recursos para el usuario”.

Tabla 10.1. ulimit: Limitar los recursos para el usuario

-m

Tamaño máximo de memoria RAM

-v

Tamaño máximo de la memoria virtual

-s

Tamaño máximo de la pila

-c

Tamaño máximo de los archivo core

-a

Mostrar límites establecidos

Los límites para todo el sistema se pueden definir en /etc/profile. También es en este archivo donde se debe dar de alta la creación de los archivos core que necesitan los programadores para depurar (debug) código. Los usuarios no pueden aumentar los valores que el administrador del sistema define en /etc/profile, pero sí que pueden insertar entradas especiales en su propio ~/.bashrc.

Ejemplo 10.3. Opciones de configuración de ulimit en ~/.bashrc

# Limitar la memoria RAM 
ulimit -m 98304

# Limitar la memoria virtual 
ulimit -v 98304

Todos los valores se han de indicar en KB. Puede obtener información más detallada la página del manual man bash.

[Important]Importante

No todas las shells soportan instrucciones ulimit. Si debe realizar una configuración más compleja, PAM (por ejemplo pam_limits) le ofrece más posibilidades.

10.1.7. El comando free

El comando free es bastante equívoco cuando se trata de averiguar cómo se está utilizando la memoria RAM. Puede encontrar información útil en /proc/meminfo. Hoy en día no se debería preocupar por esto ningún usuario que utilice un sistema operativo moderno como Linux. El concepto de memoria de trabajo libre viene de la época en que aún no existía ningún administrador de memoria unificado (unified memory management). En Linux existe el lema: memoria libre es memoria mala (free memory is bad memory). Como consecuencia, Linux siempre se esfuerza por equilibrar el uso de la memoria caché sin llegar nunca a dejar memoria libre (=sin usar).

Básicamente, el kernel no sabe directamente de programas o datos de usuarios; se dedica a administrar programas y datos en los denominados “page cache”. Cuando la memoria escasea, algunas partes se escriben en la zona de intercambio (swap) o en los archivos de los cuales leía al principio con ayuda de mmap (ver man mmap).

Además el kernel dispone de otra memoria caché adicional, como la “slab cache”, que por ejemplo contiene los búferes empleados para el acceso a redes. De esta forma se solucionan las diferencias que puedan surgir entre los contadores de /proc/meminfo. La mayoría, pero no todos, se pueden consultar en /proc/slabinfo.

10.1.8. El archivo /etc/resolv.conf

La resolución de nombres se regula en el archivo /etc/resolv.conf; véase apartado Capítulo 24, DNS (Domain Name System). Sólo el script /sbin/modify_resolvconf se encarga de modificar el archivo /etc/resolv.conf. Ningún programa por sí mismo tiene el derecho de actualizar /etc/resolv.conf. La configuración de red y los datos correspondientes sólo se pueden mantener coherentes si se cumple siempre esta regla.

10.1.9. Configuración de GNU Emacs

GNU Emacs es un entorno de trabajo bastante complejo. Puede encontrar más información sobre el mismo en: http://www.gnu.org/software/emacs/. En los siguientes párrafos se explican los archivos de configuración que GNU Emacs procesa durante el inicio.

Al iniciarse, Emacs lee diversos archivos con la configuración del usuario, administrador de sistemas o del distribuidor a efectos de personalización o preconfiguración. El archivo de inicio ~/.emacs se instala en el directorio local de cada usuario desde /etc/skel; .emacs lee a su vez el archivo /etc/skel/.gnu-emacs. Si un usuario desea modificar este archivo, se recomienda copiarlo en el propio directorio local de usuario (con cp /etc/skel/.gnu-emacs ~/.gnu-emacs) y realizar allí los cambios deseados.

El archivo ~/.gnu-emacs-custom se crea en .gnu-emacs como custom-file. Si el usuario quiere realizar su propia configuración por medio de las opciones customize, los cambios se guardarán en ~/.gnu-emacs-custom.

Junto con el paquete emacs se instala en SUSE LINUX el archivo site-start.el en el directorio /usr/share/emacs/site-lisp. El archivo site-start.el se carga antes que el archivo de inicio ~/.emacs. site-start.el se ocupa, por ejemplo, de cargar automáticamente archivos de configuración que han sido instalados con paquetes complementarios de Emacs incluidos en la distribución como psgml. Tales archivos de configuración se encuentran también en /usr/share/emacs/site-lisp y comienzan siempre con suse-start-. El administrador local de sistemas puede definir opciones de configuración válidas en todo el sistema con default.el.

Puede obtener información adicional sobre estos archivos en el archivo info de Emacs en el nodo Init File: info:/emacs/Init File. Allí también se describe cómo evitar que se carguen los mismos (en caso de que sea necesario).

Los componentes de Emacs están distribuidos en varios paquetes:

  • Paquete básico emacs.

  • Además hay que instalar normalmente el paquete emacs-x11, el cual contiene el programa con soporte para X11.

  • En el paquete emacs-nox se incluye el programa sin soporte X11.

  • emacs-info: documentación en línea en formato info.

  • emacs-el contiene los archivos de librerías no compiladas en Emacs Lisp. Actualmente no es necesario.

  • Numerosos paquetes adicionales que pueden ser instalados en caso necesario: emacs-auctex (para LaTeX); psgml (para SGML/XML); gnuserv (para el uso de cliente y servidor), etc.

10.1.10. Introducción a vi

Los editores de texto se emplean todavía para realizar numerosas tareas de administración de sistemas así como para programar. En los entornos Unix, vi se cristalizó como un editor estándar que, además de ofrecer cómodas funciones de edición, resulta incluso más ergonómico que algunos editores que se controlan con el ratón.

10.1.10.1. Modos de operación

vi distingue tres modos de uso diferentes: el modo de inserción (insert), el modo de comandos (command)y el modo extendido (extended). Las teclas tienen significados diferentes dependiendo del modo de operación. Después de arrancarlo, vi se encuentra normalmente en el modo command. Lo primero que debe aprenderse es a pasar de un modo a otro:

Modo command a modo insert

Para cambiar del modo command a insert existen múltiples posibilidades: puede pulsar por ejemplo A (append) para añadir, I para insertar o bien O para insertar una línea nueva por debajo de la línea actual.

Modo insert a modo command

Para salir del modo insert pulse la tecla Esc. No es posible salir de vi en modo insert, por eso es importante acordarse siempre de pulsar Esc antes de cualquier operación.

Modo command a modo extended

Puede acceder al modo extendido de vi introduciendo un signo de dos puntos (:). Este modo, también llamado ex, es como un editor de línea de comandos independiente que puede utilizarse para tareas de diversa complejidad.

Modo extended a modo command

Después de haber ejecutado un comando en modo extended, el usuario vuelve al modo command. Si accede al modo extendido por error, borre los dos puntos con la tecla de retroceso (Backspace) para volver así al modo de comandos.

El cambio del modo insert al modo extended siempre requiere pasar por el modo command. Un cambio directo no está previsto.

Al igual que otros editores, vi tiene su propio mecanismo para terminar el programa. Así, no es posible salir de vi en el modo insert sino que es necesario salir primero del modo insert con la tecla Esc. A continuación dispone de dos opciones:

  1. Salir sin guardar: para salir del editor sin guardar los cambios, introduzca en el modo command : W Q. En el modo extended, W significa “write” y Qquit” (salir).

  2. Guardar y salir: existen varias posibilidades para guardar los cambios y salir del editor. En el modo command, utilice Z Z. Para salir del programa y guardar los cambios desde el modo extended, introduzca : W Q. En el modo extended, W significa “write” (escribir) y Qquit” (salir).

10.1.10.2. vi en acción

vi puede utilizarse como un editor normal. Una vez que se encuentre en modo insert puede introducir texto y borrarlo con las teclas y . El cursor se mueve con las teclas de control del cursor (flechas).

En ocasiones, precisamente estas teclas son una posible fuente de problemas. Esto se debe a la multitud de tipos de terminal y a sus códigos de teclas especiales. Este problema puede evitarse con el modo command. Pulse Esc para pasar del modo insert al modo command. En este modo se puede mover el cursor con las teclas H, J, K y L con el siguiente significado:

H

un carácter hacia la izquierda

J

una línea hacia abajo

K

una línea hacia arriba

L

un carácter hacia la derecha

Los comandos del modo command de vi pueden tener ciertas variaciones. Por ejemplo, para ejecutar un comando varias veces se puede introducir el número de repeticiones como cifra y después el propio comando. La secuencia de comandos 5L hace que el cursor se mueva cinco caracteres a la derecha.

10.1.10.3. Información adicional

vi soporta una amplia variedad de comandos. Permite el uso de macros, atajos de teclado, búferes y un sinfín de características cuya descripción sería demasiado larga para este capítulo. SUSE LINUX utiliza una versión mejorada de vi llamada vim (vi improved). Existen numerosas fuentes de información sobre este editor:

[Important]La licencia de VIM

vim representa un tipo de software llamado “Charityware”. Esto significa que los autores no quieren recibir dinero por su trabajo sino que le animan a realizar un donativo para un proyecto humanitario. En este caso se trata de un proyecto de apoyo a niños en Uganda. Puede encontrar información sobre este proyecto en Internet en http://iccf-holland.org/index.html, http://www.vim.org/iccf/ y http://www.iccf.nl/.


SUSE LINUX Manual de administración 9.3