Últimas Publicaciones

Salida coloreada del comando “ls”

Observa el siguiente comando:

	[lacofi@claudia externos]$ ls -Fohl --color
	total 142K
	-rw-r--r--    1 lacofi    28K 2000-09-22 23:34 addref.jpg
	-rw-r--r--    1 lacofi    13K 2000-09-22 23:34 altern_q.jpg
	-rw-r--r--    1 lacofi    17K 2000-09-22 23:34 altern_v.jpg
	-rw-r--r--    1 lacofi   1.5K 2000-09-22 23:34 index.html
	-rw-r--r--    1 lacofi   2.3K 2000-09-22 23:34 intro.html
	-rw-r--r--    1 lacofi   4.6K 2000-09-22 23:34 irix.html
	-rw-r--r--    1 lacofi     80 2000-09-22 23:34 newref.txt
	-rw-r--r--    1 lacofi    28K 2000-09-22 23:34 newtable.tar.gz
	-rwxr-xr-x    1 lacofi    43K 2000-09-22 23:34 newtable*
	-rw-r--r--    1 lacofi   4.1K 2000-09-22 23:34 problems.html

Se puede modificar a voluntad qué colores y con qué patrones se producirá la salida. Para ello hay que modificar el fichero "/etc/DIR_COLORS" o bien el fichero ".dir_colors" de nuestro home. Ahora bien, yo me he encontrado con que en algunos sistemas no funciona, y por mucho que modifiques, solo salen los directorios en color azul (el resto de los ficheros salen sin colorear). ¿Cómo solucionarlo?.

Pues yo lo soluciono simplemente metiendo en el ".bashrc" de nuestro home la siguiente orden:

	eval `dircolors ~/.dir_colors`

Un truco sencillito esta vez, ¿verdad?. :-)

Prompt con colores

Habreis observado que mis indicadores de comandos suelen mostrar colores diferenciados dependiendo de qué usuario esté logado:

	[lacofi@claudia lacofi]$ su
	password:
	[root@claudia lacofi]# su maria
	[maria@claudia lacofi]$ 

Esto se consigue metiendo secuencias ANSI en el prompt, por medio de la variable $PS1. Esto se define metiendo en el fichero .bashrc de nuestro home:

	export PS1='\[\033[1;33m\][\u@\h \W]\$ \[\033[0m\]'

El término \033 es el carácter de escape. [1;33 es el código para el color amarillo, mientras que [1;36 sería para el color cian y [1;31 para el color rojo. Ejecutando este script veremos una muestra de qué colores y qué codigos hay disponibles (por cierto que este script no es mío... a alguien se lo debo, pero no estaba firmado y no me acuerdo de dónde lo saqué).

Je, je... qué despiste... el script está sacado del Bash-Prompt-COMO que viene con el mismísimo Linux. El autor es Giles Orr y el traductor Iosu Santurtún. A ellos van las gracias, pues. :-)

Firestarter y los dichosos “hits”

Este fue uno de mis mayores quebraderos de cabeza. Si arrancas el cortafuegos "Firestarter", te encontrarás, cada vez que salgas a consola, con que ésta se te llena continuamente de basura, o sea, de salidas log procedentes del dichoso cortafuegos.

Por un lado, no quieres perder firestarter (es cómodo y útil), pero por el otro, la consola se vuelve una casa de locos por culpa de los hits. ¿Qué hacer?.

Pues los hits desaparecen de la consola simplemente tecleando como root el comando:

	[root@claudia lacofi]# dmesg -n1

Si no quieres tener que teclearlo cada vez que enciendes el ordenador, puedes hacer como yo y crear en /etc/rc.boot (o /etc/conf.d o el directorio equivalente en tu distribución) un fichero llamado 01-dmesg, con permisos de lectura y ejecución para root.root y que contenga:

	#! /bin/sh
	#       /etc/rc.boot/01-dmesg
	#       Ajustes para reducir mensajes en consola
	#

	dmesg -n1

Lo que hace esta orden (si consultas "man dmesg") es cancelar todos los mensajes del kernel en consola, excepto los de la clase "kernel panic". Ojo, lo que estás cancelando es la salida por consola, no el registro de los mensajes, que continuarán almacenandose normalmente en los archivos de /var/log. Si quieres eliminar también el registro de los hits en /var/log, tendrás que cambiar el fichero /etc/syslog.conf que está decentemente comentado. Eso sí, hacer esto último significará perder todos los mensajes del grupo warning, por lo que no te lo recomiendo.

Si no te interesa cancelar todos los mensajes del kernel en consola (con dmesg -n1), sino solo los del cortafuegos, puedes utilizar este otro truco: edita el fichero "/etc/firestarter/firewall.sh" y alrededor de la línea 86 encontrarás una entrada que dice así:

	$IPT -A LD -j LOG

Bueno, pues puedes cambiar esa línea y añadir lo que está en cian para dejarla así:

	$IPT -A LD -j LOG --log-level 6

Nuevamente, estás cancelando solo la salida por consola, pero no el almacenamiento de los hits en los ficheros de log. Naturalmente, con esto ya no debería ser necesario usar lo de "dmesg -n1".