Archive for November, 2009
November 18, 2009 a las 1:18 pm por Edwin Plauchu · Archivado en FreeBSD
La utilidades standard para buscar cadenas de texto en ficheros son grep/egrep para la búsqueda de expresiones regulares y fgrep para buscar cadenas literales. Para buscar una expresión en todos los ficheros del directorio actual sólo tipea:
egrep -i "search expression" *
Para buscar cadenas en todos los ficheros de todo el árbol de directorios puedes combinar el comando find con otro comando de búsqueda de archivo, por ejemplo: egrep. Esto puede ser realizado de muchas formas:
egrep -i "expression" `find . -type f -print`
find . -type f -exec egrep -i "expression" /dev/null {} ;
find . -type f -print | xargs egrep -i "expression"
Un programa de búsqueda muy interesante es agrep. Este funciona básicamente como egrep pero realiza búsquedas que toleran errores en la escritura del nombre. De esta manera puedes también encontrar palabras mal escritas. Para buscar una expresión con un máximo de dos errores de escritura puedes usar:
agrep -i -2 "search exprission" *
Hay muchas utilidades de búsqueda disponibles para Unix. Por lo tanto este artículo no puede estar completo.
November 18, 2009 a las 1:10 pm por Edwin Plauchu · Archivado en FreeBSD
Probablemente puedes recordar este problema: Tenías algún tipo de fichero y no podías recordar donde lo pusiste.
Aquí es donde el comando find viene a ser útil. ¿Cómo usarlo? find viene, por supuesto, con un extenso man page pero veamos unos “casos típicos”: Buscar un archivo llamado lostfile.txt, recorriendo el árbol de directorios comenzando en el directorio actual:
find . -name lostfile.txt -print
find acepta también wildcards. Recuerda colocar entre comillas los wildcards, de lo contrario el shell no los reconocerá como tales. Aquí un ejemplo:
find . -name "lost*" -print
Este comando puede ser un poco lento cuando necesites buscar en un árbol de directorios muy grande. Aquí el comando locate puede ayudar. Este realmente no busca directamente un archivo en el sistema de ficheros. Busca en una base de datos. Es bastante más rápido pero la base de datos podría estar desactualizada, pero puedes, por supuesto, correr el comando updatedb manualmente de vez en cuando para actualizarla. locate realiza búsquedas de subcadenas.
locate lostfile
Este localiza los ficheros lostfile.txt o mylostfile.txt, etc…
Algunas veces te gustaría encontrar todos los ficheros en el árbol de directorios que no contengan cierta cadena. Por ejemplo todos los ficheros excepto .o y .c. Aquí están un par de posibilidades para hacerlo::
find . ! -name "*.o" ! -name "*.c" -print
find . -print | fgrep -v '.o' | fgrep -v '.c'
Hay muchas utilidades de búsqueda disponibles para Unix. Por lo tanto este artículo no puede estar completo.
November 17, 2009 a las 8:26 pm por Edwin Plauchu · Archivado en Linux
Usa avisplit que viene en el paquete de transcode de ubuntu con un comando como
$avisplit -i archivo_a_cortar.avi -s Tamaño_en_megas
Pero si quieres usar algo del entorno gráfico usa avidemux (aunque a mi me desincroniza el
audio).
November 17, 2009 a las 8:25 pm por Edwin Plauchu · Archivado en Linux
ffmpeg -i goemon.avi -target pal-vcd goemon.mpg
November 16, 2009 a las 9:11 pm por Edwin Plauchu · Archivado en FreeBSD
Las entradas al kernel pueden ser categorizadas en base al tipo de evento que las origina.
* Interrupciones de Hardware
* Mensajes de Hardware (hardware trap)
* Mensajes de Software-Inicializado
* Interrupciones de Hardware son el origen de eventos externos, tales como un dispositivo I/O solicitando atencion o un reloj reportando el paso del tiempo. Las Interrupciones de Hardware ocurren asincronamente y pudieran no estar relacionadas al contexto del actual proceso en ejecucion.
* Hardware traps pueden ser sincronos o asincronos pero estan relacionados al actual proceso en ejecucion. Ejemplos de hardware traps son aquellos generados como un resultado de una operacion aritmetica ilegal, tal como los es la division ocacionada por cero.
* Mensajes de Software-Inicializado son usados como la consecuencia de que el sistema force la planeacion de un evento, tal como procesos replaneando procesos o procesamiento de red, tan pronto como sea posible. Mensajes de Software-Inicializado son implementados mediante el seteo de una bandera, que es activada siempre que un proceso este preparando salir del kernel. Si la bandera es seteada, el codigo de interrupcion de software es ejecutado en lugar de salir desde el kernel.
Las llamadas al sistema(System calls) son un caso especial de Mensajes de Software-Inicializado, la instruccion maquina usada para inicializar una system call tipicamente genera un hardware trap que es atendido especialmente por el kernel.
November 16, 2009 a las 5:44 pm por Edwin Plauchu · Archivado en FreeBSD
La organizacion del kernel de FreeBSD puede ser vista como un proveedor de servicios a los procesos de los usuarios. Procesos usualmente accesaran a esos servicios mediante las llamadas al sistema (system calls). Algunos servicios, tales como planeacion y administracion de memoria, son implementados como procesos que se ejecutaran en modo kernel o como subrutinas que se ejecutan periodicamente dentro del kernel.
Existen procesos de kernel, y ellos funcionan enteramente dentro del kernel. (Los procesos de kernel executan codigo que es compilado dentro de la imagen cargada y opera con el modo de ejecucion privilegiada del kernel).
| Nombre del Proceso |
Funcion |
| idle |
Corre cuando no hay mas nada por hacer |
| swapper |
Programa la carga de procesos proveenientes de la memoria secundaria hacia en memoria principal, cuando los recursos del sistema empiezan a estar disponibles |
| vmdaemon |
Programa la transferencia de procesos enteros hacia la memoria secundaria, cuando los recursos del sistema son bajos |
| ramdon |
Colecta datos para la produccion de semillas aleatorias para el kernel y el dispositivo /dev/ramdon |
| vnrlu |
Mantiene una fuente de vnodes libres, esto lo logra limpiando los vnodes cuya fecha de uso fue la menos reciente |
| pagedaemon |
Escribe partes de el espacio de direcciones de un proceso hacia un sistema de almacenamiento secundario, a razon de soportar las facilidades de paginacion , de un sistema de memoria virtual. |
| ktrace |
Escribe los registros de seguimiento a las llamadas al sistema (system calls) a sus archivos de salida. |
| bufdaemon |
Mantiene un suministro de buffers limpios, producto de buffers sucios cuando el suministro de buffers limpios esta abajo del nivel optimo. |
| syncer |
Asegura que los datos de archivo sucio estan escritos despues de 30 segundos. |
| pagezero |
Mantiene un suministro de paginas Cero. |
| g_up |
Toma los datos que van llegando de los dispositivos manejadores y los entrega a los procesos. |
| g_down |
Toma los datos que van llegando de los procesos y los entrega a los dispositivos manejadores. |
| g_event |
Toma tareas de configuracion, inclullendo en esto el descubrimiento de nuevos dispositivos y la remocion de estos cuando ellos ya han desaparecido. |
Despues de que los procesos de kernel son creados, el kernel crea el primer proceso a ejecuta en modo usuario. Este sirve como el proceso padre para todos los subsecuentes procesos. El primer proceso en modo usuario es el programa init. Este metodo realizara tareas administrativas, tales como ejecutar procesos getty para cada terminal sobre la maquina, etc. El proceso init es un proceso de modo usuario y corre fuera del kernel.
November 11, 2009 a las 1:00 pm por Edwin Plauchu · Archivado en FreeBSD
# cd /usr/ports/databases/mysql51-server
# make && make install
Agregar al fichero /etc/rc.conf lo siguiente para que mysql server arranque junto con el sistema operativo
# echo ‘mysql_enable=”YES”’ >> /etc/rc.conf
Ahora reinicie el equipo
# reboot
MySQL ya se encuentra instalado.. ahora creamos una base de datos llamada uno… asignada al usuario user con el password “password”…. Esta sera accesible desde cualquier direccion ip… gracias al comodin %
mysql> create database uno;
mysql> grant all on uno.* to user@’%’ identified by “password”;