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