Trucos

El historial de comandos en BASH

Bash es el interprete de comandos incluido por defecto en la mayaria de los linux, una de sus caracteristicas es que guarda en un historial los comandos que ejecutan, el listado de comandos es almacenado en el directorio $HOME con el nombre .bash_history de tal modo que no importa que cierres la terminal o que reinicies, BASH siempre recordará los comandos. Considero esto muy útil ya que así nos evitamos de estar escribiendo el mismo comando muchas veces.

BASH tiene un límite para almacenar comandos, este límite esta en definido en la variable $HISTSIZE veamos que valor contiene :


..:::[08:49 ][ivan_at_dementor][~/dwhelper/Shuffle]:::..

#:echo $HISTSIZE

500

500 comandos a almacenar como historial, creo que son suficientes pero si hay alguien que dice que son pocos o demasiados, podremos cambiar este valor de esta variable al estilo BASH.

Aaahh cosa importante la variable $HISTFILESIZE define el número máximo de líneas a contener por esto tambien es importante que se cambie el valor al mismo que la variable anterior.

Bien para hacer estos cambios y de forma permanente hay que modificar el archivo .bashrc ya todos sabemos que este archivo esta en $HOME o ~ o bien lo que es lo mismo /home/usuario/

Hay abrirlo la para editarlo:


vi ~/.bashrc

Agregar estas líneas al final del archivo:


$HISTFILESIZE=800

$HISTSIZE=800

Guardar los cambios y listo la próxima vez que arranques tu terminal tu historial tendrá mas capacidad.

Bien, ahora veamos como tener acceso al historial:
con el comando history, le pasaremos el comando head para que no me arroje los 500 comandos.

..:::[09:27 ][ivan_at_dementor][~]:::..

#:history | head

9 cd ..

10 ls

11 cd src/

12 ls

13 cd ..

14 ls

15 cd conf/

16 ls

17 cd ..

18 ls

..:::[09:27 ][ivan_at_dementor][~]:::..

#:

otra es con las flechas de direccionamiento hacia arriba o abajo.
y la mejor de todas es la busqueda con Ctrl + r , esta funciona así:

presiona Ctrl + r y escribe alguna cadena y te traera el último comando que coincida con esa cadena, si quieres ver comandos mas viejos que coincidan con la cadena vuelve a presionar Ctrl + r hasta que encuentres el que buscas.

bueno ya me extendí mas de lo que queria tendre que regresar a trabajar.
saludos.

face-smile.png

Calculadora en Bash

A veces me ha tocado tener que hacer operaciones matemáticas simples mientras configuro algo en linux que no tienen ambiente gráfico y mucho menos gcalc o algo por el estilo, para ello siempre me he valido del poderoso Bash, aquí algunos ejemplos:


..:::[02:57 ][ivan_at_dementor][~]:::..

#:echo $((10/2))

5

..:::[03:02 ][ivan_at_dementor][~]:::..

#:echo $((5*2))

10

..:::[03:02 ][ivan_at_dementor][~]:::..

#:echo $((3+1))

4

..:::[03:02 ][ivan_at_dementor][~]:::..

#:echo $((20-7))

13

..:::[03:02 ][ivan_at_dementor][~]:::..

#:

Lo malo de esto es que no acepta números decimales face-sad.png así que para esto podemos usar el comando bc el cuál en su configuración por defecto no soporta decimales pero utilizando el parametro -l solucionames el inconveniente.

Aquí unos ejemplos:
..:::[03:08 ][ivan_at_dementor][~]:::..

#:bc -l

bc 1.06

Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.

This is free software with ABSOLUTELY NO WARRANTY.

For details type `warranty'.

2+2

4

3-5

-2

5/2

2.50000000000000000000

quit

En una línea escribo la operación en la siguiente el sistema me da el resultado, es como si estuvieras chateando tongue.png

Pero si esta utilización se te hace incomoda, podemos usar las tuberias para redireccionamiento de salidas:


..:::[03:10 ][ivan_at_dementor][~]:::..

#:echo 2+2 | bc -l

4

..:::[03:10 ][ivan_at_dementor][~]:::..

#:echo 7-5 | bc -l

2

..:::[03:10 ][ivan_at_dementor][~]:::..

#:echo 7*7 | bc -l

49

..:::[03:10 ][ivan_at_dementor][~]:::..

#:echo 23/2 | bc -l

11.50000000000000000000

..:::[03:10 ][ivan_at_dementor][~]:::..

#:

Interesante no?? la verdad a mi me ha sido de mucha utilidad.

si quieren saber mas sobre bc pueden echarle un vistazo a este link:
http://www.basicallytech.com/blog/index.php?/archives/23-command-line-calculations-using-bc.html

MiniPE XT al rescate

MiniPE XT es una herramienta para reparar sistemas operativos windows, aquí un poco de la experiencia que tuve:

La semana pasada a mi sobrino le sucedio lo que nos sucede a todo informático curioso y no precavido como a mi hace algunos añosa hehehe, resulta que por andar moviendole a no se que rollos en su laptop se activo el sistema de restauración de Windows Vista y se resintalo.

face-plain.png madre jodida!!! y que paso con los archivos? logicamente se perdieron :S
bueno bueno, eso fue un resumen de la plática que tuve con mi sobrino, y ya le dije que no usara windows que mejor linux y el clásico sermón linuxero face-smile.png pero en fin, le dije que no habia falla que hay una oportunidad de recuperar algunos archivos y ya le explique como es que funciona logica y mecanicamente un disco duro, así que me puse a ver de que manera corria las herramientas de recuperación que conocia.

La primera barrea que me tope es que el disco es un SATA y no tenía Case USB de SATA por lo que la idea de ponerlo como esclavo a Lily (desktop pc) ya no era opción, así que tenía que pensar en otra solución, por suerte un compañero del trabajo me hablo de un disco llamado MiniPE XT el cuál es un tipo live cd que corre herramientas de recuperación de Windows, me parecio muy buena utilidad y de inmediato lo baje y lo queme, y note que entre sus herramientas de recuperación tenía el GetData Back, esta es a mi parecer la mejor herramienta que he probado de esta categoría.

La segunda barrera fue la de: "bien el get data back me recupera y dónde hecho mis archivos rescatados?" por suerte tenía a Dementor (laptop) y este si es IDE por lo cuál le saque el disco y se lo puse comoe exclavo a la laptop de mi sobrino y lo demas fue cuestión de tiempo en lo que recuperaba info y la copiaba al disco, al terminar el proceso mi sobrino dio el veredicto de que no habia nada que lamentar, la recuperación no fue al 100% pero si de lo mas importante que el tenía en su laptop como tareas, fotos y manuales entre otras cosas.

Me dejo sorprendido este LiveCD que lo he agregado a mi lista de utilerias útiles tongue.png , si quieren bajarse un iso aquí les dejo un link
http://depositfiles.com/en/files/1280977

En caso de que no funcione, pues a recurrir a nuestro amigo Google

.

Reconfigura tu teclado con Xmodmap en linux

Aquí otra mini guía para reconfigurar el mapa del teclado, esto te va a servir si eres de los que tiene que escribir en un idioma en el que tu teclado no esta adaptado, por ejemplo mi teclado esta en inglés (y con dvorak y claro en mi laptop) pero yo debo escribire en español y veces en alemán por eso desde un inicio tengo configurado xmodmap, posiblemente ya lo tengas instalado en tu sistema y si no pues bajatelo de aquí.

Para comenzar a configurarlo debe conocer el keycode de la tecla quieren reconfigurar, para ello utilicen xev desde una terminal (ya saben si no lo tienen instalenlo). Bueno cuando ejecuten xev se abrira una ventanita y pongan atención en la terminal ya que es ahí dónde se muestra la info que nos interesa. Si presionamos la letra "a" nos debe aparecer algo como esto:


KeyRelease event, serial 30, synthetic NO, window 0x3600001,

root 0x1a5, subw 0x0, time 1776540395, (142,521), rootface-sad.png 146,551),

state 0x0, keycode 38 (keysym 0x61, a), same_screen YES,

XLookupString gives 1 bytes: (61) "a"

XFilterEvent returns: False

Observen que el número enseguida de keycode es el número que nos interesa, ahora bien ya toca abrir nuestra archivo de configuración, cabe decir que se puede llamar como uno quiera pero comunmente se le pone por nombre .xmodmap.
Mi configuración esta hecha para que ponga estos caracteres cuándo oprimo la tecla de ALT DERECHO:
áóéúíäöü¬ßñ

Como pueden ver son puros caracteres que no tienen nada que ver con el inglés. En fin para lograr esto hay que tener una configuración así:


!acentos en dvorak para dementor

!

keycode 46 = n N ntilde Ntilde

keycode 49 = grave asciitilde notsign notsign a A

keycode 40 = e E eacute Eacute

keycode 41 = u U uacute Uacute

keycode 42 = i I iacute Iacute

keycode 39 = o O oacute Oacute

keycode 38 = a A aacute Aacute

keycode 24 = apostrophe quotedbl adiaeresis Adiaeresis

keycode 25 = comma less odiaeresis Odiaeresis

keycode 27 = p P udiaeresis Udiaeresis

keycode 47 = s S ssharp ssharp

!

!

!!ACTIVO TECLA ALT DERECHA

!

!! LO ELIMINO DE mod1

clear mod1

add mod1 = Alt_L

!

!! LE ASIGNO Mode_switch

clear mod3

keycode 113 = Mode_switch

add mod3 = Mode_switch

les explicaré un poco sobre una de las líneas, por ejemplo: "keycode 38 = a A aacute Aacute" que es la que basicamente forma el archivo, me refiero en estructura.
keycode 38: indica que tecla es la que hara esta función.
a: imprime "a" cuando se presiona.
A: Imprime "A" cuando se oprime shift y tecla en cuestión.
aacute: Imprime "á" cuando se oprime la tecla ALT DERECHO y la tecla en cuestión.
Aacute: Imprime "Á" cuando se oprime la tecla ALT DERECHO + Shift + tecla en cuestión.

Las últimas líneas siempre deben deben de ir para que funcione el alt derecho.

Una vez que terminen de formar el archivo no olviden guardarlo con el nombre que mencione y en la carpeta de $HOME así cuando arranquen el gráfico este leera su archivo.

En caso de que no se ejecuten pues pongan un script al inicio de sesión que contenga el comando para cargarlo:

xmodmap ~/.xmodmap

bueno espero que les sea de utilidad.
Nos vemos luego.

Splash de GRUB dinamico

Hace ya varios días note que mi splash de grub desaparecio misteriosamente, no le di importancia y así lo estuve utiliazando, pero hace un par días tuve oportunidad de revisarlo y note que la imagen a la que hacia referencia el grub.conf desaparecio :S, quizas una actualización o yo accidentalmente la borre.

Para restaurar mi imagen me fui a google para ver cuál imagen estaria bien poner y encontre varios splash muy bonitos y elegantes:

"lastima que no los pueda poner todos"

Fue lo que dije, pero en eso pense:

"por qué no? si tan solo... y los pongo... y hago... y cuando... namas lo..."

Llegue a la conclusión de que si era posible, así que me hice un pequeño script en bash que cada vez que se ejecuta cambia el destino de un link símbolico así ya solamente en el grub.conf apunto a este link en la línea de splashimage y el script lo lanzo cada que la laptop inicia así cada arraque la imagen será diferente.
Aquí el código que les mencione:

#/bin/bash
########################################################
# Script para cambiar el destino del enlace
# simbolico /boot/splash.xpm.gz que lee grub como splash
########################################################

GrubSplash="/boot/splash.xpm.gz"#ARCHIVO QUE LEE GRUB PARA PONER COMO SPLASH

SplashesDir="/boot/splashes/"    #DIRECTORIO CON LOS SPLASH A LEER

SplashArchivo=(`ls $SplashesDir`)  #GUARDAR LOS NOMBRES EN UN VECTOR

NumSplash=`ls -l $SplashesDir | wc -l` #contar numero de splashes que hay en el directorio

NumSplash=`expr $NumSplash - 2` #restarle 2 unidades porque ls -l da una linea mas del numero de archivos que contiene el directorio y el vector se maneja de 0 a N

numAle=$((RANDOM%$NumSplash+0))#sacar un numero aleatorio

ln -sf $SplashesDir${SplashArchivo[$numAle]}$GrubSplash#ejecutar el comando para reescribir el link simbolico

 

Para que arranque automatico en gentoo solo lo agregamos al archivo local.start en /etc/conf.d/


dementor ~ # cat /etc/conf.d/local.start

# /etc/conf.d/local.start

# This is a good place to load any misc programs

# on startup (use &>/dev/null to hide output)

/localscripts/rgsplash.sh &>/dev/null

dementor ~ #

y nos aseguramos que la línea del splash del grub.conf o menu.1st (si es otra distro) apunte al mismo link símbolico que dice nuestro script:

dementor ~ # cat /boot/grub/grub.conf

default 0

timeout 5

splashimage=(hd0,2)/boot/splash.xpm.gz

title Gentoo [DEMENTOR]

root (hd0,2)

kernel /boot/bzImage root=/dev/hda3 vga=791

Y listo ya con eso cada vez que inicien la compu tendrán una imagen diferente, cabe decir que si queremos ampliar el repositorio de splashes (¬¬) solamente hay que meter los achivos xpm.gz al directorio "/boot/splashes/"

saludos

Foxmarks - lleva tus bookmarks contigo

foxmarksLos bookmarks o favoritos son cosas que no te gustaría perder y tener simpre accesible, al menos esto es para mi, pero me meti en lío cuando por razones de trabajo comencé a utilizar 3 equipos distintos, en mi trabajo tengo una Desktop, ademas uso una laptop con linux y la computadora de mi casa, el uso del navegador se volvio complicado cuando quería entrar a ciertas URL que yo tenía almacenadas en los bookmarks y no podía por que estaba en otro equipo distintio :S así que para solucionar esto me puse a buscar una solución al problema y fue así como encontré Foxmarks un plugin de firefox que permite centralizar los bookmarks, herramienta muy útil porque no solo funciona con el firefox si no que se puede entrar por web a organizar y consultar lo que tenemos almacenado, interesante por que nisiquiera tenemos que estar en nuestra compu para tener acceso a dicha información. face-smile-big.png

Hagan click en la imagen para que vayan al sitio de descarga del plugin.

Saludos

Activar sensores de CPU y Ventilador en linux

La mayoría de las tarjetas madre tienen integrada esta funcionalidad, la de poder monitorear la temperatura del procesador y la velocidad de los ventiladores, y este es el motivo de mi post, voy a poner como se activan estos sensores para poder usarlos con algun software medidor de recursos como el Gkrellm, este es el que uso yo face-wink.png ya lo habia mencionado en post anteriores .

Bueno primero lo primero, hay que saber que módulos son los que necesita nuestra tarjeta madre, para esto usamos el paquete lm_sensors incluido en portage, para los usuarios de gentoo pues ya saben:


lily ~ # emerge -av lm_sensors

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild R ] sys-apps/lm_sensors-2.10.4 USE="-sensord" 0 kB

Total: 1 package (1 reinstall), Size of downloads: 0 kB

Would you like to merge these packages? [Yes/No] N

Para los usuarios de otras distros pues les recomiendo el administrador de paquetes que incluye (apt, yum, etc) o bien bajarse el tarball e instalarlo a mano.

Una vez que ya tenemos el paquete instalado ejecutamos sensors-detect, este nos dira que drivers necesitamos para activar nuestros sensores.


lily ~ # sensors-detect

# sensors-detect revision 4609 (2007-07-14 09:28:39 -0700)

This program will help you determine which kernel modules you need

to load to use lm_sensors most effectively. It is generally safe

and recommended to accept the default answers to all questions,

unless you know what you're doing.

We can start with probing for (PCI) I2C or SMBus adapters.

Do you want to probe now? (YES/no):

Probing for PCI bus adapters...

Use driver `i2c-ali15x3' for device 0000:00:03.1: Acer Labs 1533/1543

Use driver `i2c-ali1535' for device 0000:00:03.1: Acer Labs 1535

Use driver `i2c-ali1563' for device 0000:00:03.0: Acer Labs 1563

We will now try to load each adapter module in turn.

Load `i2c-ali15x3' (say NO if built into your kernel)? (YES/no):

FATAL: Module i2c_ali15x3 not found.

Loading failed... skipping.

Load `i2c-ali1535' (say NO if built into your kernel)? (YES/no):

FATAL: Module i2c_ali1535 not found.

Loading failed... skipping.

Load `i2c-ali1563' (say NO if built into your kernel)? (YES/no):

FATAL: Module i2c_ali1563 not found.

Loading failed... skipping.

If you have undetectable or unsupported adapters, you can have them

scanned by manually loading the modules before running this script.

To continue, we need module `i2c-dev' to be loaded.

Do you want to load `i2c-dev' now? (YES/no):

FATAL: Module i2c_dev not found.

Loading failed, expect problems later on.

We are now going to do the I2C/SMBus adapter probings. Some chips may

be double detected; we choose the one with the highest confidence

value in that case.

If you found that the adapter hung after probing a certain address,

you can specify that address to remain unprobed.

Some chips are also accessible through the ISA I/O ports. We have to

write to arbitrary I/O ports to probe them. This is usually safe though.

Yes, you do have ISA I/O ports even if you do not have any ISA slots!

Do you want to scan the ISA I/O ports? (YES/no):

Probing for `National Semiconductor LM78' at 0x290... No

Probing for `National Semiconductor LM78-J' at 0x290... No

Probing for `National Semiconductor LM79' at 0x290... No

Probing for `Winbond W83781D' at 0x290... No

Probing for `Winbond W83782D' at 0x290... No

Probing for `Silicon Integrated Systems SIS5595'... No

Probing for `VIA VT82C686 Integrated Sensors'... No

Probing for `VIA VT8231 Integrated Sensors'... No

Probing for `IPMI BMC KCS' at 0xca0... No

Probing for `IPMI BMC SMIC' at 0xca8... No

Some Super I/O chips may also contain sensors. We have to write to

standard I/O ports to probe them. This is usually safe.

Do you want to scan for Super I/O sensors? (YES/no):

Probing for Super-I/O at 0x2e/0x2f

Trying family `National Semiconductor'... No

Trying family `SMSC'... Yes

Found `SMSC LPC47M15x/192/997 Super IO Fan Sensors' Success!

(address 0x800, driver `smsc47m1')

Probing for Super-I/O at 0x4e/0x4f

Trying family `National Semiconductor'... No

Trying family `SMSC'... No

Trying family `VIA/Winbond/Fintek'... No

Trying family `ITE'... No

Some CPUs or memory controllers may also contain embedded sensors.

Do you want to scan for them? (YES/no):

AMD K8 thermal sensors... Success!

(driver `k8temp')

Intel Core family thermal sensor... No

Intel AMB FB-DIMM thermal sensor... No

Now follows a summary of the probes I have just done.

Just press ENTER to continue:

Driver `smsc47m1' (should be inserted):

Detects correctly:

  • ISA bus, address 0x800
    • Chip `SMSC LPC47M15x/192/997 Super IO Fan Sensors' (confidence: 9)

Driver `k8temp' (should be inserted):

Detects correctly:

  • Chip `AMD K8 thermal sensors' (confidence: 9)

I will now generate the commands needed to load the required modules.

Just press ENTER to continue:



If you want to load the modules at startup, generate a config file

below and make sure lm_sensors gets started at boot time; e.g

$ rc-update add lm_sensors default

To make the sensors modules behave correctly, add these lines to

/etc/modules.d/lm_sensors and run modules-update:

#----cut here----

# I2C module options

alias char-major-89 i2c-dev

#----cut here----

To load everything that is needed, add this to some /etc/rc* file:

#----cut here----

# Chip drivers

# Warning: the required module smsc47m1 is not currently installed

# on your system. For status of 2.6 kernel ports check

# http://www.lm-sensors.org/wiki/Devices. If driver is built

# into the kernel, or unavailable, comment out the following line.

modprobe smsc47m1

# Warning: the required module k8temp is not currently installed

# on your system. For status of 2.6 kernel ports check

# http://www.lm-sensors.org/wiki/Devices. If driver is built

# into the kernel, or unavailable, comment out the following line.

modprobe k8temp

# sleep 2 # optional

/usr/bin/sensors -s # recommended

#----cut here----

If you have some drivers built into your kernel, the list above will

contain too many modules. Skip the appropriate ones! You really

should try these commands right now to make sure everything is

working properly. Monitoring programs won't work until the needed

modules are loaded.

To load everything that is needed, execute the commands below...

#----cut here----

# Chip drivers

# Warning: the required module smsc47m1 is not currently installed

# on your system. For status of 2.6 kernel ports check

# http://www.lm-sensors.org/wiki/Devices. If driver is built

# into the kernel, or unavailable, comment out the following line.

modprobe smsc47m1

# Warning: the required module k8temp is not currently installed

# on your system. For status of 2.6 kernel ports check

# http://www.lm-sensors.org/wiki/Devices. If driver is built

# into the kernel, or unavailable, comment out the following line.

modprobe k8temp

# sleep 2 # optional

/usr/bin/sensors -s # recommended

#----end cut here----

Do you want to overwrite /etc/conf.d/lm_sensors? Enter s to specify other file name?

(yes/NO/s):

lily ~ #

Sigan las instrucciones del mismo script, solo denle enter a todo tongue.png y bueno de todo el rollo que sale ahí lo mas intersante es esto ya que nos dice que drivers son los que debemos meter:


Driver `smsc47m1' (should be inserted):

Detects correctly:

  • ISA bus, address 0x800
    • Chip `SMSC LPC47M15x/192/997 Super IO Fan Sensors' (confidence: 9)

Driver `k8temp' (should be inserted):

Detects correctly:

  • Chip `AMD K8 thermal sensors' (confidence: 9)

Bien ahora nos vamos al kernel y abrimos el config para buscarlos:


lily ~ # cd /usr/src/linux

lily linux # make menuconfig

Ahora nos vamos a la siguente parte para incluirlos dentro del kernel o bien si quieren como módulo pero no lo recomiendo face-wink.png
Device Drivers  --->

                 < *> Hardware Monitoring support  --->

                        < *>   AMD Athlon64/FX or Opteron temperature sensor

                        < *>   SMSC LPC47M10x and compatibles

Yo active estos ya que son los que corresponden a mi hardware, para saber cual de esta lista corresponde a su hardware lean el HELP que tiene el menuconfig y busquen algo como esto:


This driver can also be built as a module. If so, the module will be called k8temp.

Para que verifiquen si este corresponde con lo que les dijo sensors-detect, ya una vez seleccionados a compilarlo nuevamente y reiniciar:


lily linux # make && make modules_install

lily linux # mount /boot

lily linux # cp arch/x86_64/boot/bzImage /boot

lily linux # reboot

Ahora bien ya pueden usar sus sensores para lo que gusten, si usan gkrellm como yo no olviden el FLAG lm_sensors

lily linux # echo "app-admin/gkrellm lm_sensors" >> /etc/portage/package.use

lily linux # emerge app-admin/gkrellm

En el resto de las distros me parece que ya viene preocompilada la opción, claro si es un rpm o algún deb, en caso contrario pasenle bien el parametro al ./configure tongue.png

Extraer audio de archivos FLV

Anoche estaba con Eliza y me dijo que necesitaba grabar una canción tipo karaoke para un evento que hiba a tener, total reinicie a lily en windows XP para que la usara y cuando ella terminó de hacer su busqueda ya me dijo que hiciera mi jale tongue.png , total lo que veo es un video de youtube y le pregunté que dónde la hiba a poner y ella me dice que un reproductor de CD normal, face-plain.png bueno entonces lo que habia que hacer era extraer el audio en mp3 del video en youtube, y estos fueron los pasos que hice:

Primero reinicie en Gentoo después con el Video DownloadHelper (complemento del firefox) baje el video en formato FLV del sitio de youtube.

Después instale el ffmpeg, ya lo saben para gentoo es esto:

emerge ffmpeg
Si tienen otra distro pues usen su gestor de paquetes (apt, yum, etc)

Una vez instalado en la terminal metemos este comando para extraer el audio

[12:41 ] [ivan_at_lily][~]

#:cd dwhelper/

[12:41 ] [ivan_at_lily][~/dwhelper]

#:ffmpeg -i video.flv -ab 128 -ar 44100 audio.mp3

y bien al final obtendremos un archivo de nombre audio.mp3 que tiene solamente el audio del video en flv.

Ya este archivo lo grabamos como Audio CD con nuestro tostador favorito y listo.

Muy sencillo no lo creen?

Colorear el PROMPT

Bueno para los que no saben qué es el prompt:
Se llama prompt al carácter o conjunto de caracteres que se muestran en una línea de comandos para indicarnos que está a la espera de ordenes. info mas completa aquí.

Bueno en algunos de los post que he puesto como:

Wallpaper Aleatorio en Gnome 2Monitor de recursos con gkrellm2

Me di a la tarea de mostrar el prompt tal y como se ve en mi terminal, quizas algunas personas que acaban de conocer el BASH se estaran preguntando como hacer esto.

Para cambiar esto hay que modificar el valor de la variable de entorno PS1 ahi hay que meter los valores que BASH interpretara como colores. Para facilitar la vida con respecto a esto hace algun tiempo llego a mis manos este trozo de código a mi con el cuál es mas sencillo editar nuestro PROMPT.

Aquí el código

Aquí asignamos el valor de PS1Aquí el código

Todo este código yo lo tengo pegado en mi .bashrc así cada vez que abra terminal me leera esto y me cargará mi prompt ya con colorsitos y se verá así:
[12:26][ivan@lily][~]
#:ls

Espero les sea de utilidad.
Saludos

La inseguridad del MSN Messenger

Hola a todos, en este post vengo a traerles lo inseguro que es platicar por MSN Messenger, ya que por ahí existen varias herramientas que pueden capear todo ese tráfico y guardarlo en bitacoras. Recientemente he estado probando el imsniff, que cómo su nombre lo dice es un sniffer, es un simple programita que no ocupa mucho espacio en la memoria y esta capturando todas las conversaciones del MSN

Vamos a ver su funcionamiento e instalación:
pero antes verifiquemos que contamos con las dependencias necesarias: libpcap-dev y c++. Ya que nos instalamos las dependencias.
Primero nos decargamos el fuente de la página del proyecto, posteriormente lo descompactamos y nos vamos al directorio llamado linux ahí encontraremos 2 archivos, (build, imsniff), lo que hace el build es compilar el programar y generar el binario imsniff y el otro es el programa en sí, yo recomiendo siempre recompilarlo para que se construya de acuerdo a tu versión del libpcap.


[root_at_plastic linux]# ./build

[root_at_plastic linux]#

una vez que esto ya se compilo solo hay que ejecutarlo, un parametro importante a pasarle es el de la interfaz de red por donde esta pasando nuestro tráfico de messneger, y ademas hay que ponerlo en segundo plano con el & para que se quede ahí corriendo face-smile-big.png

[root_at_plastic linux]# ./imsniff eth1 &

Tambien podemos tener un archivo de configuración imsniff.conf que debe estar grabado en /etc/, pero si quieres mas detalles leanse la documentación que esta en el directorio docface-smile-big.png

Y bien con el programa corriendo en segundo plano las conversaciones capturadas seran almacenadas en el directorio /tmp/chats/ en dónde habrá un directorio por cada usuario conectado y en cada directorio un archivo por cada contacto con la conversación que tuvo mientras el programa corria.

Nota importante, este debe estar corriendo en el equipo que sea Gateway, pero no se preoucupen ya que no les va a quitar rendimiento, solo chequen cuanta memoria consume:

[root_at_plastic ~]# pmap 15083

15083: ./imsniff eth1

0020a000 28K r-x-- /lib/libgcc_s-3.4.6-20060404.so.1

00211000 4K rw--- /lib/libgcc_s-3.4.6-20060404.so.1

00251000 84K r-x-- /lib/ld-2.3.4.so

00266000 4K r---- /lib/ld-2.3.4.so

00267000 4K rw--- /lib/ld-2.3.4.so

0026a000 1172K r-x-- /lib/tls/libc-2.3.4.so

0038f000 4K r---- /lib/tls/libc-2.3.4.so

00390000 12K rw--- /lib/tls/libc-2.3.4.so

00393000 8K rw--- [ anon ]

0039d000 132K r-x-- /lib/tls/libm-2.3.4.so

003be000 8K rw--- /lib/tls/libm-2.3.4.so

00422000 132K r-x-- /usr/lib/libpcap.so.0.8.3

00443000 4K rw--- /usr/lib/libpcap.so.0.8.3

00513000 768K r-x-- /usr/lib/libstdc++.so.6.0.3

005d3000 20K rw--- /usr/lib/libstdc++.so.6.0.3

005d8000 24K rw--- [ anon ]

08048000 36K r-x-- /root/msn_sniffer4/linux/imsniff

08051000 4K rw--- /root/msn_sniffer4/linux/imsniff

080c3000 252K rw--- [ anon ]

b7f78000 8K rw--- [ anon ]

b7f8f000 4K rw--- [ anon ]

bfff5000 44K rw--- [ stack ]

ffffe000 4K ----- [ anon ]

total 2760K

[root_at_plastic ~]#

Bueno raza ahora que ya lo saben, piensen 2 veces antes de escribir algo por MSN ya que alguién puede estar observando face-smile.png por cierto si tienen problemas de inestabilidad leanse está página:
http://www.vivaolinux.com.br/dicas/verDica.php?codigo=7357

Recuperar contraseña de Webmin

Qué onda raza, fijense que hace algunos días me paso un caso muy extraño con un servidor, resulta que lo actualice y entre los paquetes se encontraba el webmin, y pues yo bien seguro de todo actualice pero al finalizar la instalación parece ser que no puse la atención debida al semi asistente que aparece para la actualización de algunos archivos, ya que al día siguiente me econtre con que la contraseña de root dewebmin no era la correcta, cosa que se me hizo extraña por que regularmente es la misma que el usuario root del sistema operativo, no pues para pronto me fui al famoso http://ww.google.com y encontre cómo se puede hacer para recuperar dicha contraseña.

Al estar leyendo los documentos me di cuenta que es muy sencillo y de echo el propio webmin te proporciona la herramienta para estos casos. Para no darle tantas vueltas al asunto les pongo lo que me ayudo a restaurar mi sagrada contraseña tongue.png
How do I change my Webmin password if I can't login?

Included with the Webmin distribution is a program called changepass.pl to solve erecisely this problem. Assuming you have installed Webmin in /usr/libexec/webmin, you could change the password of the admin user to foo by running
/usr/libexec/webmin/changepass.pl /etc/webmin admin foo

De hecho yo solo ejecute el siguiente comando y todo fuinciono muy bien

/usr/libexec/webmin/changepass.pl /etc/webmin root 123456

Algo que si no te es que el usuario que tenia creado ademas del root desaparecio por lo cuál tuve que crearlo, esto fue suerte ya que de haber tenido mas hubiera sido una weba tener que recapturar todos ya que no tenía respaldo de esto.

De esto me quedan 2 cosas de experiencia:
1-Sacar respaldos de etc
2-Poner atención a los etc-update face-smile-big.png

Bueno espero algún día esto le sirva a alguién.

Saludos

device is busy : umount

Hola raza, no les ha pasado que quieren desmontar alguna unidad de almacenamiento con umount les aparece la leyenda de device is busy?. Y cuando se fijan en los procesos no ven nada que la pueda estar usando. Esto es realmente molesto para mi, sobretodo cuando llevo prisa, pero afortunadamente existe un par de comandillos que nos ayudan saber que proceso lo esta ocupando y así poder detenerlo y después hacer bien el umount.

El primero de ellos es fuser que identifica los procesos que estan usando los archivos o puertos.
El segundo que tenemos es el lsof: que solamente lista los archivos abiertos.

Vamos a ver un ejemplos para saber cómo funcionan:

Ejemplo 1: Utilizando fuser

lily ~ # umount /mnt/ntfs

umount: /mnt/ntfs: dispositivo ocupado

umount: /mnt/ntfs: dispositivo ocupado

lily ~ # fuser /mnt/ntfs

/mnt/ntfs: 7286c

lily ~ # ps aux | grep 7286

ivan 7286 0.0 0.2 12744 3024 pts/3 Ss+ 15:22 0:00 bash

lily ~ #

Cómo pueden ver quién esta haciendo uso del dispositivo es el usuario ivan que esta firmando en la terminal virtual número 3, ya solo queda darle un kill al proceso o decirle que se salga si es que somos amables face-smile.png

Ejemplo 2: usando lsof


lily ~ # lsof /mnt/ntfs/

COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME

bash 7286 ivan cwd DIR 3,5 8192 5 /mnt/ntfs/

lily ~ #

Cómo pueden ver aquí, nos da mas detalles acerca del punto.
Ya con alguno de estos comandos podemor hacer que nuestro desmotaje sea normal y no tengamos que desconectar el dispositivo a la fuerza y correr riesgos de perdida de datos.

Nota importante, estos se deben correr como root face-smile.png

Llaves de ssh

Ya muchos sabemos usar esto de las llaves de SSH pero como sea siempre es conveniente poner este tipo de notas por si alg�n d�a lo olvidamos ya que me ha pasado que cosas tan sencillas se me olvidan :S

bueno veamos que hay que hacer:

En d�nde vas a realizar la conexi�n hay que poner esto:


ssh-keygen -t dsa

Esto genera 2 archivos en $home/.ssh/ (uno p�blico y otro privado). Ahora agarramos el archivo p�blico (id_dsa.pub) y lo copiamos al host a donde haremos la conexi�n. Ya saben usen:


scp id_dsa.pub usuario_at_host:~

Bien ahora nos conectamos al host remoto y hacemos lo siguiente:


cat $home/id_dsa.pub >> $home/.ssh/authorized_keys

chmod 644 $home/.ssh/authorized_keys

y listo ya podremos conectarnos a este host sin necesidad de usar contrase�a puesto que la llave ya esta inyectada face-smile-big.png

Pero bueno hacer todo esto es mucho rollo verdad, yo para evitar andar haciendo tanto movedero de archivos uso el siguiente script que un compa�ero me paso. Con este script solo pongo un comando, coloco la contrase�a del host remoto 2 veces y listo, todo lo demas se hace solo (h)


[12:24 ] [ivan_at_lily][~/script]

#:./ssh-send-key rico.org.mx

user (ivan): usuario

Setting up DSA authentication for usuario_at_rico_dot_org_dot_mx_dotdotdot_

DSA public key no found. Creating key...Generating public/private dsa key pair.

Created directory {{/home/ivan/.ssh{{.

Your identification has been saved in /home/ivan/.ssh/id_dsa.

Your public key has been saved in /home/ivan/.ssh/id_dsa.pub.

The key fingerprint is:

0c:54:46:fb:ac:59:b2:cd:c4:c2:78:55:50face-smile-big.png e:08:23 ivan_at_lily

done.

The authenticity of host {{rico.org.mx (207.44.162.68){{ can{{t be established.

RSA key fingerprint is 42:68:cf:35:92:4e:cb:a0:6e:95:4d:84:21:ab:88:f0.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added {{rico.org.mx,207.44.162.68{{ (RSA) to the list of known hosts.

ricoorg_at_rico_dot_org_dot_mx{{s password:

stdin: is not a tty

id_dsa.pub 100% 599 0.6KB/s 00:00

ricoorg_at_rico_dot_org_dot_mx{{s password:

stdin: is not a tty

SUCCEDED -- public key authentication as usuario_at_rico_dot_org_dot_mx_dot_

stdin: is not a tty

[12:24 ] [ivan_at_lily][~/script]

#:

Aqu� les dejo el c�digo para que lo usen en sus servidores, a mi me ha sido muy �til.

#!/bin/sh
#
# This script will upload the ssh public key to the server specified.
#
# Copyright (C)2002, Rafael Sep<FA>lveda &ltface-smile-big.png rs_at_gnulinux_dot_org_dot_mx>
#
#   This program is free software; you can redistribute it and/or modify
#   it under the terms of the GNU General Public License as published by
#   the Free Software Foundation.
#
#   This program is distributed in the hope that it will be useful,
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#   GNU General Public License for more details.
#
#   You should have received a copy of the GNU General Public License
#   along with this program;  if not, write to the Free Software Foundation,
#   Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.### Code:version="1.0.0"

ask_user()
{

    # Ask for a username

    echo -n "user ($USER): "

    read usr

    [$usr] || usr=$USER
}

show_help()
{

    # Text to be displayed as {{help{{

    echo"Usage: ssh-send-key [OPTION] [USER@[HOST]]"

    echo"Upload public key to a remote server using ssh."

    echo

    echo"  -i  IDENTITY   use this identity for key authentication"

    echo"                   like `dsa{{ (default) or `rsa{{."

    echo"  -h            &nbspface-smile-big.png isplay this help and exit"

    echo"  -v             output version information and exit"

    echo

    echo"If no arguments are used, it will ask for the host and user. The"

    echo"user will default a hint to the user used in that moment. You can"

    echo"specify the hostname alone and the user that will be used will be"

    echo&quottongue.png rompted.  You can also specify the user and the hostname in the"

    echo&quottongue.png rompt in the format {{user_at_host{{ and that values will be used."

    echo

    echo"We cannot circumvent the problem that you need to type twice the"

    echo&quottongue.png assword.  This is because we need it one time to send the key and"

    echo"another one to put it correctly on the server."

    echo

    echo"Only SSH protocol version 2 is supported."

    echo

    echo"Report bugs to Rafael Sep<FA>lveda &ltface-smile-big.png rs_at_gnulinux_dot_org_dot_mx>_dot_"
}

show_version()
{

    #Text do be displayed as {{version{{

    echo"ssh-send-key $version"

    echo"Written by Rafael Sep<FA>lveda."

    echo

    echo"Copyright © 2002, Rafael Sep<FA>lveda"

    echo"This is free software; see the source for copying conditions.  There is NO"

    echo"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
}#define options. {{h{{forhelp, {{v{{for version and {{c{{for identity.
getopts vhi: option
optexit=$? #save the exit status of getopts.#help option
if["$option" = "h"] || {[$optexit -eq 0] && [$OPTIND -eq 1]; }; then

    show_help

    exit0;
fi#version option
if["$option" = "v"]; then

    show_version

    exit0;
fi#identity option
if[ -z "$OPTARG"]; then

    identity=&quotface-smile-big.png sa"

    arg=$1
else

    identity="$OPTARG"

    arg=$3
fiidentity_uc=$(echo$identity | tr {{a-z{{{{A-Z{{)#read host and user name
if[$arg]; then

    if[$arg = $(echo$arg | sed -e {{s/(.*)_at_(.*)/12/{{)]; then

        host=$arg

        ask_user

    else

        usr=$(echo$arg | sed -e {{s/(.*)_at__dot_*/1/{{)

        host=$(echo$arg | sed -e {{s/_dot_*_at_(.*)/1/{{)

    fi
else

    echo -n "SSH server: "

    read host

    ask_user
fi#generate identity key if we don{{t find one
echo"Setting up $identity_uc authentication for ${usr}_at_${host}..."if[ -f ~/.ssh/id_$identity.pub ]; then

    echo"$identity_uc public key present. Using it."
else

    echo -n "$identity_uc public key no found. Creating key..."

    ssh-keygen -t $identity -f ~/.ssh/id_$identity -N ""

    echo&quotface-smile-big.png one."
fi#upload identity key and put it in the correct place with correct permissions

scp -oProtocol=2 ~/.ssh/id_$identity.pub ${usr}_at_${host}:~/ &&

ssh -oProtocol=2${usr}_at_${host}"if [ ! -d ~/.ssh ]; then

                                    mkdir -m 700 ~/.ssh

                                 fi

                                 cat ~/id_$identity.pub >> ~/.ssh/authorized_keys

                                 chmod 0600 ~/.ssh/authorized_keys

                                 rm ~/id_$identity.pub"
#see if we succed

ssh -oPasswordAuthentication=no -q -q

    ${usr}_at_${host}"echo SUCCEDED -- public key authentication as ${usr}_at_${host}." ||

                  {echo"FAILED -- public key authentication could not be set."; exit1; }
exit0# ssh-send-key ends here

 

Espero que les sirva.

aahh muy importante para que esto funciono deben activar en el /etc/sshd/sshd_config la sentencia:

AuthorizedKeysFile .ssh/authorized_keys

Cmo simular que trabajas

Les ha tocado que en su trabajo no pueden revisar alguna pgina por que detras de ustedes esta el jefe con un latigo viendo que no pierdan el tiempo????
jajaj

Les tengo la noticia de que ahora ya podrn leer el contenido de cualquier pgina y el jefe pensaran que estan en un documento de Microsoft Word y as el riesgo del latigaso disminuira.

Workfriendly trabaja de la siguiente manera: al ingresas a su sitiio colocas la direccin de la pgina que quieres visitar, y al presionar el botn te traera el contenido con un formato distinto haciendo creer a simple vista que se esta editando un archivo de Word, de esta manera ya podreemos leer los post y comentarios de los sitios que hasta cierto punto son improductivos, (Por ejemplo: HHH.lawaloca.com (h))

aqu les dejo un screenshot para que vean como luce, y ya saben raza, agreguen el sitio a sus bookmarks. face-smile-big.png

Bueno este truco funciona perfectamente para todos aquellos que manejamos Windows en el trabajo.

Exportando X por medio de SSH

hace unos d�as me puse a investigar como exportar una sessi�n gr�fica y una de las soluciones que encontre fue la de usar SSH que fue la que probe por ser una de las mas seguras, y les explicare como fue que logre hacerlo;

Tengo mis 2 computadoras: aragog, dementor con las IPs 192.168.0.1 y 192.168.0.2 respectivamente.

En aragog abrimos el servicio de SSH.


aragog root # /etc/init.d/sshd start

* Starting sshd... [ ok ]

aragog root #


ahora en dementor lanzamos X puro con xinit y no con startx, como a mi me abria mi sessi�n gr�fica de Gnome al ejecutar el comando tuve que hacer lo siguiente:


...::[ 00:22:17 ][7th_sign_at_dementor][~]::...

*> echo "Eterm" > .xinitrc

...::[ 00:22:32 ][7th_sign_at_dementor][~]::...

*>

para que solo me abriera X con unicamente una Eterm ya que es mi terminal favorita :w
bueno ya que en se abrio la session grafica solo con la terminal de alli le ejecutaremos el comando xhost para autorizar el servidor X y luego procedemos a conectarnos por medio de SSH a aragog:


...::[ 00:50:15 ][7th_sign_at_dementor][~]::...

*> xhost +aragog

aragog being added to access control list

...::[ 00:50:19 ][7th_sign_at_dementor][~]::...

*> ssh 7th_sign_at_aragog

Password:

Last login: Tue Jun 22 00:25:49 2004 from dementor

...::[ 00:46:09 ][7th_sign_at_aragog][~]::...

*>


una vez que hayamos conectado hay que indicar a la variable de entorno DISPLAY donde mandara la salida de X, y despues de eso podremos ejecutar cualquier entorno grafico que se quiera face-smile.png

...::[ 00:46:09 ][7th_sign_at_aragog][~]::...

*> export DISPLAY=dementor:0.0

...::[ 00:48:48 ][7th_sign_at_aragog][~]::...

*> gnome-session &

En mi caso lanzo Gnome por que es el �nico que tengo instalado tongue.png
pero se puede usar startkde o segun el entorno gr�fico.
face-surprise.png bueno eso es todo lo que se tiene que hacer, no es tan dificil �verdad? (h)

Notas: Si son observadores notaron que me referia a las m�quinas por medio de sus nombres y no por sus IPs, eso lo logran editando los archivos hosts que estan dentro de /etc/ de cada m�quina, de no editarlo solo seria cuesti�n de sustituir los nombres por las IPs que corresponden y seria exacatamente lo mismo face-smile.png
aqui les dejo como esta mi archivo /etc/hosts de mi pc de escritorio:


127.0.0.1 localhost

127.0.0.1 aragog

192.168.0.2 dementor

Estas pruebas fueron hechas usando Xfree86 version 4.3.0-r5 y OpenSSH version 3.8_p1

Colorear el patr�n de grep

aqui les pongo un tip para mejorar las busquedas con grep.
Consiste en colorear el patr�n de busqueda, para unicarnos de una manera m�s sencilla en la parte que andamos buscando.
lo que hay que hacer es definir un color en las variables de entorno y un alias de la siguiente manera:

...::[ 01:03:09 ][ 7th_sign_at_aragog][~]::...
*> export GREP_COLOR=31
...::[ 01:04:24 ][ 7th_sign_at_aragog][~]::...
*> alias grep={{grep --colour=auto{{
...::[ 01:04:42 ][ 7th_sign_at_aragog][~]::...
*>


El alias es para no tener que escribir el comando mas el par�metro face-smile-big.png
y ahora al usarlo nos pondra la cadena que buscamos de color rojo.
...::[ 01:08:09 ][ 7th_sign_at_aragog][~]::...
*> grep 7th_sign /etc/group

wheel:x:10:root,7th_sign

audio:x:18:7th_sign,kicho

cdrom:x:19:7th_sign,kicho

video:x:27:root,7th_sign

games:x:35:7th_sign,kicho

cdrw:x:80:7th_sign,kicho

portage:x:250: portage,7th_sign
...::[ 01:08:32 ][ 7th_sign_at_aragog][~]::...
*>

El color lo pueden definir con otro n�mero, pero en mi opnion el rojo esta bien.
yo lo agregue en mi .bashrc para que siempre se cargue (h).
espero que les sea de utilidad este peque�o truco.

Estadísticas de visitantes

139
Estás usando Jaws 0.8.0

Imagen Aleatoria

Imagen Aleatoria

Comentarios Recientes