Tabla de contenidos
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).
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.
/etc/profile
~/.profile
/etc/bash.bashrc
~/.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.
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.
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.
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.
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.
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.
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
| Tamaño máximo de memoria RAM |
| Tamaño máximo de la memoria virtual |
| Tamaño máximo de la pila |
| Tamaño máximo de los archivo core |
| 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.
![]() | Importante |
|---|---|
No todas las shells soportan instrucciones ulimit. Si
debe realizar una configuración más compleja, PAM (por ejemplo
| |
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.
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.
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.
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.
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:
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.
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.
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.
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:
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 Q “quit” (salir).
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 Q “quit” (salir).
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:
un carácter hacia la izquierda
una línea hacia abajo
una línea hacia arriba
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.
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:
vimtutor es un programa de aprendizaje interactivo para vim.
El comando :help de vim
muestra una ayuda extensa sobre muchos temas.
En la URL http://www.truth.sk/vim/vimbook-OPL.pdf se encuentra un libro (en inglés) sobre vim.
La página web del proyecto vim, http://www.vim.org, muestra todas las novedades e incluye listas de correo y documentación adicional.
En Internet se encuentran algunos tutoriales sobre vim. Entre ellos cabe destacar: http://www.selflinux.org/selflinux/html/vim.html, http://www.linuxgazette.com/node/view/9039 y http://www.apmaths.uwo.ca/~xli/vim/vim_tutorial.html. Una lista de enlaces adicionales está disponible en http://linux-universe.com/HOWTO/Vim-HOWTO/vim-tutorial.html.
![]() | 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/. | |