Deshacer script

Buscando como hacer funcionar las teclas de volumen de 2 vaio, he ejecutado un script en el ordenador que justo! no tiene teclas de función de volumen, en kmix intento bajar el volumen pero lo oigo igual de alto,¿ hay alguna manera para deshacerlo?
Uso kubuntu 7.10, el script es: sudo locate -u && for i in $(locate lcd-???-brightness); do sudo cp $i $i.bak; sudo sed -i '1 s|#!/bin/sh|#!/bin/bash|g' $i; done

P.d: para las teclas de brillo con el kernel 2.6.15 me iban perfectamente y ahora no,¿sabeis algún modo de solucionarlo?
desgranando el "script"

1. sudo locate -u genera una base de datos para locate empezando por / , una vez generada puedes usar locate cadena para encontrar cualquier archivo cuyo nombre contenga cadena. Usa sudo para poder acceder a todos los directorios gracias a los permisos de root.

2. luego se ejecuta locate lcd-???-brightness para encontrar archivos cuyos nombre contengan "lcd-", tres carácteres y "-brightness". En mi ordenador el resultado son los siguientes 4 archivos, pero en tu caso podrían ser distintos:

/usr/lib/hal/scripts/linux/hal-system-lcd-get-brightness-linux
/usr/lib/hal/scripts/linux/hal-system-lcd-set-brightness-linux
/usr/lib/hal/scripts/hal-system-lcd-get-brightness
/usr/lib/hal/scripts/hal-system-lcd-set-brightness

Estos 4 archivos en mi ordenador son script shell con el shebang #!/bin/sh

3.
sudo cp $i $i.bak significa que se hace una copia de estos archivos añadiendo la extensión bak. Es una copia de seguridad antes de modificarlos

4.
sudo sed -i '1 s|#!/bin/sh|#!/bin/bash|g' $ies un mini-script sed que cambia el shebang desde sh a bash, esto es, que la primera línea del archivo, que dijimos que era #!/bin/sh se cambia y ahora es #!/bin/bash

5. La costrucción for variable in expresión ; do comando1 ; comando2; comandoN; done Hace que el bloque de comandos se ejecute repetidamente, cambiando $variable por todos los valores que toma expresión. S(comando) es una estructura shell para pasar la salida de un comando a otro y se usa para hacer que la expresión para el bucle for dependa de la salida del comando.

Ahora lo bueno... bash es compatible con sh, no tiene sentido que un script shell se estropee por cambiar sh por bash. El error tiene que estar en otro sitio.

En cualquier caso, para revertir el script, escribe en la consola locate
lcd-???-brightness lo que devolverá los archivos con y sin extensión bkp. Copia los archivos con la extensión bkp sobre los que no la llevan y después borra los archivos de backup. Necesitarás permisos de administrador (usar sudo)
Dios!! que inutilidad por mi parte! he borrado los 2 /usr/lib/hal/scripts/linux/hal-system-lcd-get-brightness-linux
/usr/lib/hal/scripts/linux/hal-system-lcd-get-brightness-linux.bak

Que hago?? LOL!! he hecho rm de los scripts ..............
Muy fácil, reinstalar el paquete con el que venían.

- ferdy
Ya, pero y cual es? Busco en google hal-system y nada, busco en desktop y encuentro archivos. Nada,

Ah! será hal,no? por eso de /usr/lib/hal

Gracias!!!
Usa el comando apt-list :)

apt-file is a command line tool for searching packages for the APT
...
you can search in which package a file is included
or list the contents of a package without installing or fetching it.
5 respuestas