domingo, 25 de enero de 2009

Cómo modificar la variable PATH

Fuente:Bash Reference Manual

Para comenzar es necesario tener una idea general de lo que es el Bash. Me voy a limitar a copiar la definición de Wikipedia, sabiendo que existe infinita información disponible en Internet para quienes deseen informarse mejor:

bash es un shell de Unix (intérprete de órdenes de Unix) escrito para el proyecto GNU. Su nombre es un acrónimo de bourne-again shell (otro shell bourne) — haciendo un juego de palabras (born-again significa renacimiento) sobre el Bourne shell (sh), que fue uno de los primeros intérpretes importantes de Unix.

Ahora bien, cuando introducimos un comando en BASH el sistema busca un archivo con ese nombre en todos los directorios contenidos en la variable PATH. En caso de no encontrarlo se retorna un mensaje de error especificando que el comando no ha sido encontrado. Para saber los directorios contenidos en PATH debes escribir en la consola:
echo $PATH

Te retornará algo como esto:
/usr/local/bin:/usr/bin:/bin:/usr/games/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/lib/qt/bin

Cada ruta de directorio aparece separada por dos puntos (:). En caso de que desees agregar directorios a tu PATH puedes hacerlo de dos formas: La primera los hace válidos por el tiempo que dura tu sesión, la segunda los hace permanentes.

Para el primer caso basta escribir en el terminal:
PATH="$PATH:<ruta nueva1>:<ruta nueva2>:...<ruta nuevaN>"

Supongamos que tenemos un usuario que desea agregar dos carpetas a su PATH, ambas contenidas en ~/: la carpeta Scripts y la carpeta compilados. Tendría que escribir en el terminal:
PATH="$PATH:/home/nombreusuario/Scripts:/home/nombreusuario/compilados"

De esa manera ambos directorios se agregan a su variable PATH. Sin embargo, estos cambios no son permanentes y la próxima vez que el usuario acceda a su cuenta todas las modificaciones se habrán perdido.
Para que los cambios sean permanentes es necesario editar un par de archivos: ~/.bash_profile y ~/.bashsrc

~/.bash_profile
Editar este archivo permite especificar una serie de comandos que se ejecutarán en cuanto el usuario acceda a su cuenta. En caso de que el archivo no exista puedes crearlo. Un ejemplo de lo que contiene este archivo es el siguiente:

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs

BASH_ENV=$HOME/.bashrc
USERNAME=""
PATH=$PATH:/usr/local/pgsql/bin:/usr/local/sbin:/usr/sbin:/sbin
MANPATH=$MANPATH:/usr/local/pgsql/man
PGLIB=/usr/local/pgsql/lib
PGDATA=/usr/local/pgsql/data

export USERNAME BASH_ENV PATH MANPATH PGLIB PGDATA

Los directorios que aparecen asignados a la variable PATH se sumarán a los directorios básicos que asigna el sistema a todos los usuarios. El archivo .bash_profile se carga cada vez que el usuario realiza un login a su cuenta. Para decirlo de un modo más específico, cada vez que Bash es invocado mediante un login shell interactivo (cuando te logeas con tu password)o mediante un shell no interactivo con la opción --login, primero lee y ejecuta los comandos desde el archivo /etc/profile, en caso de que este archivo exista. Luego de leer este archivo busca los archivos ~/.bash_profile, ~/.bash_login y ~/.profile, en ese orden. La idea es que se ejecutarán los comandos del primero de los archivos que sea encontrado y sea legible. Una vez encontrado este archivo no seguirá buscando los demás, por esa razón es que es preferible asegurarse de trabajar con el primer archivo de la lista.

Nota: ~/ se usa para indicar tu directorio home. Si tu usuario es carlos, por ejemplo, ~/ corresponde a /home/carlos/

Sin embargo, si accedemos a un terminal desde un entorno de escritorio como Gnome, KDE o Xfce, nos encontraremos con que el archivo .bash_profile no es leído. En ese caso, además, debemos modificar el archivo .bashrc


~/.bashrc
Cuando se inicia un shell interactivo que no es un login shell, es decir que no requiere que ingreses a tu cuenta con tu clave y nombre de usuario, Bash lee y ejecuta comandos desde ~/.bashrc, si es que ese archivo existe. Un ejemplo del contenido de este archivo sería el siguiente:

alias ll="ls -al --color"
alias nautilus="nautilus --no-desktop"
alias aterm="aterm -fg white -tr"
export PS1='\u[\W]\$ '
export PAGER="most"
export PATH=$PATH:/usr/local/sbin:/usr/sbin:/sbin

Esta última linea contiene los directorios que se sumarán a los que cada usuario tiene por defecto.
De esta manera, editando ambos archivos es posible modificar tu variable PATH.

Por supuesto, existe más de un método de hacer todo lo anterior, es cosa de descubrir la forma que prefieras. Se puede, también, modificar los archivos /etc/profile y /etc/bashrc que corresponden a los archivos ~/.bash_profile y ~/.bashrc, pero que afectan a todos los usuarios. Evidentemente que para modificarlos necesitarás permisos de superusuario.

Monitoreando el estado de tu disco con los atributos SMART


Fuente: Man

Anteriormente se vio la manera de realizar un monitoreo del disco mediante los test disponibles por las utilidades SMART. Ahora se verá la manera de ver los atributos SMART disponibles para tu disco e interpretarlos con la intención de tener una idea de su estado actual. Se supone que has instalado las utilidades SMART. Si no lo has hecho puedes ver cómo hacerlo acá.

Para ver los atributos SMART disponibles para tu disco puedes escribir en el terminal
sudo smartctl -A <ruta del disco>

Si no estás seguro de la ruta de un disco puedes verificarla con Gparted o escribiendo en el teclado:
sudo fdisk -l

Por ejemplo, en mi caso, para ver los atributos de mi disco escribo:
sudo smartctl -A /dev/sda

Al hacerlo se obtiene un resultado parecido a este.

En esta tabla los atributos Raw son los únicos que pueden tener una interpretación física real, como temperatura en grados celsius, horas o número de ciclos de carga y descarga. Cada fabricante de disco convierte estos valores, usando sus conocimientos de las operaciones de los discos y modos de fallo, en valores normalizados cuyo rango va del 1 al 254. Tanto el valor actual como el peor obtenido hasta entonces son registrados en el disco, junto con el valor Threshold. El número Threshold ha sido determinado por el fabricante como el que indica que el disco está pronto a fallar o que ha excedido el límite de su vida útil pronosticada. smartctl no calcula los valores de los atributos, tipos o Thresholds, simplemente accede a ellos según los datos SMART almacenados en el dispositivo.

A continuación hay una breve explicación de algunos de los datos a los que es posible acceder gracias a esta herramienta:

ID#
Cada atributo posee un nombre y un número identificador específico. Por ejemplo, el atributo 12 es power cycle count y su valor te dice cuántas veces el disco ha arrancado.

VALUE
En la información que se te proporciona, aquellos valores bajo la columna RAW_VALUE son convertidos a un valor normalizado, el que se despliega en la columna VALUE según un rango que va de 1 a 254, con el uno considerado el peor valor. El algoritmo mediante el cual esta conversión se realiza es establecido por el fabricante del disco.

THRESH
En la columna THRESH puedes ver los valores Threshold, siendo el peor valor el 0 y el mejor 255. Si el valor normalizado es menor o igual al valor Threshold, entonces el atributo es muy probable que falle. Si el atributo es del tipo pre-failure entonces es inminente que se produzca una falla del disco.

WORST
Cada atributo, además, tiene su peor valor en la columna WORST. Este es el valor más cercano a la falla que el disco ha obtenido durante su vida útil mientras SMART ha estado habilitado.

TYPE
En la columna TYPE es posible ver el tipo de atributo desplegado. Existen sólo dos tipos: Pre-failure y Old age. Los atributos Pre-failure, como ya se estableció, si obtienen un valor menor o igual al valor Threshold son próximos a fallar. Los atributos Old age son aquellos que, en caso de obtener un valor menor o igual al valor Threshold, indican el fin de la vida productiva del dispositivo a raíz de un envejecimiento normal.

WHEN_FAILED
Si el valor normalizado actual es menos o igual al valor Threshold, entonces la columna WHEN_FAILED desplegará el mensaje FAILING_NOW. Si no es así, pero el peor valor registrado es menor o igual al valor Threshold, entonces la columna mostrará el mensaje In_the_past. Si no hay entrada alguna en esta columna, lo que se indica mediante un guión (-), entonces el atributo esta bien en ese momento y además nunca ha fallado.

UPDATED
La columna UPDATED muestra si el atributo SMART se actualiza tanto mientras el disco opera normalmente como durante un test off-line (Always) o únicamente durante éste último (Offline).

sábado, 17 de enero de 2009

Cambiar cuánto varía el volumen con cada click en el Control de Volumen

Fuente: Eric Biven’s Blog

Por defecto cada vez que haces click en los botones de aumento o disminución del volumen maestro éste varía en un 6%. Este mismo valor se aplica cuando usas teclas especiales del teclado o botones incorporados en tu laptop que cumplan la misma función. En caso de que este valor no sea de tu agrado puedes modificarlo.

Primero abres el Editor de configuración escribiendo en el terminal
gconf-editor

una vez que se abra la ventana del Editor de configuración debes ir a /apps/gnome_settings_daemon.

Allí es cosa de cambiar el valor de la clave volume_step. Por defecto su valor es 6. Basta con hacer click sobre el valor e ingresar un número entre 0 y 100. El número ingresado se interpreta como el porcentaje del volumen total que cambiará cada vez que hagas click en los botones de aumento o disminución del volumen. Yo lo modifiqué para que varíe en un 3% con cada click:



Los cambios se aplican de inmediato, por lo que sólo te resta cerrar el Editor de configuración. De ahora en adelante el Control de volumen aplicará el valor que ingresaste cada vez que hagas click en alguna tecla/botón que te permita modificar el volumen maestro.

viernes, 16 de enero de 2009

Escaneando el sistema de archivos de una partición linux (ext2/ext3) con e2fsck


Fuente: man

e2fsck te permite escanear el sistema de archivos de particiones ext2/ext3 verificando que no existan errores. Es muy importante aplicar e2fsck sólo a particiones que no estén montadas, por lo tanto recuerda desmontar las particiones antes de escanearlas. Además, antes de comenzar, es necesario que tengas claro cuáles son tus particiones. Puedes saber el nombre de tus particiones escribiendo en el terminal:
sudo fdisk -l
Escaneando una partición
Si quieres escanear una partición escribes:
e2fsck <partición>
Por lo tanto, supongamos que deseas escanear la partición /dev/sda3. Tienes que escribir en el terminal:
e2fsck /dev/sda3

Las siguientes son algunas de las opciones que puedes usar con e2fsck. Puedes acceder al resto mirando el archivo man correspondiente:

Identificando sectores malos
Si quieres que e2fsck revise los sectores que presentan problemas el comando sería:
e2fsck -c <partición>
En nuestro ejemplo:
e2fsck -c /dev/sda3
Esta opción hace que e2fsck use la herramienta badblocks para identificar, mediante un test de sólo lectura, sectores malos en la partición analizada. Si encuentra uno con problemas lo añadirá a la lista de sectores dañados para prevenir que se use de allí en adelante. En caso de usar dos veces esta opción el escaneo de sectores dañados se hará usando un test no destructivo de lectura/escritura.

Agregando sectores dañados a la lista ya existente
Para añadir aquellos sectores de la superficie del disco dañados a la lista de sectores malos que ya existe debes utilizar la opción -k en combinación con la opción -c antes descrita:
e2fsck -c -k <partición>
Usando el ejemplo escogido:
e2fsck -c -k /dev/sda3
De esta manera los sectores malos previamente identificados se mantendrán y únicamente se añadirán los nuevos descubrimientos del actual escaneo.

Revisando la fragmentación de los archivos
Para que e2fsck analice la fragmentación de los archivos debes usar el comando:
e2fsck -E fragcheck <partición>
En nuestro ejemplo:
e2fsck -E fragcheck /dev/sda3
Con esta opción se imprimirá en pantalla un reporte de aquellos archivos que presenten bloques discontinuos en el sistema de archivos de la partición analizada.

Revisando una partición recién creada
En caso de que quieras revisar una partición nueva debes escribir:
e2fsck -f <partición>
En el caso de nuestro ejemplo escribiríamos:
e2fsck -f /dev/sda3
De esta manera se fuerza a e2fsck a revisar la partición sin asumir que esta limpia por defecto.

Opción de respuesta negativa a todas las consultas
Para responder automáticamente no a todas las consultas del sistema se utiliza el comando:
e2fsck -n <partición>
Nuevamente, en el ejemplo escogido:
e2fsck -n /dev/sda3
Con esta opción se abre el sistema de archivos en modalidad de solo lectura y se asume una respuesta negativa a todas las preguntas. Esto permite el uso de e2fsck de un modo automatizado. Si, adicionalmente, la opción -c está siendo usada, el sistema de archivos se abrirá en modalidad escritura/lectura para permitir que la lista de sectores dañados pueda actualizarse. Sin embargo, no se hará ningún otro cambio en el sistema de archivos. Esta opción no puede usarse en combinación con las opciones -p o -y.

Opción de reparación automática
Para que el e2fsck repare automáticamente el sistema debes escribir:
e2fsck -p <partición>
En el caso del ejemplo sería:
e2fsck -p /dev/sda3
De este modo se repararán sin intervención humana todos los problemas que sea seguro arreglar. En caso de descubrir un conflicto que requiera de la intervención del administrador del sistema, e2fsck imprimirá una descripción del problema y luego terminará la aplicación. Esta opción no puede usarse en combinación con las pociones -n o -y.

Opción de respuesta afirmativa a todas las preguntas
Para que e2fsck asuma una respuesta positiva a todas las preguntas debes usar la opción:
e2fsck -y <partición>
En el caso del ejemplo escogido:
e2fsck -y /dev/sda3
Permite un uso no interactivo de e2fsck. No puede ser usada al mismo tiempo que las opciones -n y -p.

Para ver la versión de e2fsck en el sistema:
e2fsck -V

jueves, 15 de enero de 2009

Cómo apagar el monitor desde la linea de comandos

Fuente: Be linux my friend


Una manera fácil de apagar tu monitor es escribiendo en el terminal:
xset dpms force off

Para que el monitor se prenda nuevamente basta con mover el mouse o presionar alguna tecla del teclado. En caso de que quieras hacerte un lanzador puedes hacerlo agregando este mismo comando:



Este lanzador puede ser incorporado a tu panel superior sin ningún problema, asociándole el ícono que prefieras.
También es posible asignarle una combinación del teclado.