Guía de Configuración básica de Servidor Linux basado en Ubuntu Server 12.04 LTS Jorge Armando Medina, Sistemas LinuxRed. Copyright © 2014 Jorge Armando Medina Se otorga permiso para copiar, distribuir y/o modificar éste documento bajo los términos de la Licencia de Documentación Libre GNU, Versión 1.2 o cualquier otra posterior publicada por la Fundación de Software Libre; sin secciones invariantes, sin textos en portada y contraportada. Una copia de la licencia se incluye en la sección titulada “Licencia de Documentación Libre GNU [GnuCopyright.htm]”. 2014/10/06 Revisión 0.1 Historial de revisiones 03 Oct 2014 jm [email protected] Versión inicial. Resumen Este articulo es el tercero dedicado a la instalación y configuración de servidores de red basado en Ubuntu Server 12.04, en esta ocasión dedicaremos tiempo a realizar las tareas de configuración básicas post instalación, al realizar estas tareas dejaremos un ambiente funcional y personalizado para que sea posible desarrollar de forma eficiente diferentes actividades ya sea desde desarrollo, administración y soporte de sistemas. Tabla de contenidos Introducción ....................................................................................................................................... 2 Objetivos ........................................................................................................................................... 2 Audiencia .......................................................................................................................................... 2 Definición de Requisitos ...................................................................................................................... 2 Introducción a la ejecución de tareas administrativas en Ubuntu Server con sudo ............................................ 3 Definir y configurar la localización del sistema ........................................................................................ 3 Configurar la zona horaria y el reloj del sistema ....................................................................................... 4 Configuración personalizada del entorno del shell bash .............................................................................. 5 Inicializar la base de datos indexada de manuales ..................................................................................... 9 Configuración del entorno del editor de textos vim ................................................................................... 9 Configurando un mensaje previo al inicio de sesión por red ...................................................................... 10 Configuración de la herramienta GNU screen para tener múltiples ventanas de shell ...................................... 10 Configuración de la herramienta de visualización de múltiples logs multitail ................................................ 12 Conclusiones ..................................................................................................................................... 13 Recursos adicionales .......................................................................................................................... 13 1 Guía de Configuración básica de Servidor Linux basado en Ubuntu Server 12.04 LTS Introducción Este articulo es el tercero dedicado a la instalación y configuración de servidores de red basado en Ubuntu Server 12.04, en esta ocasión dedicaremos tiempo a realizar las tareas de configuración básicas post instalación, al realizar estas tareas dejaremos un ambiente funcional y personalizado para que sea posible realizar de forma eficiente diferentes actividades ya sea desde desarrollo, administración y soporte de sistemas. Para ver el articulo donde se muestra la instalación de Ubuntu Server 12.04 vaya a la lista de referencias adicionales al final del articulo. Objetivos Las tareas de configuración básica del servidor que vamos a realizar son las siguientes: • Introducir sudo para ejecutar tareas como administrador. • Definir y configurar la localización del sistema. • Configurar la zona horaria y el reloj del sistema. • Configurar de forma personalizada el entorno del shell bash. • Inicializar la base de datos indexada de manuales. • Configurar entorno del editor de textos vim. • Configurar un mensaje previo al inicio de sesión por red. • Configurar la herramienta GNU screen para tener múltiples ventanas de shell. • Configurar la herramienta de visualización de múltiples logs multitail. Al final los lectores aprenderán a personalizar no solo el sistema si no también algunas de las herramientas que facilitan la administración del mismo. Audiencia Este documento esta enfocado a ayudar a administradores de Sistemas, desarrolladores y otros interesados en como realizar las configuraciones básicas en un servidor de red con Ubuntu Server 12.04. Definición de Requisitos Todas las tareas que se describen en esta guía las realizaremos la línea de comandos usando el shell bash y editaremos archivos de texto usando el editor vim(1). Recomiendo encarecidamente aprender el editor de textos vim usando el tutorial integrado, para esto ejecute el programa vimtutor(1) y dedique unos 30 minutos para aprender a ser un maestro de vim. $ vimtutor es Nota Si no se siente cómodo con el editor de textos vim, puede usar uno más simple como nano o incluso mcedit. 2 Guía de Configuración básica de Servidor Linux basado en Ubuntu Server 12.04 LTS Si no esta muy familiarizado con el uso de la línea de comandos recomendamos lea la pagina del manual de bash(1) o que lea cualquier guia de fundamentos Unix o Linux. Para aquellos que desean adquirir mejores habilidades en los sistemas GNU/Linux recomendamos leer el documento tituloado Guía de Administración de Sistemas GNU/Linux, lo puede encontrar en la página de TLDP-ES. Vea las referencias al final del documento. Introducción a la ejecución de tareas administrativas en Ubuntu Server con sudo Es recomendable iniciar sesión con una cuenta normal que tenga privilegios de sudo para realizar las tareas de administración, si no se usa sudo(8) entonces y como último recurso inicie sesión con la cuenta de root. Importante En Ubuntu Server la cuenta root no tiene una contraseña asignada, por lo que no podrá iniciar sesión directamente como root. Para ejecutar un programa con los privilegios del usuario root en lugar de cambiarnos por completo a una sesión de root, usamos el comando sudo, por ejemplo: $ sudo /etc/init.d/ssh restart Se puede convertir a root así: $ sudo -i ó $ sudo su En las siguientes secciones describiré las tareas usando el programa sudo principalmente. Definir y configurar la localización del sistema La localización (l10n) se usa para definir el lenguaje en el que el sistema se configurará en relación a un pais o region, en inglés se conoce como locale. Los programas usan las locales para determinar configuraciones de lenguaje y país especificos. Es posible que los sistemas soporten más de una configuración de localización, o incluso mezclar varias locales. La configuración de locales las definimos desde el proceso de instalación, sin embargo, si queremos cambiarlas o agregar algunas adicionales aquí mostramos el procedimiento. Antes de configurar la locale predefinida generaremos todas las locales para nuestra instalación, las locales que crearemos son las versiones UTF-8 y ISO-8859-1 para el Inglés US, Español España y Español México. Para generar las locales usamos el comando locale-gen(8), por ejemplo: $ sudo locale-gen en_US.UTF-8 en_US es_ES.UTF-8 es_ES es_MX.UTF-8 es_MX Para configurar la locale predeterminada a inglés US UTF-8 usamos el comando update-locale, por ejemplo: $ sudo update-locale LANG="en_US.UTF-8" 3 Guía de Configuración básica de Servidor Linux basado en Ubuntu Server 12.04 LTS El comando anterior escribe la locale en el archivo /etc/default/locale, el cual es leído por los módulos de autenticación PAM para definir la locale predeterminada para las sesiones en consola. Verifique que la locale predeterminada esta configurada: $ sudo cat /etc/default/locale LANG=en_US.UTF-8 Verifique que las nuevas locales aparecen en la salida del comando: $ sudo locale -a C en_US en_US.utf8 es_ES es_ES.utf8 es_MX es_MX.utf8 POSIX También es posible usar la variable LANG de forma especifica para un solo usuario agregando la variable y su valor en los scripts de inicio de sesión del shell. Configurar la zona horaria y el reloj del sistema La zona horaria o uso horario define la configuración del sistema en la que se ajusta el reloj, esta zona horaria esta asociada a un país o region en el que se localiza el sistema. Las zonas horarias estan basadas en el Tiempo Universal Coordinado o UTC. La zona horaria en la que se encuentra también fue establecida en el proceso de instalación, aquí veremos como mostrar la zona horaria actual y como cambiarla desde el shell. Para ver la zona horaria actual puede usar el comando date(1), por ejemplo: $ date Sat Oct 4 00:19:58 EDT 2014 La zona horaria está entre la hora y el año, en este caso EDT. Para cambiar la zona horaria usemos el comando dpkg-reconfigure(8) para reconfigurar el paquete de sistema tzdata: $ sudo dpkg-reconfigure tzdata Para cambiar la zona horarioa a la de la ciudad de México elegimos America/Mexico_City. También puede definir la zona horaria manualmente copiando el archivo de la zona horaria a /etc/localtime, por ejemplo: $ sudo cp /usr/share/zoneinfo/America/Mexico_City /etc/localtime Verifique que aparece la zona horaria en la salida del comando date: $ date Wed Oct 20 00:32:24 CDT 2010 4 Guía de Configuración básica de Servidor Linux basado en Ubuntu Server 12.04 LTS Si el horario del servidor no esta correcto, temporalmente configure una hora aproximada: El formato para date es: MMDDhhmm. $ sudo date 08062051 Después veremos como mantener sincronizado el reloj del sistema usando una fuente externa a través del protocolo NTP. Configuración personalizada del entorno del shell bash En Ubuntu el shell predeterminado para nuevas cuentas de usuario es /bin/sh y este es un enlace simbólico al shell dash(1), el cual es un shell parecido a bash pero recortado, por lo tanto es más ligero y rápido. Lo anterior lo podemos validar así: $ ls -l /bin/sh lrwxrwxrwx 1 root root 4 Mar 29 12:53 /bin/sh -> dash En lo personal prefiero que el shell predeterminado sea bash(1), por lo tanto lo cambiamos de la siguiente manera: $ sudo update-alternatives --install /bin/sh sh /bin/bash 1 $ sudo update-alternatives --list sh $ sudo update-alternatives --display sh Ahora validamos que el cambio fue exitoso: $ ls -l /bin/sh lrwxrwxrwx 1 root root 20 2010-08-07 01:10 /bin/sh -> /etc/alternatives/sh Y ahora el enlace apunta a: $ ls -l /etc/alternatives/sh lrwxrwxrwx 1 root root 9 2010-08-07 01:10 /etc/alternatives/sh -> /bin/bash Ahora que hemos definido a bash como el shell predeterminado, configuramos el archivo de control del shell bash para el usuario root donde agregaremos la carga de otras personalizaciones a través del archivo /root/.bash_local. $ sudo vim /root/.bashrc Al final del archivo agrego el siguiente bloque: # Configuraciones Personales: Jorge Armando Medina (Tuxjm) # Incluir configuraciones personales para el shell bash # del archivo ~/.bash_local. if [ -f ~/.bash_local ]; then . ~/.bash_local fi Creando el archivo de personalizaciones locales para el shell bash: $ sudo vim /root/.bash_local 5 Guía de Configuración básica de Servidor Linux basado en Ubuntu Server 12.04 LTS Este es el contenido del script: # # Archivo de configuración personal para el shell bash. # Autor: Jorge Armando Medina (Tuxjm) # Habilitamos el autocompletado del shell if [ -f /etc/bash_completion ]; then . /etc/bash_completion fi # Incluir aliases personales para el shell bash # del archivo ~/.bash_aliases. if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi # Agregar el directorio $HOME/bin al PATH de root if [ -d "$HOME/bin" ] ; then PATH="$HOME/bin:$PATH" fi # Mi Prompt de dos linesa y colores PS1='[\e[1;31m\u\e[m@\e[1;34m\H\e[m][\e[2;33m\w\e[m]\n# ' # # Opciones para el historial de comandos, ver bash(1) para más opciones # # Archivo del historial export HISTFILE=~/.bash_history # Numero máximo de entradas en HISTFILE, si se llega al limite las entradas más # antiguas son recicladas. export HISTFILESIZE=2000 # Número de entradas que el historial recordara export HISTSIZE=1000 # Si la entrada actual es igual a la anterior entonces no guardarla en el historial, export HISTCONTROL=ignoredups # Agregar un timestamp al historial en el formato: Aug-02 - 11:46:16 export HISTTIMEFORMAT="%h-%d - %H:%M:%S " # Anexar al final del archivo history, no sobre escribirlo. shopt -s histappend # Variables para el editor de textos predeterminado: export EDITOR=vim export VISUAL=$EDITOR # Color resaltado grep a verde: export GREP_COLOR='1;32' El archivo /root/.bash_local carga algunos alias personales desde el archivo /root/.bash_aliases, lo creamos: $ sudo vim /root/.bash_aliases 6 Guía de Configuración básica de Servidor Linux basado en Ubuntu Server 12.04 LTS Este es su contenido: # # Archivo de aliases personales para el shell bash. # Autor: Jorge Armando Medina (Tuxjm) # Soporte ls coloreado y algunos aliases: export LS_OPTIONS='--color=auto' eval "`dircolors`" alias ls='ls $LS_OPTIONS' alias ll='ls $LS_OPTIONS -l' alias l='ls $LS_OPTIONS -lA' alias l='ls -CF' # Algunos alias de seguridad para evitar errores clasicos: alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' # Alias para grep y familia alias grep='grep --color=auto' alias fgrep='fgrep --color=auto' alias egrep='egrep --color=auto' # Extras alias wtf='watch -n 1 "w -hs"' alias wth='ps -uxa | more' # Alias para ver mensajes del kernel y mensaes generales alias showklog='tail -f /var/log/kern.log' alias showmess='tail -f /var/log/messages' Para validar las configuraciones personalizadas de bash, iniciamos sesión como root: $ sudo su Va a terminar con un prompt de dos líneas: [root@neti01][~] # Si las tareas anteriores las realizó como root puede re cargar los alias así: # . /root/.bashrc ó # source /root/.bashrc Para mostrar que las variables de ambiente se definieron como lo deseamos usamos el comando printenv: # printenv GREP_COLOR=1;32 SHELL=/bin/bash TERM=xterm 7 Guía de Configuración básica de Servidor Linux basado en Ubuntu Server 12.04 LTS HISTSIZE=1000 HISTFILESIZE=2000 USER=root LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40; 33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:tw=30;42:ow=34; 42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.svgz=01;31:*.arj=01;31: *.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31: *.dz=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz2=01;31:*.tz=01;31: *.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31: *.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35: *.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35: *.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.mng=01;35: *.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35: *.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35: *.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35: *.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35: *.yuv=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36: *.mka=00;36:*.mp3=00;36:*. mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36: GREP_COLORS=1;32 MAIL=/var/mail/root PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin PWD=/root EDITOR=vim LANG=en_US.UTF-8 HISTCONTROL=ignoredups SHLVL=1 HOME=/root LS_OPTIONS=--color=auto LOGNAME=root VISUAL=vim LESSOPEN=| /usr/bin/lesspipe %s LESSCLOSE=/usr/bin/lesspipe %s %s HISTTIMEFORMAT=%h-%d - %H:%M:%S HISTFILE=/root/.bash_history _=/usr/bin/printenv Para mostrar que las alias definieron como lo deseamos usamos el comando alias: # alias alias cp='cp -i' alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' alias grep='grep --color=auto' alias l='ls -CF' alias ll='ls $LS_OPTIONS -l' alias ls='ls $LS_OPTIONS' alias mv='mv -i' alias rm='rm -i' alias showklog='tail -f /var/log/kern.log' alias showmess='tail -f /var/log/messages' alias wtf='watch -n 1 "w -hs"' alias wth='ps -uxa | more' 8 Guía de Configuración básica de Servidor Linux basado en Ubuntu Server 12.04 LTS Inicializar la base de datos indexada de manuales Es importante que en el sistema local tengamos una base de datos actualizada de los manuales de sistema y otros programas instalados y que usamos con frecuencia. Anteriormente se usaba el comando makewhatis(1) para construir o actualizar la base de datos de manuales que usa whatis, se usaba algo así: $ sudo makewhatis Sin embargo en las distribuciones GNU/Linux actuales se remplazo por el uso de mandb(8), para crearla use la opción -c, así: $ sudo mandb -c Ahora si pruebe con apropos(1) o whatis(1) para buscar la información sobre un comando, por ejemplo: $ apropos editor ó $ whatis vim Para más información para consultar la base de datos de manuales vea las páginas de los manuales de los comandos antes mencionados. Configuración del entorno del editor de textos vim El editor de textos vim es muy fácil de usar y también muy potente y personalizable, en esta sección mostraré como podemos personalizarlo de forma simple. En lo personal me gusta habiltar el resaltado de sintaxis para diferentes tipos de archivos, y también me parece bastante cómodo configurar vim para que al reabrir un archivo recién editado te posicione en la última línea editada. Creamos el archivo de personalización de vim /root/.vimrc: $ sudo vim /root/.vimrc Con el siguiente contenido: " Vim5 and later versions support syntax highlighting. Uncommenting the next " line enables syntax highlighting by default. syntax on " Uncomment the following to have Vim jump to the last position when " reopening a file if has("autocmd") au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") \| exe "normal g'\"" | endif 9 Guía de Configuración básica de Servidor Linux basado en Ubuntu Server 12.04 LTS endif Si desea aplicar estos cambios de forma global edite el archivo /etc/vim/vimrc. Configurando un mensaje previo al inicio de sesión por red En lo personal considero una buena práctica definir un mensaje de aviso a todos aquellos usuarios que intentan iniciar sesión por red, por ejemplo por ssh, para esto definimos un mensaje en el archivo /etc/issue.net, por ejemplo: ############################################################################## #### This is a private system. #### ############################################################################## ############################################################################## Only authorized users may access this system with their individually assigned user accounts. Sharing account information with anyone is prohibited. All access to this system and all traffic to and from it may be monitored by the system owner. ############################################################################## Con esto, cada vez que algún usuario intenta conectarse por ssh al sistema recibirá ese mensaje aun cuando no ha proporsionado ninguna credencial de acceso. Configuración de la herramienta GNU screen para tener múltiples ventanas de shell En lo personal siempre trabajo en la consola en los servidores Linux, y aun cuando siempre uso el shell bash, prefiero ejecutar GNU screen por encima de bash para tener todas las funcionalidades como múltiples ventanas o pestañas y poder cambiarme entre ellas, des attachar las sesiones, dejarlas en background y mucho más, esta es la configuración que uso en los servidores de red. Creamos el archivo de configuraciones locales /root/.screenrc: Con el siguiente contenido: # # Config personal GNU/screen # hardstatus on hardstatus alwayslastline startup_message off termcapinfo xterm ti@:te@ hardstatus string "%{= kG}%-w%{.rW}%n %t%{-}%+w %=%{..G} %H %{..Y} %m/%d %C%a " shell -$SHELL screen screen screen screen -t -t -t -t bash1 bash1 bash2 bash3 0 1 2 3 10 Guía de Configuración básica de Servidor Linux basado en Ubuntu Server 12.04 LTS screen -t bash4 4 Normalmente me gusta lanzar screen con un nombre de sesión especifico, por ejemplo: # screen -S jmedina Aquí les dejo un ejemplo visual de como se vería screen con la configuración arriba mostrada: Algunos de los atajos de screen que uso son: • Ctrl+a c - Crea una nueva ventana. • Ctrl+a n - Se usa para cambiarse a la siguiente venana, hacía adelante. • Ctrl+a p - Se usa para cambiarse a la ventana anterior, hacía atras. • Ctrl+a " - Se usa para mostrar una lista de las ventanas creada. • Ctrl+a A - Se usa para renombrar el nombre de la ventana, por default es bash. • Ctrl+a d - Se usa para detacharse de la sesión screen. Para listar las sesiones screen activas, usamos: # screen -ls Para reconectarnos a una sesión screen necesitamos el ID número o el nombre, por ejemplo: # screen -Dr 1107 ó # screen -Dr jmedina 11 Guía de Configuración básica de Servidor Linux basado en Ubuntu Server 12.04 LTS Para conectarse a un screen activo sin desconectar al otro usuario, es decir, para compartir una sesión de screen use: # screen -x jmedina Importante Recuerde que ambos usuarios tienen permisos RW en la sesión por lo que es importante coordinarse para no solapar el trabajo. Para más información sobre el uso de gnu screen se recomienda leer su pagina del manual del comando screen(1). Configuración de la herramienta de visualización de múltiples logs multitail Para ver el contenido de un archivo de log en modo seguimiento es común usar el comando tail(1), sin embargo, en la mayoría de ocaciones prefiero usar el programa multitail(1) en lugar de tail, ya que ofrece mayores beneficios, por lo tanto también creo un archivo de personalización local. Aquí les muestro un ejemplo visual de como se ve multitail: Primero tenemos que instalarlo: $ sudo apt-get update && sudo apt-get install multitail Creo el archivo /root/.multitailrc: Con el siguiente contenido: check_mail:0 12 Guía de Configuración básica de Servidor Linux basado en Ubuntu Server 12.04 LTS El programa multitail lo podemos lanzar así para abrir más de un archivo de log y visualizarlos por separado en una sola ventana tipo mosaico. $ sudo multitail /var/log/messages /var/log/kern.log Si tenemos coloreado para un tipo en especifico lo podemos lanzar así: $ sudo multitail -cS postfix /var/log/mail.log Con multitail también podemos mostrar la salida de un comando en modo follow, por ejemplo: # multitail -R 2 -l "netstat -plutn" /var/log/daemon.log Para ver los tipos de logs para los que tiene soporte de resaltado de sintaxis ver el contenido del archivo de configuración /etc/multitailrc. Conclusiones En este articulo hemos visto como realizar todas las configuraciones básicas de sistema de forma manual, ahora ya tenemos un entorno más personalizado, cabe señalar que todas las configuraciones mostradas no siempre son requeridas, sin embargo, después de más de 10 años de administrar servidores Linux me siento satisfecho con estas configuraciones y las recomiendo para cualquier otro administrador de sistemas. En el siguiente articulo mostrare como realizar otras configuraciones de nivel medio-avanzado de servidore Linux que servirán para tener el sistema más a punto. Recursos adicionales Para obtener más información, consulte los siguientes recursos que puede encontrar tanto en el sistema local o en línea: • Para más información acerca de los comandos utilizados se recomienda leer las páginas de los manuales de cada uno de ellos. • locale (1) - Get locale-specific information. • locale-gen (8) - compile a list of locale definition files • date (1) - print or set the system date and time • dpkg-reconfigure (8) - reconfigure an already installed package • dash (1) - command interpreter (shell) • bash (1) - GNU Bourne-Again SHell • bash-builtins (7) - bash built-in commands, see bash(1) • man (7) - macros to format man pages • whatis (1) - imprime descripciones de páginas de manual • apropos (1) - buscar entre las páginas del manual y las descripciones • vim (1) - Vi IMproved, a programmers text editor • vimtutor (1) - the Vim tutor 13 Guía de Configuración básica de Servidor Linux basado en Ubuntu Server 12.04 LTS • issue (5) - prelogin message and identification file • screen (1) - screen manager with VT100/ANSI terminal emulation • tail (1) - output the last part of files • multitail (1) - browse through several files at once • Recomendamos leer la documentación en línea para conocer más acerca de las herramientas que usamos en Ubuntu Server: • Guía de Instalación de Servidor Linux basado en Ubuntu Server 12.04 LTS: http://docs.sistemaslinuxred.com.mx/ guia-de-instalacion-de-servidor-linux-basado-en-ubuntu-server-1204-lts/html/. • The Linux Documentation Proyect Espanish: http://es.tldp.org. • Guía de Administración de Sistemas GNU/Linux: http://es.tldp.org/htmls/proy-guia-admon-sistemas.html. • Language Localization: http://en.wikipedia.org/wiki/Language_localisation. • Internacionalization and Localization: http://en.wikipedia.org/wiki/Internationalization_and_localization. • Uso Horario: http://es.wikipedia.org/wiki/Huso_horario. • Tiempo Universal Coordinado (UTC): http://es.wikipedia.org/wiki/Tiempo_universal_coordinado. • Shell bash: http://www.gnu.org/software/bash. • Shell dash: http://en.wikipedia.org/wiki/Almquist_shell. • Dash As Bin Sh: https://wiki.ubuntu.com/DashAsBinSh. • Bash Prompt HowTO: http://tldp.org/HOWTO/Bash-Prompt-HOWTO. • sudo y redirección de salida estándar: http://tuxjm.net/2009/07/23/sudo-y-redireccion-de-salida-estandar. • Vim the Editor: http://www.vim.org. • GNU Screen: http://www.gnu.org/software/screen. • Multitail: http://www.vanheusden.com/multitail. 14