Como puedo modificar un comando ?

Manuel Duran Moyano mduran en ubiobio.cl
Mar Sep 26 14:05:35 BST 2006


El lun, 25-09-2006 a las 17:32 -0600, Gabriel Cruz Tellez escribió:
> Hola de nuevo:
> 
>   Lo que pasa es que un amigo me pregunto un dia que si podiamos
> cambiar o modificar un comando que ya este establecido en linux,
> entonces me puse a investigar un poco y es cierto lo que dicen de la
> direccion /usr/share/man/man1 son los archivos de man. 
> 
>   Checando en el gran amigo google llegue con lo que dice Ricardo de
> los diversos lenguajes, pero el principal asunto o problema que tengo
> es que quiero modificar un comando como por ejemplo uname, es decir:
> 
> Esto es lo que aparece cuando escribo en la terminal el comando uname
> -r
> 
> gabriel en gabriel-laptop:~$ uname -r
> 2.6.15-27-386
> 
> Y quisiera que apareciera eso, mas lo siguiente:
> 
> gabriel en gabriel-laptop:~$ uname -r 
> ¡Se modifico por decir  algo!
> 2.6.15-27-386
> 
>    Quiero probar el hecho de hacer el cambio en un comando, para ver
> de cierta manera como es el comportamiento de tal, uname es algo
> arbitrario por que no tiene que ser eso no tampoco el mensaje que
> escribi entre signos de admiracion, esto por la razon de que quiero
> ver si puedo hacer el cambio del codigo de un comando y pues quiero
> comenzar con un cambio pequeño y darme una idea con ello. 
> 
>   Por eso es que preguntaba si esto tenia que ver algo con lo de los
> scripts (perdon por no escribir bien jejejeje)
> 
> -- 
> -Hay una fuerza motriz más poderosa que el vapor, 
> la electricidad y la energía atómica: la voluntad. 
> 
> -Si buscas resultados distintos, no hagas siempre lo mismo.
>                                      *Einstein* 
> -- 
> ubuntu-es mailing list
> ubuntu-es en lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/ubuntu-es

Si quieres saber como esta escrito el comando (independiente del
lenguaje) debes bajar el codigo fuente de dicho programa, pero como
dichos comandos pertenecen a alguna paquete en particular deberias
seguir los siguientes pasos.

1) Determinar donde este localizado el comando
$ which comand       (which uname)

(para uname nos da /bin/uname)

2) Determinar a que paquete pertenece dicho archivo
$ dpkg -S /ruta/al/archivo (dpkg -S /bin/uname)

(nos indica que pertenece a coreutils)

3) Descargar codigo fuente del paquete (debes tener activado los
repositorios, estos aparecen con deb-src http:/...) 
$ apt-get source paquete ( apt-get source coreutils)



4) Al descargar el paquete fuente se creara un directorio con el nombre
del paquete y su versión, dentro de el deberas buscar el codigo fuente
del comando que necesitas. El paquete coreutils tienen todos los
programas básico de Unix/Linux (cat , chmod, uname, ...).


Con eso podras estudiar la forma en como trabaja cualquier comando o
programa, siempre y cuando este disponible su codigo fuente.


Ahora si lo quieres es modificar y crear tu propia versión deberás
descargar todos los paquetes necesarios para compilar dicho programa,
para eso solo debes ejecutar:

$ sudo apt-get build-dep paquete

(sudo apt-get build-dep coreutils)


y luego crear nuevamente el .deb (dentro del directorio que se creo al
bajar el paquete fuente:

$ sudo debian/rules binary


Esto realizara automaticamente los pasos de:
./configure
make
crear el paquete (nombrepaquete.deb)

Despues solo deberas instalarlo con

$ sudo dpkg -i paquetecreado.deb




-- 
Manuel Duran Moyano <mduran en ubiobio.cl>
Linux User: 205305 (http://Counter.li.org)
Ubuntu User: 1795 (http://http://ubuntucounter.geekosophical.net)
Launchpad: https://launchpad.net/people/mduran





Más información sobre la lista de distribución ubuntu-es